Commit Graph

18 Commits

Author SHA1 Message Date
Jonathan befbe12bcf Merge branch 'development' 2026-03-24 19:39:41 +01:00
Jonathan 0803d86e38 Add admin role with user management (create/delete users)
First registered user becomes admin automatically. Admins see a
"Manage Users" button in the dashboard header that opens a new
/admin page for listing, creating, and deleting users. Backend
enforces admin-only access on /admin/* routes. Startup migration
adds the is_admin column to existing SQLite databases.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 19:26:10 +01:00
Jonathan aedc6a8a17 Merge branch 'development' 2026-03-24 19:18:56 +01:00
Jonathan c1371e9c72 Extend portfolio chart to always show today's data point
Previously the chart stopped at the last purchase date. Now a final
point for today is appended so current portfolio value vs total
invested is always visible.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 19:18:27 +01:00
Jonathan e93b9dfa53 Add git workflow rules to CLAUDE.md
Never work on main directly; always switch back to development after
merging to main.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 19:10:20 +01:00
Jonathan db9624822b Merge development: fix CORS for local dev on port 3001
Resolved conflict by keeping env var approach from main and updating
the default to include both localhost:3000 and localhost:3001.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 18:58:50 +01:00
Jonathan cb6594f463 Fix CORS for local dev and update stats grid layout
Add localhost:3001 to allowed CORS origins to fix local Docker setup
where frontend is mapped to port 3001. Also update stats grid to fixed
3-column layout and reorder stat cards.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 18:51:01 +01:00
Jonathan 470dd80ed8 Make CORS allowed origins configurable via ALLOWED_ORIGINS env var
Defaults to localhost:3000 for local dev. Server deployments can
pass a comma-separated list via the environment.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 18:15:44 +01:00
Jonathan 8982f76d15 Change frontend port to 3001 and fix REACT_APP_API_URL as build arg
REACT_APP_API_URL is baked into the JS bundle at build time, so it
must be passed as a build arg, not a runtime environment variable.
Port changed from 3000 to 3001 to avoid conflict with Gitea.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 16:54:49 +01:00
Jonathan 22c36eff67 Update README with full project documentation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 16:32:11 +01:00
Jonathan afa74f7d45 Add CLAUDE.md with architecture and dev commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:49:11 +01:00
Jonathan 39404ca208 Add chart view toggle: Both / Portfolio / 1-Year BTC
Tab bar above charts lets the user switch between showing both charts
stacked, or either chart individually.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:22:49 +01:00
Jonathan 541b5f57d2 Add 1-year BTC daily price history chart
New GET /history endpoint fetches 365 days of BTC/EUR data from
CoinGecko, deduplicates by date, and joins the user's purchases.
BTCHistoryChart component renders the price line with orange dot
markers on purchase dates and a dashed cyan avg buy price line.
Tooltip shows purchase details on marked dates.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 23:18:40 +01:00
Jonathan cb7bbf393c Sort purchase list by date ascending
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:28:25 +01:00
Jonathan ff7ba51e84 Add edit purchase feature (date, amount, price)
Backend: PUT /purchases/{id} endpoint accepts updated amount_eur,
price_eur, and created_at. Frontend: inline edit row in PurchaseList
with date picker and number inputs, Save/Cancel actions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:24:27 +01:00
Jonathan a2dad16f21 Add .gitignore and untrack database file
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:16:03 +01:00
Jonathan 3907414742 Add full-stack BTC portfolio web app
Multi-user FastAPI + React app with JWT auth, SQLite storage, and
CoinGecko price integration. Dockerized with docker-compose.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:15:40 +01:00
Jonathan 84679639ef first commit 2026-03-23 19:20:15 +01:00