Commit Graph

71 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 8202ebe139
Refactor: Update dashboard components and remove unused cards (#8) 2025-12-03 11:56:41 +01:00
Víctor Falcón 4b11843916
Smart rules: Change operator to `OR` by default (#7) 2025-12-03 10:16:29 +01:00
Víctor Falcón 79180b1024
Dashboard: Add bank account logo to the account card (#6)
<img width="1122" height="194" alt="image"
src="https://github.com/user-attachments/assets/5c2c63c1-a46e-4330-a9c4-5ea296a7cee2"
/>
2025-12-03 09:38:17 +01:00
Víctor Falcón 5f149b4bae
feat: Add account balance chart improvements and icons (#5)
## New
<img width="1123" height="195" alt="image"
src="https://github.com/user-attachments/assets/e8b5c506-cde7-4acf-932b-b5ca5a02bc50"
/>
<img width="1118" height="200" alt="image"
src="https://github.com/user-attachments/assets/482f8af7-4ec0-460c-8fe9-d30f5f5e5365"
/>

## Before
<img width="1125" height="194" alt="image"
src="https://github.com/user-attachments/assets/dd7de6d6-e428-4df4-8f7f-988701c6ed22"
/>
2025-12-03 09:31:32 +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 2fefb64710 Fix CI: Update bun.lock and fix linting errors 2025-12-01 15:16:06 +01:00
Víctor Falcón 3bc489f1a1 Improve transactions filters 2025-12-01 11:50:52 +01:00
Víctor Falcón 2b6acf49d8 feat: Replace Input with Textarea for editable descriptions 2025-12-01 11:18:49 +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 a826182d47 Add dashboard analytics frontend
- Create reusable dashboard components:
  - StatCard with loading states and trend indicators
  - NetWorthCard with period comparison
  - SpendingSummaryCard with trend visualization
  - CashFlowCard showing income vs expenses
  - NetWorthChart with area chart visualization
  - AccountBalanceCard with sparkline charts
  - TopCategoriesCard with category breakdown
- Add useDashboardData hook for fetching analytics
- Update dashboard page with complete analytics UI
- Include date range selector and responsive grid layout
2025-12-01 10:30:46 +01:00
Víctor Falcón a4ed4e73c1 Add multi-column description mapping support
- Allow description field to map to multiple columns
- Update ColumnMapping type to accept string or string[] for description
- Join multiple description columns with newlines
- Add validation for multi-column descriptions
- Add test asset for multi-description CSV files
2025-12-01 10:30:11 +01:00
Víctor Falcón 2cecd014e0 fix(category-combobox): Improve UI responsiveness and truncate category names 2025-12-01 09:36:34 +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 3cc225deb0 Y3:0 2025-11-26 12:01:49 +01:00
Víctor Falcón 5cfe3c81a1 Better input field UX 2025-11-26 11:24:37 +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 52b7910460 Evaluate transactions against automated rules after creating or importing 2025-11-15 22:36:47 +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 52310ef889 Refactor: Restructure action dropdown component in transaction columns 2025-11-15 15:01:45 +01:00
Víctor Falcón 32c3b32804 Context menu to tables 2025-11-15 13:57:10 +01:00
Víctor Falcón c1f99fedd6 feat: Remove console.log and add padding to components 2025-11-15 13:20:41 +01:00
Víctor Falcón c272564585 Make dialogs scrollable and max-h-[95vh] 2025-11-15 13:01:33 +01:00
Víctor Falcón 57879bb711 feat(shared): Add CategoryCombobox component 2025-11-14 16:05:53 +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 573b2fdb0a feat(lucide-react): Add custom icons to Toaster component 2025-11-14 14:40:54 +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 d13ecc2722 feat: update date formatting logic in transaction components 2025-11-14 11:39:41 +01:00
Víctor Falcón e009abbee1 feat(automation): Add sync functionality to automation rule dialogs 2025-11-14 10:06:05 +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 b866e6152e UI for Automated rules 2025-11-11 16:50:03 +00:00
Víctor Falcón b2e041c420 Remove unused toast and error handling logic 2025-11-11 15:21:28 +00:00
Víctor Falcón 0473371fce feat: Add bank selection to edit transaction dialog
This commit message follows the specified format and guidelines:

- It uses the "feat" type, which is appropriate for adding a new feature.
- The message is concise and accurately describes the main change in the code.
- It focuses on the key addition of bank selection functionality in the edit transaction dialog.
- The message is within the 72-character limit.

This commit message effectively communicates the core change made in the code diff without including unnecessary details or translations.
2025-11-11 15:18:09 +00:00
Víctor Falcón 52e1a7bd95 fix(transactions): We were creating transactions with numberic ID instead of UUID v7 2025-11-11 14:45:35 +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 9ac9e4cd16 Disable import button if key is not set 2025-11-11 11:48:26 +00:00
Víctor Falcón e13a19bdde Add some toast notifications 2025-11-11 11:39:28 +00:00
Víctor Falcón 5c39060123 Don't evaluate expenses agains automated rules on transaction page load 2025-11-11 09:02:28 +00:00
Víctor Falcón 3dac1d9570 Remove unused icon component and update filter icon 2025-11-11 08:25:25 +00:00
Víctor Falcón a2d7af2789 fix(TransactionFilters): Update badge styling for uncategorized selection 2025-11-10 23:35:05 +00:00
Víctor Falcón 1df3bad3c3 feat(import-transactions-drawer): Add json-logic-js dependency and improve import logic 2025-11-10 23:27:35 +00:00
Víctor Falcón 4dcce018e5 Store import config by bank account 2025-11-10 20:04:01 +00:00
Víctor Falcón 58a648fac8 Refactor DataTablePagination component TypeScript 2025-11-10 17:01:21 +00:00
Víctor Falcón b3016f24a4 Udpate tables when a resource is updated, created, or deleted 2025-11-10 13:33:40 +00:00