Files
turf_saas/DOCUMENTATION.md
DevOps Engineer 0492f06bfd docs(HRT-96): Note Intelligence ML + documentation API v1 finale
- Création POD/Intelligence/ML_Predictions_SaaS.md : architecture ML complète,
  flow ml_predictions_cache → ml_feedback_saas → paris → ROI dashboard,
  schéma données/jointures, décision duplication vs modification turf_scraper,
  documentation des 4 stratégies XGBoost, idempotence, usage CLI
- Mise à jour DOCUMENTATION.md : ajout section Turf SaaS API v1 complète
  avec tous les endpoints documentés dont /api/v1/roi/* et /api/v1/ml/feedback/*
  (HRT-92 ROI backend + HRT-93 ML feedback loop)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-30 21:28:52 +02:00

11 KiB
Raw Permalink Blame History

💸 Dépenses Trello - Application de Gestion des Dépenses

📝 Description

Dépenses Trello est une application web de gestion des dépenses personnelles avec synchronisation automatique vers Trello. Créée pour simplifier le suivi des dépenses au quotidien.


Fonctionnalités

Gestion des Dépenses

  • Ajout rapide de dépenses (prénom, date, libellé, montant, catégorie)
  • ✏️ Modification des dépenses existantes
  • 🗑️ Suppression de dépenses
  • 📤 Export CSV pour Excel/comptabilité
  • 📥 Import CSV pour récupérer des données
  • 📄 Export PDF pour les relevés

Catégories Automatiques

  • 🚗 Transport (essence, gazole, parking)
  • 🛒 Courses (Carrefour, Lidl, Auchan)
  • 🎰 Loisirs (loto, bar, café, cinéma)
  • 🏠 Maison (lumière, loyer, brico)
  • ❤️ Santé (pharmacie, contrôle technique)
  • 📦 Autre (divers)

Graphiques & Statistiques

  • 📊 Bar chart - visualisation classique
  • 🥧 Camembert - répartition par catégorie
  • 👤 Par personne - suivi par membre du foyer
  • 📅 Par mois - évolution dans le temps

Budget

  • 💰 Budget mensuel configurable
  • ⚠️ Alerte automatique quand le budget est dépassé

Dépenses Récurrentes

  • 🔄 Loyer, EDF, téléphone - automatiquement listés

Synchronisation Trello

  • 🟦 Envoi automatique des dépenses vers une liste Trello
  • Suivi du statut (En attente / Envoyé)

🛠️ Stack Technique

Composant Technologie
Backend Python Flask
Base de données SQLite
Frontend HTML5, Vanilla JavaScript
Graphiques Chart.js
PDF jsPDF
Hébergement VPS (Linux)

📋 Spécifications

  • Port: 8769
  • URL: http://178.18.250.53:8769/
  • API REST: /api/depenses, /api/config, /api/budget, /api/recurring
  • Données: 21+ dépenses en base (extensible)
  • Utilisateurs: Multi-utilisateurs (via prénom)

🚀 Installation

# Cloner le projet
git clone http://178.18.250.53:3000/admin/Perso.git

# Installer les dépendances
pip install flask requests

# Lancer l'application
python app.py

💼 Potentiel Commercial

Cible

  • 👨‍👩‍👧 Particuliers gestion budget familial
  • 💼 Auto-entrepreneurs frais professionnels
  • 🏢 Petites entreprises suivi dépenses

Arguments de Vente

  1. Simple - interface épurée, pas de formation
  2. Complet - catégories, graphiques, budget, PDF
  3. Automatisé - synchronisation Trello
  4. Pas d'abonnement - hébergement propre
  5. Open Source - customisable

Prix Recommandés

Offre Prix
Usage personnel 19€
Usage pro 49€
Installation + config 29€
Support mensuel 9€/mois

📱 Captures d'Écran

Page Saisie

  • Formulaire rapide avec catégories auto
  • Liste des dernières dépenses
  • Boutons Envoyer tout / Export

Page Dashboard

  • Graphiques Bar / Camembert
  • Filtres Mois / Personne / Catégorie
  • Total en temps réel

Page Config

  • Gestion des prénoms
  • Personnalisation des catégories
  • Configuration Trello (API Key, Token, List ID)
  • Budget mensuel

🔧 Configuration Trello

  1. Créer un Power-Up sur https://trello.com/power-ups/admin
  2. Générer une API Key
  3. Générer un Token (avec permissions write)
  4. Copier le List ID cible
  5. Coller dans Config

📝 Roadmap Future

  • Application mobile (PWA)
  • Mode hors-ligne
  • Catégories personnalisées illimitées
  • Rapports mensuels par email
  • Intégration Slack/Discord
  • Multi-devises

📞 Contact

Développé par: H3R7Tech Date: Mars 2026 Version: 1.6


Document généré automatiquement - Dépenses Trello



Turf SaaS — Documentation API v1

Mise à jour : 2026-04-30 (HRT-96 — ML Predictions + ROI + Feedback)
URL SaaS : https://turf-saas-kolifee.duckdns.org
Port local : 8792
Base de données : /home/h3r7/turf_saas/turf_saas.db


Stack Technique Turf SaaS

Composant Technologie
Backend Python Flask + Blueprints
Auth JWT (access + refresh tokens)
Base de données SQLite (turf_saas.db)
ML XGBoost v1 (prédictions courses PMU)
Frontend HTML5 + Chart.js
Hébergement VPS Linux — https://turf-saas-kolifee.duckdns.org

Plans d'accès

Plan Accès
free health, auth, courses/today, predictions/top3 (1/jour)
premium + predictions/all, valuebets, metrics, roi (complet), feedback/stats
pro + backtest, export/csv, historique illimité, orgs

Endpoints API v1

Authentification

Méthode Path Auth Description
POST /api/v1/auth/register Non Créer un compte (plan=free)
POST /api/v1/auth/login Non Login — retourne access_token + refresh_token
POST /api/v1/auth/refresh Non Renouveler l'access token
POST /api/v1/auth/logout Oui Révoquer le refresh token

Système

Méthode Path Auth Description
GET /api/v1/health Non Healthcheck public
GET /api/v1/docs Non Swagger UI (Flasgger)

Courses

Méthode Path Plan Description
GET /api/v1/courses/today free+ Courses du jour (paginé)
GET /api/v1/courses/{id}/predictions free+ Prédictions ML pour une course

{id} format : {num_reunion}-{num_course} ex: 1-3
Query params courses/today : filter=[all|quinte|trot|plat], limit, offset

Prédictions ML

Méthode Path Plan Description
GET /api/v1/predictions/top3 free+ Top 3 chevaux du jour
GET /api/v1/predictions/all premium+ Toutes les prédictions XGBoost

Query params : date=YYYY-MM-DD, limit, offset

Source des données : table ml_predictions_cache (modèle xgboost_v1)

Value Bets

Méthode Path Plan Description
GET /api/v1/valuebets premium+ Value bets du jour (is_value_bet=1)

Query params : date, min_odds (défaut 2.0), limit, offset

Métriques ML

Méthode Path Plan Description
GET /api/v1/metrics premium+ Métriques perf ML (precision, ROI, top-3 rate)

Query params : days (int, défaut 30, max 365)

ROI par Modèle/Stratégie (HRT-92)

Méthode Path Plan Description
GET /api/v1/roi/by-model premium+ ROI calculé par stratégie ML XGBoost

Query params :

  • strategy : filtrer par stratégie (xgboost_sg, xgboost_value, xgboost_sp, xgboost_2sur4)
  • days : période en jours (défaut 30, max 365)

Réponse :

{
  "period": {"start": "2026-04-01", "end": "2026-04-30", "days": 30},
  "models": [
    {
      "model_source": "xgboost_sg",
      "nb_paris": 42,
      "mise": 42.0,
      "gain": 51.3,
      "roi_pct": 22.1,
      "win_rate": 28.6
    }
  ]
}

Jointures : parispmu_partants (résultats) ← pmu_rapports (dividendes)

Accès plan : Free = 1 stratégie max, Premium/Pro = complet + historique illimité

ML Feedback Loop (HRT-93)

Méthode Path Plan Description
POST /api/v1/ml/feedback/run Admin Déclencher ml_feedback_saas.py manuellement
GET /api/v1/ml/feedback/stats premium+ Stats paris par stratégie XGBoost

POST /api/v1/ml/feedback/run — Corps optionnel :

{"date": "2026-04-29"}

ou

{"backfill": "2026-04-20"}

GET /api/v1/ml/feedback/stats — Réponse :

{
  "stats": [
    {
      "source_reco": "xgboost_sg",
      "nb_paris": 42,
      "nb_gagnes": 12,
      "win_rate_pct": 28.6,
      "mise_totale": 42.0,
      "gain_total": 51.3,
      "roi_pct": 22.1
    }
  ],
  "last_run": "2026-04-29T18:30:00"
}

Stratégies XGBoost :

Stratégie Type pari Condition Mise
xgboost_sg simple_gagnant top1 ML, ml_score >= 70 1€
xgboost_value simple_gagnant is_value_bet = 1 1€
xgboost_sp simple_place top1 ML, ml_score >= 50 1€
xgboost_2sur4 deux_sur_quatre top4 ML, 6 combos 6€

Backtest

Méthode Path Plan Description
GET /api/v1/backtest pro Résultats historiques des paris

Query params : start, end (YYYY-MM-DD), limit, offset

Export

Méthode Path Plan Description
GET /api/v1/export/csv pro Export CSV

Query params : type=[predictions|bets], date, start, end

Historique

Méthode Path Plan Description
GET /api/v1/history free+ Historique prédictions ML

Limites : Free = 7j, Premium = 90j, Pro = illimité

Organisations

Méthode Path Plan Description
GET /api/v1/org/ pro Détails de l'organisation
POST /api/v1/org/ pro Créer une organisation
POST /api/v1/org/invite pro Inviter un membre (max 5)
DELETE /api/v1/org/members/{id} pro Retirer un membre

Utilisateur & Tokens

Méthode Path Plan Description
GET /api/v1/user/profile free+ Profil utilisateur
PUT /api/v1/user/alerts premium+ Config alertes Telegram
GET /api/v1/user/api-token pro Token API personnel
POST /api/v1/user/api-token pro Générer/régénérer token API
GET /api/v1/user/webhook pro Config webhook
PUT /api/v1/user/webhook pro Modifier webhook

Billing (Stripe)

Méthode Path Auth Description
POST /api/v1/billing/checkout Oui Créer session Stripe Checkout
POST /api/v1/billing/portal Oui Portail Stripe (gestion abonnement)
GET /api/v1/billing/status Oui Statut abonnement actuel
POST /api/v1/billing/webhook Non Webhook Stripe (events)

Format de réponse uniforme

Erreurs :

{
  "status": "error",
  "message": "Description de l'erreur",
  "code": 400
}

Listes paginées :

{
  "pagination": {
    "total": 150,
    "limit": 20,
    "offset": 0,
    "has_more": true
  }
}

Architecture ML — Résumé

ml_predictions_cache (XGBoost v1)
    → ml_feedback_saas.py
        → table paris (source_reco = xgboost_*)
            → /api/v1/roi/by-model  (ROI calculé)
            → /api/v1/ml/feedback/stats (stats)
                → dashboard_saas.html (Section Performance & ROI)

Voir documentation complète : POD/Intelligence/ML_Predictions_SaaS.md


Démarrage

cd /home/h3r7/turf_saas
source venv/bin/activate
python app_v1.py
# ou via gunicorn
gunicorn -w 2 -b 0.0.0.0:8792 app_v1:app

Tests

cd /home/h3r7/turf_saas
source venv/bin/activate
python -m pytest tests/ -v

Turf SaaS — H3R7Tech — Mise à jour 2026-04-30 (HRT-96)