6.2 KiB
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'accueilsrc/app/layout.tsx- Layout principalsrc/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 FastAPIapp/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
-
Authentification:
- Backend:
app/middleware/auth.py - Frontend: Services dans
src/services/auth.ts
- Backend:
-
Données de Matchs:
- Backend:
app/models/match.py,app/api/matches.py - Frontend:
src/services/matches.ts
- Backend:
-
Prédictions:
- Backend:
app/services/prediction.py,app/ml/ - Frontend:
src/services/predictions.ts
- Backend:
-
Notifications:
- Backend: Workers RabbitMQ dans
workers/ - Frontend: Services web-push dans
src/services/
- Backend: Workers RabbitMQ dans
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.