e3fac99045d471525c1cdab4bd44da5880099d58
Backend: - GET /api/v1/dashboard?month=YYYY-MM: KPIs, by_category, 6-month trend, budget alerts - GET/POST/PUT/DELETE /api/v1/budgets: budget envelopes with spent_cents/remaining_cents - POST /api/v1/budgets/rollover: copy budgets from M-1 to target month - GET /api/v1/history?year=YYYY: monthly summary for the year - GET /api/v1/export/csv|pdf?month=YYYY-MM: StreamingResponse exports (WeasyPrint PDF) - New schemas: dashboard, budget, history - Services: dashboard_service, budget_service - Routers mounted in main.py Frontend: - DashboardPage: 4 KPI cards, PieChart (expenses by category), BarChart (6-month trend), month navigation, budget alert badges, CSV/PDF export buttons - BudgetsPage: progress bars (green/orange/red), create/edit form, delete, rollover M-1 - HistoryPage: annual table with month click → dashboard, LineChart revenues/expenses - CategoriesPage: list by type with create/edit/delete (was missing from Phase 2) - TransactionsPage: added CSV/PDF export buttons - App.tsx: full routing with ProtectedRoute + Layout for all authenticated pages - New hooks: useDashboard, useBudgets (with mutations), useHistory - API types + client updated for all new endpoints Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Budget Tracker
Application web de suivi de budget personnel.
Stack technique
- Backend : FastAPI, SQLAlchemy 2.0 async, Alembic, PostgreSQL 16
- Frontend : React 18, TypeScript, Vite, Tailwind CSS, shadcn/ui
- Graphiques : Recharts
- Export : CSV, PDF (WeasyPrint)
Démarrage rapide
# Copier et configurer les variables d'environnement
cp .env.example .env
# Lancer tous les services (dev avec hot-reload)
docker compose up
# Backend : http://localhost:8000
# Frontend : http://localhost:5173
# Health check : http://localhost:8000/health
Développement
# Linting backend
cd backend && ruff check .
# Tests backend
cd backend && pytest
# Format frontend
cd frontend && npm run format
Description
Languages
TypeScript
40.2%
Python
35.6%
Shell
22%
Dockerfile
0.9%
JavaScript
0.6%
Other
0.7%