- Added HistoriquePage component to display user's voting history with detailed statistics and vote cards. - Created UpcomingVotesPage component to show upcoming elections with a similar layout. - Developed CSS styles for both pages to enhance visual appeal and responsiveness. - Integrated API calls to fetch user's votes and upcoming elections. - Added a rebuild script for Docker environment setup and data restoration. - Created a Python script to populate the database with sample data for testing.
2.9 KiB
2.9 KiB
🔧 Notes de Développement
Problème: Build statique vs Développement
Le Problème
- Production:
docker-compose.yml→ build statique avecnpm run build(fichiers pré-compilés) - Issue: Les changements au frontend ne sont pas visibles car le build est en cache
- Symptôme: L'URL change (
/dashboard/actifs) mais le contenu ne change pas
Solution: Script de Rebuild Complet ⚡
Le problème du cache Docker est résolu avec un script qui:
- ✅ Arrête tous les conteneurs
- ✅ Supprime les images Docker en cache
- ✅ Nettoie le build précédent
- ✅ Rebuild tout avec
docker-compose up -d --build
<EFBFBD> Utilisation
Option 1: Script direct (recommandé)
./rebuild.sh
Option 2: Makefile
make rebuild
Les deux font exactement la même chose!
📊 Modes de Déploiement
1️⃣ Production (Build Statique) ← À UTILISER pour le dev aussi
make rebuild # Rebuild complet, force le cache
make up # Simple redémarrage
Utiliser pour:
- Tests finaux ✅
- Déploiement réel ✅
- Déploiement Docker ✅
2️⃣ Développement (Hot Reload) ← Si vraiment tu veux npm start
make up-dev # npm start avec auto-reload
Utiliser pour:
- Dev ultra-rapide (mais pas de build production)
- Testing local rapide
- Debugging React
📁 Fichiers de Configuration
| Fichier | Mode | Frontend | Backend |
|---|---|---|---|
docker-compose.yml |
Production | npm run build + serve |
--reload |
docker-compose.dev.yml |
Dev | npm start (hot reload) |
--reload |
rebuild.sh |
Production | Force rebuild complet | N/A |
🚀 Workflow Recommandé
# 1. Éditer le code
# vim frontend/src/pages/DashboardPage.jsx
# 2. Rebuild complet
make rebuild
# 3. Test dans le navigateur
# http://localhost:3000/dashboard/actifs
# ✅ Les changements sont appliqués!
🔍 Debugging
Voir les logs:
make logs-frontend # Logs du frontend
make logs-backend # Logs du backend
Nettoyer complètement:
make clean # Prune + supprime les images
⚠️ Notes Importantes
-
Script
rebuild.sh: Nettoie complètement et recompile- Plus lent (~30-60s) mais garantit une build fraîche
- Idéal après changements majeurs
-
make upsimple: Redémarrage rapide- Utilise l'image précédente en cache
- Plus rapide mais peut avoir du cache résiduel
-
En cas de problème:
make clean # Nettoie tout make rebuild # Rebuild du zéro
📝 Exemple: Corriger la Navigation du Dashboard
# 1. Éditer DashboardPage.jsx
vim frontend/src/pages/DashboardPage.jsx
# 2. Rebuild complet
make rebuild
# 3. Vérifier dans le navigateur
# http://localhost:3000/dashboard/actifs
# → Les changements sont visibles! ✨
# ✅ Le filtre change maintenant correctement