# Structure du Projet ChartBastan ## Vue d'ensemble **Type de référentiel:** Multi-part (Frontend + Backend séparés) Le projet ChartBastan est divisé en deux parties distinctes qui communiquent via des API REST: - **Frontend:** Application Next.js avec TypeScript et React - **Backend:** API FastAPI avec Python --- ## Architecture du Projet ``` chartbastan/ ├── _bmad/ # Configuration BMad (workflow/agents) ├── _bmad-output/ # Artefacts de planification et implémentation │ ├── analysis/ # Analyses et brainstorming │ ├── implementation-artifacts/ # Documentation d'implémentation (38 fichiers) │ └── planning-artifacts/ # PRD, Architecture, Epics, UX ├── backend/ # Backend FastAPI (Part: api) │ ├── alembic/ # Migrations de base de données │ ├── app/ │ │ ├── api/ # Endpoints REST (13 fichiers) │ │ ├── lib/ # Bibliothèques partagées │ │ ├── main.py # Point d'entrée FastAPI │ │ ├── middleware/ # Middleware (auth, CORS) │ │ ├── ml/ # Services ML (sentiment, prédiction) │ │ ├── models/ # Modèles SQLAlchemy (12 modèles) │ │ ├── queues/ # Gestion RabbitMQ │ │ ├── schemas/ # Schémas Pydantic (14 fichiers) │ │ ├── scrapers/ # Scrapers (Twitter, Reddit, RSS) │ │ ├── services/ # Services métier (8 services) │ │ └── workers/ # Workers async (4 workers) │ ├── scripts/ # Scripts utilitaires │ ├── tests/ # Tests unitaires (30 fichiers) │ ├── workers/ # Scripts d'exécution des workers │ ├── requirements.txt # Dépendances Python │ └── alembic.ini # Configuration Alembic ├── chartbastan/ # Frontend Next.js (Part: frontend) │ ├── public/ # Assets statiques │ ├── src/ │ │ ├── app/ # App Router Next.js (22 fichiers) │ │ ├── components/ # Composants React (72 composants) │ │ ├── db/ # Drizzle ORM │ │ ├── hooks/ # React Hooks (9 hooks) │ │ ├── lib/ # Utilitaires et API client (7 fichiers) │ │ ├── middleware/ # Middleware Next.js │ │ ├── scripts/ # Scripts de migration │ │ ├── services/ # Services API (27 services) │ │ ├── stores/ # Zustand stores │ │ └── tests/ # Tests (48 fichiers) │ ├── drizzle/ # Migrations Drizzle │ ├── package.json # Dépendances Node.js │ ├── tsconfig.json # Configuration TypeScript │ └── next.config.ts # Configuration Next.js └── docs/ # Documentation du projet ``` --- ## Parties du Projet ### Part 1: Frontend (chartbastan/) **Type:** web **Technologie:** Next.js 16.1.3 + TypeScript **Rôle:** Interface utilisateur et visualisation des données **Fonctionnalités principales:** - Dashboard en temps réel avec D3.js - Visualisations de données et graphiques - Gestion des utilisateurs et authentification - Interface de paris et de prédictions - Gamification (badges, classements) - Notifications push **Points d'entrée:** - `src/app/page.tsx` - Page d'accueil - `src/app/layout.tsx` - Layout principal - `src/main.tsx` - Entrée React --- ### Part 2: Backend (backend/) **Type:** backend **Technologie:** FastAPI 0.128.0 + Python 3.11+ **Rôle:** API REST, ML, scraping de données **Fonctionnalités principales:** - API REST pour les données de matchs et prédictions - Scraping de données (Twitter, Reddit, RSS) - Analyse de sentiment (VADER, TextBlob) - Calcul de l'énergie collective - Machine Learning pour les prédictions - File d'attente asynchrone (RabbitMQ) - Authentification et gestion des utilisateurs **Points d'entrée:** - `app/main.py` - Application FastAPI - `app/api/` - Endpoints REST --- ## Intégration entre Parties Les deux parties communiquent via des appels API REST: **Frontend → Backend:** - Les services dans `src/services/` appellent les endpoints de l'API FastAPI - API client dans `src/lib/` gère les requêtes HTTP **Backend → Frontend:** - API REST sur le port 8000 - Documentation Swagger: `http://localhost:8000/docs` --- ## Points d'Intégration 1. **Authentification:** - Backend: `app/middleware/auth.py` - Frontend: Services dans `src/services/auth.ts` 2. **Données de Matchs:** - Backend: `app/models/match.py`, `app/api/matches.py` - Frontend: `src/services/matches.ts` 3. **Prédictions:** - Backend: `app/services/prediction.py`, `app/ml/` - Frontend: `src/services/predictions.ts` 4. **Notifications:** - Backend: Workers RabbitMQ dans `workers/` - Frontend: Services web-push dans `src/services/` --- ## Artefacts de Planification Le dossier `_bmad-output/` contient toute la documentation de planification: - **PRD:** Product Requirements Document complet - **Architecture:** Documentation architecturale détaillée - **Epics:** 9 epics complétés - **UX:** Spécifications de design et directions - **Implementation:** 38 fichiers d'implémentation détaillée Ces documents sont disponibles pour référence lors du développement de nouvelles fonctionnalités. --- ## Base de Données **Phase 1:** SQLite (pour le développement et le test) - Frontend: `chartbastan/chartbastan.db` (Drizzle ORM) - Backend: SQLAlchemy avec Alembic (migrations) **Phase 2+:** PostgreSQL (production) --- ## Développement Actif **Statut:** Tous les epics sont complétés **Phase actuelle:** Testing de l'application complète Le projet est prêt pour le test et la validation des fonctionnalités.