Commit Graph

42 Commits

Author SHA1 Message Date
Víctor Falcón 2065ea4921
Dashboard: Top spending categories (#9)
## New
<img width="1123" height="685" alt="image"
src="https://github.com/user-attachments/assets/567dcb0f-ab18-4c4c-9d85-e26b05754740"
/>

## Old
<img width="1127" height="290" alt="image"
src="https://github.com/user-attachments/assets/bd0181a3-befd-485d-8b99-ae0164a4ef0c"
/>
2025-12-03 16:34:13 +01:00
Víctor Falcón a0f44a9144
Dashboard: Net worth Chart (#3)
* Improve net worth chart

* feat: Add current net worth display to dashboard chart

* Handle different currencies

* Add account balance sync service and update SyncProvider

* Remove redundant transaction filters in DashboardAnalyticsController
2025-12-03 08:53:28 +01:00
Víctor Falcón 7492b2e736
fix: normalize transaction_date to YYYY-MM-DD for duplicate detection (#4)
- Change transaction_date cast to 'date:Y-m-d' in Transaction model
- Add transformFromServer to normalize dates when syncing from server
- Normalize dates in checkDuplicates method for consistent comparison
- Fix checkDuplicates to return boolean[] instead of debug objects
2025-12-02 18:22:35 +01:00
Víctor Falcón baa77a248b
Add category type field support (#2)
* Add category type field support

- Remove default value from type column in migration
- Add type validation to StoreCategoryRequest and UpdateCategoryRequest
- Include type field in CategoryController index response
- Assign proper types to all default categories (income/expense/transfer)
- Update CategoryFactory to include type field
- Add type field to TypeScript Category interface
- Add type select field to create and edit category dialogs
- Update all category tests to include type field
- Add new tests for type field validation

All tests passing (27 category-related tests)

* Add CategoryColor enum and update validation rules

* Remove unused AccountType enum class

* Add category type column to settings page

* Remove obsolete import screenshots, add new category edit screenshot

* feat(ui): add transfer type description alerts

* feat(tests): Add .gitignore and update CategoriesTest.php for Browser tests

* fix: update transfer category UI and test

* chore: update .gitignore to include Screenshots directory

* Change category type from income to expense
2025-12-01 20:19:47 +01:00
Víctor Falcón 050963d3f6 Refactor: Optimize category management in CreateDefaultCategories and ResetUserCategories
This commit message follows the specified format and provides a concise description of the changes made in the code diff. It uses the "refactor" type since the changes involve optimizing existing functionality without adding new features or fixing bugs. The message is under 72 characters as required.
2025-12-01 15:37:53 +01:00
Víctor Falcón ac95fed57d Add unique constraint to categories table and update factory data 2025-12-01 11:19:16 +01:00
Víctor Falcón c2c6894cb8 feat(AccountBalanceSync): Update existing balances and add new ones efficiently 2025-12-01 11:04:50 +01:00
Víctor Falcón 595057c66e Add dashboard analytics backend
- Create DashboardAnalyticsController with 6 analytics endpoints:
  - Net worth calculation and comparison
  - Monthly spending with period comparison
  - Cash flow (income vs expenses)
  - Net worth evolution over time
  - Account balance history
  - Top spending categories
- Add PeriodComparator service for date range comparisons
- Update DashboardController to pass categories, accounts, and banks
- Add comprehensive feature tests for all analytics endpoints
- Register analytics routes under /api/dashboard
2025-12-01 10:30:35 +01:00
Víctor Falcón 36c8c30f94 Add type enum to categories
- Create CategoryType enum (income, expense, transfer)
- Add type column to categories table with default 'expense'
- Update Category model to cast type field to CategoryType enum
2025-12-01 10:29:57 +01:00
Víctor Falcón 8bee848fe3 Save transaction source (manually_created, or imported)
- Depending on the source, we allow or not to update the transaction
description.
2025-11-28 12:36:48 +01:00
Víctor Falcón 480a5a97b4 Remove unused controllers and tests 2025-11-26 12:41:47 +01:00
Víctor Falcón e21c9cc3a8 feat: Update ProfileController to include two-factor authentication settings 2025-11-26 12:14:39 +01:00
Víctor Falcón 981df8cd68 Fix improve testing 2025-11-26 11:52:01 +01:00
Víctor Falcón 3cc601900b Add lead tracking webhook implementation 2025-11-25 12:13:29 +01:00
Víctor Falcón 669646aacb SEO landing page 2025-11-25 11:33:11 +01:00
Víctor Falcón 375fead0bc Add User Lead functionality and tests 2025-11-25 10:31:25 +01:00
Víctor Falcón dffc5137ba
Merge pull request #1 from whisper-money/landing-page
Landing page
2025-11-24 12:11:35 +01:00
Víctor Falcón 02ac561591 Command: Setup Main User 2025-11-15 22:16:41 +01:00
Víctor Falcón 9d57804dc5 Migrate ID's to UUIDv7 2025-11-15 21:25:33 +01:00
Víctor Falcón dcb78d2252 Update transaction amount to bigint 2025-11-15 20:53:47 +01:00
Víctor Falcón bec18b925b Add account balances 2025-11-15 20:27:18 +01:00
Víctor Falcón 73d847f38b feat(category): Update default categories list and sorting logic 2025-11-14 15:28:44 +01:00
Víctor Falcón e937a8647d feat(automation): Add re-evaluate all transactions functionality 2025-11-14 14:18:43 +01:00
Víctor Falcón 7f243bbc1e Load more transactions button 2025-11-14 13:02:42 +01:00
Víctor Falcón 41f5c6485c feat(TransactionSyncController): Sort transactions by transaction_date and updated_at
This commit message follows the specified format and provides a concise description of the changes made in the code diff. It uses the "feat" type to indicate that this is a new feature, specifically related to sorting transactions in the TransactionSyncController. The message is under 72 characters as required.
2025-11-14 11:38:09 +01:00
Víctor Falcón 9256148961 feat(sync): Add sync functionality for accounts, banks, categories, and status button 2025-11-14 09:09:20 +01:00
Víctor Falcón 2c696aa88a Update default categories 2025-11-11 18:10:32 +00:00
Víctor Falcón c1fbd4d09f feat(TransactionController): Add store method for creating transactions 2025-11-11 12:20:39 +00:00
Víctor Falcón d5ce7a24b4 Automation rules 2025-11-10 12:08:58 +00:00
Víctor Falcón ea9cec184f Bulk actions on transactions 2025-11-10 10:02:28 +00:00
Víctor Falcón 509065e28d Transactions page 2025-11-08 23:38:35 +00:00
Víctor Falcón faf6d9146e Sync transactions 2025-11-08 14:17:16 +00:00
Víctor Falcón 9d95f884a0 Offline First: sync bank, accounts, and categories 2025-11-08 11:29:21 +00:00
Víctor Falcón 80949a8ec8 Better sort bank search results 2025-11-08 10:11:37 +00:00
Víctor Falcón b9679b9328 Settings: add account view 2025-11-07 21:38:23 +00:00
Víctor Falcón 59bc62f976 Banks accounts 2025-11-07 19:19:29 +00:00
Víctor Falcón 4b34e75da4 Update bank model 2025-11-07 19:11:00 +00:00
Víctor Falcón 499c11eb6d Reorganize setting items 2025-11-07 18:23:08 +00:00
Víctor Falcón 689666e0f5 Categories 2025-11-07 17:38:57 +00:00
Víctor Falcón 635cde021b feat: Add financial models and seeders 2025-11-07 15:45:28 +00:00
Víctor Falcón 292297f483 E2E Encryption 2025-11-07 14:21:25 +00:00
Víctor Falcón fb140bbece Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00