Skip to content

versila22/fintrack-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

đź’° FinTrack Backend

Python 3.12 FastAPI Gemini 2.5 Flash Open Banking License

API REST de gestion budgétaire personnelle avec open banking (Powens), catégorisation IA et insights Gemini 2.5 Flash.


🎯 Compétences démontrées

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.

Architecture (5 lignes)

  • 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.py pour tous les endpoints, models.py pour tous les modèles

Installation

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)

Seed (données de démo)

python seed_data.py
# âś… Seed complete: N transactions, 5 subscriptions, 5 API budgets.

Lancement

uvicorn app.main:app --reload

API disponible sur http://localhost:8000
Documentation interactive : http://localhost:8000/docs

Endpoints

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

Variables d'environnement

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

Mode démo vs live

  • 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.

About

💳 FinTrack — Personal finance REST API with Open Banking (Powens), Gemini AI insights & production security

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages