API REST de gestion budgétaire personnelle avec open banking (Powens), catégorisation IA et insights Gemini 2.5 Flash.
| Domaine | Implémentation |
|---|---|
| Open Banking | Intégration Powens (agrégation bancaire) — mode démo automatique si clés invalides |
| LLM appliqué | Gemini 2.5 Flash pour insights budgétaires enrichis + catégorisation hybride |
| API REST | FastAPI + SQLModel + SQLite — endpoints complets avec documentation OpenAPI |
| FinOps IA | Suivi des budgets API par fournisseur avec seuils configurables dans l'UI |
| Architecture propre | Séparation modèles / routeurs / config, mode demo/live transparent |
| Données de démo | Seed automatique pour une démo entretien sans dépendances externes |
API REST FastAPI pour l'application FinTrack — gestion budgétaire personnelle avec open banking Powens et insights Gemini.
- FastAPI + SQLModel + SQLite — léger, pas de migrations
- Powens sandbox pour l'open banking ; mode démo automatique si clés invalides
- Catégorisation déterministe (règles mots-clés) + enrichissement optionnel Gemini 2.5 Flash
- Insights statiques ou enrichis IA selon présence de
GEMINI_API_KEY - Un seul fichier
routers.pypour tous les endpoints,models.pypour tous les modèles
cd fintrack-backend
# Créer un environnement virtuel
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
# Copier et éditer les variables d'environnement
cp .env.example .env
# JWT_SECRET est requis ; Powens reste optionnel (mode démo si absent)python seed_data.py
# âś… Seed complete: N transactions, 5 subscriptions, 5 API budgets.uvicorn app.main:app --reloadAPI disponible sur http://localhost:8000
Documentation interactive : http://localhost:8000/docs
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /health |
Statut + mode demo/live |
| GET | /accounts |
Liste des comptes |
| GET | /transactions |
Transactions (params: account_id, limit, offset) |
| GET | /transactions/stats |
Stats du mois par catégorie |
| GET | /subscriptions |
Liste des abonnements |
| POST | /subscriptions |
Créer un abonnement manuel |
| GET | /api-budget |
Budgets API + totaux |
| PUT | /api-budget/{provider} |
Mettre Ă jour le budget d'un fournisseur |
| GET | /insights |
Insights IA du mois |
| POST | /sync |
Synchroniser depuis Powens |
| Variable | Défaut | Description |
|---|---|---|
GEMINI_API_KEY |
`` | Clé Gemini pour insights enrichis (optionnel) |
JWT_SECRET |
— | Secret JWT requis pour signer les tokens |
POWENS_CLIENT_ID |
`` | ID client Powens (optionnel, active le mode live) |
POWENS_CLIENT_SECRET |
`` | Secret client Powens (optionnel, active le mode live) |
SALARY_AMOUNT |
3500.0 |
Salaire de référence pour les insights |
API_BUDGET_TOTAL |
100.0 |
Budget total API mensuel |
- Demo : aucune connexion Powens, données seed uniquement
- Live : sync automatique depuis Powens si les clés sont valides
Le backend démarre dans les deux cas sans erreur.