# Guide de Test Rapide - ChartBastan

🚀 **Démarrage rapide pour tester l'application complète**

---

## 📋 Prérequis

Avant de commencer, assurez-vous d'avoir:

- ✅ Node.js 20+ ([Télécharger](https://nodejs.org/))
- ✅ Python 3.11+ ([Télécharger](https://www.python.org/))
- ✅ Git (optionnel)

**Vérifier les versions:**

```bash
node --version   # Doit être 20+
python --version  # Doit être 3.11+
```

---

## 🚀 Démarrage en 3 Étapes

### Étape 1: Installer les Dépendances Backend

```bash
cd backend
pip install -r requirements.txt
```

### Étape 2: Installer les Dépendances Frontend

```bash
cd ../chartbastan
npm install
```

### Étape 3: Démarrer les Deux Serveurs

**Terminal 1 - Backend:**

```bash
cd backend
python -m uvicorn app.main:app --reload --port 8000
```

Le backend démarre sur: **http://localhost:8000**

**Terminal 2 - Frontend:**

```bash
cd chartbastan
npm run dev
```

Le frontend démarre sur: **http://localhost:3000**

---

## 🎯 Tester l'Application

1. **Ouvrir votre navigateur** sur http://localhost:3000
2. **Page d'accueil** s'affiche avec le branding ChartBastan
3. **Tester l'inscription** → Créer un compte
4. **Tester le login** → Se connecter
5. **Explorer le dashboard** → Voir les matchs et prédictions

---

## 🧪 Fonctionnalités à Tester

### 1. Authentification

- [ ] Inscription d'un utilisateur
- [ ] Connexion avec identifiants valides
- [ ] Déconnexion
- [ ] Rester connecté (session persistence)

### 2. Dashboard Principal

- [ ] Affichage des matchs actuels
- [ ] Graphique d'énergie en temps réel
- [ ] Mise à jour automatique (pull-to-refresh)

### 3. Prédictions

- [ ] Faire une prédiction sur un match
- [ ] Voir les scores de confiance
- [ ] Voir l'énergie collective calculée
- [ ] Historique des prédictions

### 4. Classement (Leaderboard)

- [ ] Voir le Top 100
- [ ] Voir son propre rang
- [ ] Comparer avec d'autres utilisateurs

### 5. Badges et Gamification

- [ ] Voir les badges obtenus
- [ ] Progression des badges
- [ ] Partager les succès

### 6. Notifications

- [ ] Activer les notifications
- [ ] Recevoir des notifications de prédictions
- [ ] Gérer les préférences de notification

### 7. Historique

- [ ] Voir l'historique des prédictions
- [ ] Voir le taux de précision
- [ ] Comparer les résultats avec l'énergie collective

### 8. Parrainage

- [ ] Générer un lien de parrainage
- [ ] Voir les récompenses

### 9. Comparaison Énergie vs Stats

- [ ] Voir la comparaison énergie/stats
- [ ] Graphiques comparatifs
- [ ] Performance historique

---

## 🔧 Configuration Optionnelle

### API Documentation

Le backend fournit une documentation interactive:

- **Swagger UI:** http://localhost:8000/docs
- **ReDoc:** http://localhost:8000/redoc

### Base de Données

La base de données SQLite est créée automatiquement:
- Chemin: `chartbastan/chartbastan.db`
- Réinitialiser: Supprimer le fichier `.db` et redémarrer

### Workers Asynchrones

Les workers sont optionnels (pour scraping asynchrone):

```bash
# Scraper worker
cd backend
python workers/run_scraping_worker.py

# Sentiment worker
python workers/run_sentiment_worker.py

# Energy worker
python workers/run_energy_worker.py
```

---

## 📊 Structure des Données

### Tables Principales

- **users** - Utilisateurs authentifiés
- **matches** - Matchs de football
- **predictions** - Prédictions du système
- **user_predictions** - Prédictions utilisateurs
- **tweets** - Données Twitter scrapées
- **reddit_posts** - Données Reddit scrapées
- **sentiment_scores** - Scores de sentiment
- **energy_scores** - Scores d'énergie collective

---

## 🐛 Dépannage Rapide

### Backend ne démarre pas

```bash
# Vérifier si le port 8000 est utilisé
# Windows:
netstat -ano | findstr :8000
# Linux/Mac:
lsof -ti:8000 | xargs kill -9

# Réessayer
python -m uvicorn app.main:app --reload --port 8000
```

### Frontend ne démarre pas

```bash
# Nettoyer node_modules
rm -rf node_modules
npm install

# Réessayer
npm run dev
```

### Erreur de connexion Frontend-Backend

```bash
# Vérifier que backend tourne sur http://localhost:8000
curl http://localhost:8000/api/health

# Vérifier la configuration frontend
cat chartbastan/.env.local
# Doit contenir: NEXT_PUBLIC_API_URL=http://localhost:8000
```

### Base de données vide

```bash
cd backend
# Appliquer les migrations
alembic upgrade head

# Générer des données de test
python scripts/generate_historical_matches.py
```

---

## 📝 Commandes Utiles

### Backend

```bash
cd backend

# Linter
flake8 .

# Formatage
black .

# Tests
pytest tests/ -v

# Migrations
alembic upgrade head
```

### Frontend

```bash
cd chartbastan

# Linter
npm run lint

# Type checking
npm run type-check

# Tests
npm run test

# Build
npm run build
```

---

## 🎨 Personnalisation

### Changer le Port Frontend

```bash
cd chartbastan
npm run dev -- -p 3001
```

Mettre à jour `.env.local`:

```bash
NEXT_PUBLIC_API_URL=http://localhost:8000
NEXT_PUBLIC_PORT=3001
```

### Changer le Port Backend

```bash
cd backend
python -m uvicorn app.main:app --reload --port 8001
```

Mettre à jour `chartbastan/.env.local`:

```bash
NEXT_PUBLIC_API_URL=http://localhost:8001
```

---

## 📚 Documentation Complète

Pour plus de détails sur l'architecture et l'implémentation:

- **Documentation complète:** `docs/` (ce dossier)
- **PRD:** `_bmad-output/planning-artifacts/prd.md`
- **Architecture:** `_bmad-output/planning-artifacts/architecture.md`
- **Artefacts d'implémentation:** `_bmad-output/implementation-artifacts/` (38 fichiers)

---

## ✅ Checklist Avant le Test

- [ ] Node.js 20+ installé
- [ ] Python 3.11+ installé
- [ ] Dépendances backend installées (`pip install -r requirements.txt`)
- [ ] Dépendances frontend installées (`npm install`)
- [ ] Backend démarré sur le port 8000
- [ ] Frontend démarré sur le port 3000
- [ ] Navigateur ouvert sur http://localhost:3000

---

## 🎉 Bon Testing!

L'application est complète et tous les epics sont implémentés. Profitez de l'expérience ChartBastan!

**Pour des questions ou des problèmes:**
- Consultez la documentation Swagger: http://localhost:8000/docs
- Vérifiez les logs dans les terminaux
- Consultez les artefacts d'implémentation dans `_bmad-output/`

---

**Date de création:** 2026-01-18
**Version:** 0.1.0
**Statut:** Tous les épics complétés ✅
