71 Commits

Author SHA1 Message Date
Jose Selesan
28e1a732e0 feat(analysis): add monthly pattern analysis feature with chart and API integration 2026-09-14 16:41:21 -03:00
Jose Selesan
f2c26c266c fix: peak hours analysis uses all historical data
Remove date range filtering from peak-hours endpoint so the
analysis considers all available data in the database, not just
the last 30 days.
2026-08-28 13:31:30 -03:00
Jose Selesan
0998d64cbb feat: add BELO peak hour analysis chart
- New backend endpoint GET /quotes/:type/peak-hours
- Groups daily price data by hour to find peak frequency
- Bar chart showing how often each hour is the daily peak
- Only displayed for BELO currency in analysis page
2026-08-28 12:05:43 -03:00
Jose Selesan
2fe8198c41 fix(analysis): use last business day of previous month for 'Vs. mes anterior' card 2026-08-28 11:46:41 -03:00
Jose Selesan
1fee87a4ce fix(analysis): use compound inflation calculation instead of linear sum 2026-08-27 12:52:48 -03:00
Jose Selesan
d24f3ce872 feat(analysis): add 12-month summary row with total variation and accumulated inflation 2026-08-27 11:56:02 -03:00
Jose Selesan
b78fcbc0e9 fix(quotes): add logging + parallel fetch for external API diagnostics 2026-08-27 11:51:21 -03:00
Jose Selesan
d8aed4970c feat(analysis): bold month names for DB-sourced data, regular for external 2026-08-27 11:37:43 -03:00
Jose Selesan
28f9dea7ba feat(analysis): rolling 12-month table with external API fallback
- monthly-last endpoint now returns last 12 months (rolling)
- For months without DB data, fetches from ArgentinaDatos API
- Casa mapping: BELO=cripto, BLUE=blue, BNA=oficial
- DB data takes priority over external API data
2026-08-27 11:33:45 -03:00
Jose Selesan
873fd63ea4 style(analysis): use full month names in variation table 2026-08-27 11:16:39 -03:00
Jose Selesan
88fa05d5b8 style(analysis): show raw values inline instead of below percentage 2026-08-27 10:37:04 -03:00
Jose Selesan
f9e0267c94 feat(analysis): show raw values ( → ) below each variation 2026-08-27 10:34:33 -03:00
Jose Selesan
0c634bbc8b fix(analysis): don't skip any months for inflation, just check if data exists 2026-08-27 10:22:13 -03:00
Jose Selesan
e32131d32e fix(analysis): only skip inflation for current month, not last complete month
The last complete month's inflation is usually available by the 14th of the
current month. Previously July was always skipped even though data exists.
2026-08-27 10:21:39 -03:00
Jose Selesan
66ab56b46a feat(analysis): add monthly variation table with inflation comparison
- New backend endpoint GET /api/quotes/monthly-last
- MonthlyVariationTable component with BELO/Blue/Oficial % changes
- Inflation data from ArgentinaDatos API with 24h cache
- Visual indicators: green if beats inflation, red if below
- Responsive: cards on mobile, table on desktop
2026-08-27 10:13:56 -03:00
Jose Selesan
a6e95f0c05 fix(analysis): pad comparison chart Y domain to 20% around the range 2026-08-20 14:38:57 -03:00
Jose Selesan
48c4c892cd feat(analysis): add comparison chart of buy price for the 3 quotes 2026-08-20 14:33:39 -03:00
Jose Selesan
31dae446af feat(telegram): add /blu and /oficial commands and main menu 2026-08-20 14:22:56 -03:00
Jose Selesan
96f6b26a76 feat(telegram): add /belo command with current quote and daily progress 2026-08-20 14:17:31 -03:00
Jose Selesan
0407a79e1e Updated Telegram notification 2026-08-05 13:56:52 -03:00
Jose Selesan
4784242a35 Added estimaded salary to dashboard 2026-07-22 12:31:58 -03:00
09f00aa3b9 Merge pull request 'feat/payment-wallets' (#5) from feat/payment-wallets into main
Reviewed-on: #5
2026-06-17 14:11:30 +00:00
Jose Selesan
04b3f87aca feat(wallets): implement wallet movements feature with filtering and pagination 2026-06-17 11:10:20 -03:00
Jose Selesan
33120deed6 feat(expenses): add walletId to expense model and implement wallet adjustments in expense operations 2026-06-17 10:54:43 -03:00
Jose Selesan
5671b4a14b feat(wallets): add isDefault field to wallet model and implement setDefaultWallet functionality 2026-06-17 10:15:44 -03:00
798d657869 Merge pull request 'feat(wallets): implement wallet management features including create, update, delete, deposit, transfer, and list movements' (#4) from feat/wallets into main
Reviewed-on: #4
2026-06-17 12:37:20 +00:00
Jose Selesan
1d954217b7 feat(wallets): implement wallet management features including create, update, delete, deposit, transfer, and list movements
- Added createWallet, updateWallet, deleteWallet, depositWallet, transferWallet, and listMovements handlers.
- Created corresponding routes for wallet operations.
- Developed frontend components for wallet management including dialogs for creating, editing, depositing, adjusting balance, transferring, and viewing movements.
- Integrated wallet management into the authenticated routes.
2026-06-17 09:36:55 -03:00
Jose Selesan
1ff2abc16a feat(header): add Telegram icon and link to settings based on connection status 2026-06-17 09:01:28 -03:00
Jose Selesan
b8d8f16f4e feat(telegram): integrate Telegram bot for notifications and add related models 2026-06-17 08:42:13 -03:00
Jose Selesan
c0c8bf0945 feat(analysis): make analysis page work for all currencies (BELO, BLUE, BNA)
- Replace hardcoded BELO analysis with generic AnalysisPage
- Add /quotes/analysis/ route with currency path param
- Add currency selector tabs on analysis page
- Dashboard QuoteCards now navigate to analysis for all currencies
- Old /quotes/belo/analysis redirects to /quotes/analysis/BELO
2026-06-12 16:44:20 -03:00
Jose Selesan
142fd4e33f feat(expenses): add beloPrice and usdcEquivalent fields to Expense model and update related logic 2026-06-08 21:13:03 -03:00
Jose Selesan
b08399908b feat(expenses): allow editing paid expenses (status, amountPayed, paymentDate) 2026-06-08 08:12:46 -03:00
Jose Selesan
6f06ee18da feat(belo): add current quote card and improve date formats on analysis page 2026-06-04 12:09:03 -03:00
Jose Selesan
b4f4030ee8 feat(layout): make header sticky so it's always visible on scroll 2026-06-04 11:50:05 -03:00
Jose Selesan
824f3a18ab fix(belo): improve mobile header layout - stack title above actions on small screens 2026-06-04 11:38:10 -03:00
Jose Selesan
0915ad1223 feat: enhance date handling and formatting in quotes and belo features 2026-06-04 11:32:38 -03:00
Jose Selesan
7c864053bb feat(belo): add daily and monthly variation quotes to analysis page 2026-06-04 11:10:37 -03:00
Jose Selesan
9ce5511ad8 feat(dashboard): add Dolar Oficial (BNA) card to panel grid 2026-06-04 11:05:38 -03:00
Jose Selesan
55098a7b95 feat(expenses): add edit amount and due date for pending expenses 2026-06-04 11:00:36 -03:00
Jose Selesan
5b6ccf0fa6 chore: add Biome for lint and fix all lint errors
- Install @biomejs/biome as devDependency at root
- Configure biome.json with 2-space indent, double quotes, Tailwind CSS support
- Add lint/lint:fix/format/format:fix scripts to root and app package.json
- Fix noNonNullAssertion: env vars extracted to variables with suppression, <div role=button> replaced with <button>
- Fix noUnusedVariables: remove unused destructured vars
- Fix useIterableCallbackReturn: arrow functions with block body
- Fix noExplicitAny: recharts Tooltip formatters
- Fix noLabelWithoutControl: add htmlFor+id or use <span> for non-input labels
- Fix noStaticElementInteractions/useKeyWithClickEvents: role+keyboard events for overlays
- Fix noArrayIndexKey: use error string as key
- Fix CSS parse: enable tailwindDirectives parser
- Normalize formatting across 80 files with biome check --write
2026-06-04 10:48:07 -03:00
Jose Selesan
53a797703e feat(dashboard): add pending/upcoming expenses table
- Backend: GET /expenses/pending-upcoming returns PENDING expenses with dueDate <= today+5 days, classified as overdue/upcoming
- DashboardExpensesTable: groups by periodicExpenseId, shows summed totals with status badges, links to /expenses?periodicExpenseId=X
- Expenses route accepts ?periodicExpenseId search param and pre-selects it in the filter
- fix: BeloAnalysisPage DatePicker type mismatch
2026-06-04 10:34:34 -03:00
33248401f7 Merge pull request 'feat(belo): add analysis page with historical stats, chart, and date range picker' (#3) from feat/belo-analysis into main
Reviewed-on: #3
2026-06-04 12:49:01 +00:00
Jose Selesan
8b8a4670cb feat(belo): add analysis page with historical stats, chart, and date range picker 2026-06-04 09:48:20 -03:00
Jose Selesan
bd53b26f29 Hide scrollbars on expense tab strips 2026-06-01 08:20:19 -03:00
Jose Selesan
2fd23cedc6 Improve expenses mobile layout and payment flow 2026-06-01 08:03:48 -03:00
Jose Selesan
988d58d761 feat(cache): implement a simple caching mechanism with TTL and prefix invalidation
refactor(expenses): integrate caching for periodic expenses and related operations
refactor(quotes): add caching for quotes retrieval and history endpoints
2026-05-29 19:25:15 -03:00
Jose Selesan
801f04df12 feat(dashboard): add monthly totals data to DashboardPage and update pending payments display 2026-05-29 19:13:22 -03:00
Jose Selesan
f6c03e3c91 refactor(expenses): optimize monthly totals and pending calculations using raw SQL queries 2026-05-29 19:05:23 -03:00
Jose Selesan
3daf67639a refactor(expenses): optimize expense aggregation queries for improved performance 2026-05-29 19:00:03 -03:00
Jose Selesan
94aab6dce7 feat(logging): add request logger middleware for improved request tracking 2026-05-29 18:53:34 -03:00