CIA/e-voting-system/.claude/DEV_NOTES.md
E-Voting Developer 8baabf528c feat: Implement Historique and Upcoming Votes pages with styling and data fetching
- 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.
2025-11-06 05:12:03 +01:00

2.9 KiB
Raw Blame History

🔧 Notes de Développement

Problème: Build statique vs Développement

Le Problème

  • Production: docker-compose.yml → build statique avec npm 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:

  1. Arrête tous les conteneurs
  2. Supprime les images Docker en cache
  3. Nettoie le build précédent
  4. 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

  1. Script rebuild.sh: Nettoie complètement et recompile

    • Plus lent (~30-60s) mais garantit une build fraîche
    • Idéal après changements majeurs
  2. make up simple: Redémarrage rapide

    • Utilise l'image précédente en cache
    • Plus rapide mais peut avoir du cache résiduel
  3. 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