tiennm99
bb1d82ab35
feat: add retry with exponential backoff for bank API requests
...
Bank APIs can be flaky; retrying up to 2 times with exponential
backoff (500ms, 1s) improves reliability for transient failures.
2026-04-04 13:23:23 +07:00
tiennm99
fe4cddc998
feat: improve UI/UX with consistent styling and better usability
...
Replace all inline styles with Tailwind classes, add SVG icons to
action buttons, right-align numeric table cells with tabular-nums,
add sticky table headers, highlight active date preset, improve
empty state with illustration, fix SSR hydration mismatch for
localStorage settings, and make buttons mobile-responsive.
2026-04-04 00:11:32 +07:00
tiennm99
317801df20
feat: add rate trend chart with recharts
...
Toggle "Show Chart" displays line chart above the table.
Supports single-bank and comparison mode visualizations.
Also modularized components: extracted tables, status indicators,
and chart into separate files for maintainability.
2026-04-03 23:27:21 +07:00
tiennm99
67085db355
feat: add BIDV vs TCB comparison mode
...
Toggle fetches both banks simultaneously, merges by date+currency,
and displays side-by-side in a unified table. Bank selector disabled
in compare mode. Export handles comparison data format.
2026-04-03 23:24:56 +07:00
tiennm99
82245edbf7
feat: add Excel (.xlsx) export alongside CSV
...
Use SheetJS (xlsx) for proper Excel file generation.
Both export buttons available: Excel as primary, CSV as secondary.
2026-04-03 23:22:57 +07:00
tiennm99
c9357d74e7
feat: add multi-currency support with currency selector
...
API now accepts currency param (USD, EUR, JPY, ALL, etc.).
Returns array of rates per date instead of single object.
Frontend adds currency dropdown with 12 common currencies plus "All".
2026-04-03 23:21:25 +07:00
tiennm99
6e8c12cdf7
feat: remember last bank and date range in localStorage
2026-04-03 23:18:51 +07:00
tiennm99
d2ed5525d9
feat: auto-fetch exchange rates on page load
2026-04-03 23:18:07 +07:00
tiennm99
8bc191dc22
feat: add date range presets (Today, Last 7d, Last 30d, This month)
2026-04-03 23:17:26 +07:00
tiennm99
c633c0ebe8
feat: add Enter key shortcut to trigger fetch
2026-04-03 23:16:47 +07:00
tiennm99
83384f54d0
refactor: parallel fetching, simplified page, consistent dates, cleanup
...
- Fetch dates in parallel chunks of 5 instead of sequentially
- Simplify page.js to server component, move default dates into viewer
- Replace showTable with hasFetched for clearer semantics
- Normalize date display to yyyy-MM-dd for both banks
- Remove unused Geist_Mono font import (~50KB savings)
- Change lang to "vi" for Vietnamese bank data context
- Clean up empty blocks and redundant variables in API route
2026-04-03 23:14:40 +07:00
tiennm99
b985426047
ci: add Claude Code project configuration
2026-04-03 23:03:43 +07:00
tiennm99
45ea2956e4
feat: improve UI/UX with dark mode, better visual hierarchy, and accessibility
...
- Add card layout, loading spinner, error/empty states for better UX
- Full dark mode support for date picker, tables, and inputs via CSS vars
- Extract reusable RateTable component, remove duplicate table markup
- Fix CSV injection vulnerability with escapeCsv sanitizer
- Fix URL.createObjectURL memory leak
- Replace JS hover handlers with CSS hover for better performance
- Add aria-live region for screen reader announcements
- Fix metadata from default "Create Next App" to proper title
- Differentiate table stripe/hover colors in light mode
2026-04-03 23:02:53 +07:00
Tien Nguyen Minh
dc1b2ac06b
Merge pull request #17 from tiennm99/dependabot/npm_and_yarn/tar-7.5.11
...
build(deps-dev): bump tar from 7.4.3 to 7.5.11
2026-03-13 14:58:48 +07:00
dependabot[bot]
af5b5ff181
build(deps-dev): bump tar from 7.4.3 to 7.5.11
...
Bumps [tar](https://github.com/isaacs/node-tar ) from 7.4.3 to 7.5.11.
- [Release notes](https://github.com/isaacs/node-tar/releases )
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md )
- [Commits](https://github.com/isaacs/node-tar/compare/v7.4.3...v7.5.11 )
---
updated-dependencies:
- dependency-name: tar
dependency-version: 7.5.11
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-11 11:40:53 +00:00
Tien Nguyen Minh
6b14d120de
Merge pull request #11 from tiennm99/dependabot/npm_and_yarn/next-16.1.5
...
build(deps): bump next from 15.5.9 to 16.1.5
2026-03-11 18:39:51 +07:00
dependabot[bot]
ac460a2c67
build(deps): bump next from 15.5.9 to 16.1.5
...
Bumps [next](https://github.com/vercel/next.js ) from 15.5.9 to 16.1.5.
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v15.5.9...v16.1.5 )
---
updated-dependencies:
- dependency-name: next
dependency-version: 16.1.5
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-01-28 19:36:19 +00:00
Tien Nguyen Minh
737c8d0037
Merge pull request #5 from tiennm99/dependabot/npm_and_yarn/js-yaml-4.1.1
...
build(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
2026-01-09 10:17:12 +07:00
Tien Nguyen Minh
ab722b85d1
Merge pull request #4 from tiennm99/dependabot/npm_and_yarn/axios-1.12.0
...
build(deps): bump axios from 1.10.0 to 1.12.0
2026-01-09 10:17:01 +07:00
Tien Nguyen Minh
7e7a984986
Merge pull request #1 from tiennm99/dependabot/npm_and_yarn/form-data-4.0.4
...
build(deps): bump form-data from 4.0.3 to 4.0.4
2026-01-09 10:16:49 +07:00
Tien Nguyen Minh
e753720260
Merge pull request #7 from tiennm99/dependabot/npm_and_yarn/next-15.5.9
...
build(deps): bump next from 15.3.4 to 15.5.9
2026-01-09 10:15:44 +07:00
dependabot[bot]
04828751f5
build(deps): bump next from 15.3.4 to 15.5.9
...
Bumps [next](https://github.com/vercel/next.js ) from 15.3.4 to 15.5.9.
- [Release notes](https://github.com/vercel/next.js/releases )
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js )
- [Commits](https://github.com/vercel/next.js/compare/v15.3.4...v15.5.9 )
---
updated-dependencies:
- dependency-name: next
dependency-version: 15.5.9
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-12 05:14:12 +00:00
dependabot[bot]
fe0290ad13
build(deps-dev): bump js-yaml from 4.1.0 to 4.1.1
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 4.1.0 to 4.1.1.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1 )
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 4.1.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-11-16 13:33:47 +00:00
dependabot[bot]
fa1411b7f4
build(deps): bump axios from 1.10.0 to 1.12.0
...
Bumps [axios](https://github.com/axios/axios ) from 1.10.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.12.0 )
---
updated-dependencies:
- dependency-name: axios
dependency-version: 1.12.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-09-13 15:48:48 +00:00
dependabot[bot]
c55d59a545
build(deps): bump form-data from 4.0.3 to 4.0.4
...
Bumps [form-data](https://github.com/form-data/form-data ) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/form-data/form-data/releases )
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md )
- [Commits](https://github.com/form-data/form-data/compare/v4.0.3...v4.0.4 )
---
updated-dependencies:
- dependency-name: form-data
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-07-22 13:15:42 +00:00
tiennm99
c889488998
feat: remove debug log
2025-07-08 13:07:00 +07:00
tiennm99
5d03ca5edf
feat: handle for missing data days
2025-07-08 12:35:05 +07:00
tiennm99
f52d0a7757
fix: a day off on input
2025-07-08 12:27:34 +07:00
tiennm99
12a0710cda
feat: update view
2025-06-27 22:48:24 +07:00
tiennm99
f1574b9717
feat: add speed insights
2025-06-27 22:37:10 +07:00
tiennm99
a59418e1d2
feat: add analytics
2025-06-27 22:30:24 +07:00
tiennm99
7a4bc932d2
feat: update README
2025-06-27 22:17:34 +07:00
tiennm99
452d826a77
feat: tuning views
2025-06-27 22:15:10 +07:00
tiennm99
30e5224f50
feat: refactor
2025-06-27 22:07:15 +07:00
tiennm99
d83a694cc9
feat: date picker
2025-06-27 21:55:43 +07:00
tiennm99
742effe483
feat(nextjs): migrate old logic
2025-06-27 21:44:44 +07:00
tiennm99
57992053e8
feat: reinit nextjs
2025-06-27 12:20:40 +07:00
tiennm99
918c0b1cc5
feat: update css
2025-06-26 20:34:50 +07:00
tiennm99
9ac742f530
feat(nextjs): migrate from raw html to nextjs
2025-06-26 20:24:06 +07:00
tiennm99
5ac5e6f739
feat: init next.js
2025-06-26 20:09:37 +07:00
tiennm99
7fdef5ca5c
feat(tcb): add tcb (WIP)
2025-06-26 18:21:57 +07:00
tiennm99
72b7aa9351
feat: init
...
Introduces a new index.html file providing a web interface to fetch and export USD exchange rates from BIDV for a selected date range. The README is updated with feature descriptions and relevant API endpoints.
2025-06-26 12:28:29 +07:00
Tien Nguyen Minh
8d5059bea9
Initial commit
2025-06-26 12:12:32 +07:00