CIA/e-voting-system/QUICKSTART.sh
E-Voting Developer 5bebad45b8 Initial commit: Complete e-voting system with cryptography
- FastAPI backend with JWT authentication
- ElGamal, RSA-PSS, ZK-proofs crypto modules
- HTML5/JS frontend SPA
- MariaDB database with 5 tables
- Docker Compose with 3 services (frontend, backend, mariadb)
- Comprehensive tests for cryptography
- Typst technical report (30+ pages)
- Makefile with development commands
2025-11-03 16:13:08 +01:00

150 lines
3.9 KiB
Bash
Executable File

#!/bin/bash
# QUICK START - Démarrage rapide du projet
echo "🗳️ Système de Vote Électronique Sécurisé"
echo "Quick Start Guide"
echo "==============================================="
echo ""
# Déterminer le répertoire du script
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "📦 Prérequis:"
echo " ✓ Docker 20.10+"
echo " ✓ Docker Compose 1.29+"
echo " ✓ Python 3.12 (optionnel, pour dev local)"
echo ""
# Fonction pour afficher les sections
print_section() {
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " $1"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
}
# Vérifier Docker
print_section "Vérification des prérequis"
if ! command -v docker &> /dev/null; then
echo "❌ Docker n'est pas installé"
echo "Installez Docker: https://docs.docker.com/get-docker/"
exit 1
fi
echo "✓ Docker détecté: $(docker --version)"
if ! command -v docker-compose &> /dev/null; then
echo "❌ Docker Compose n'est pas installé"
exit 1
fi
echo "✓ Docker Compose détecté: $(docker-compose --version)"
# Créer .env
print_section "Configuration"
if [ ! -f "$SCRIPT_DIR/.env" ]; then
echo "📝 Création de .env..."
cp "$SCRIPT_DIR/.env.example" "$SCRIPT_DIR/.env"
echo "✓ Fichier .env créé"
echo " (Modifiez-le si nécessaire avant le démarrage)"
else
echo "✓ Fichier .env existe déjà"
fi
echo ""
read -p "Appuyez sur ENTRÉE pour démarrer l'application..."
# Démarrer Docker
print_section "Démarrage des conteneurs"
cd "$SCRIPT_DIR"
echo "🚀 Démarrage..."
docker-compose up -d
if [ $? -ne 0 ]; then
echo "❌ Erreur au démarrage des conteneurs"
exit 1
fi
echo "✓ Conteneurs démarrés"
# Attendre que tout soit prêt
print_section "Initialisation"
echo "⏳ Attente du démarrage de tous les services (30s)..."
for i in {1..30}; do
if curl -s http://localhost:8000/health > /dev/null 2>&1; then
echo "✓ Backend prêt"
break
fi
sleep 1
echo -n "."
done
sleep 2
# Afficher l'état
print_section "Application en cours d'exécution ✓"
echo ""
echo "🌐 Accès :"
echo ""
echo " Frontend : http://localhost:3000"
echo " (Interface de vote)"
echo ""
echo " Backend : http://localhost:8000"
echo " (API REST)"
echo ""
echo " API Docs : http://localhost:8000/docs"
echo " (Swagger interactif)"
echo ""
echo " Database : localhost:3306"
echo " User: evoting_user"
echo " Pass: (voir .env)"
echo ""
# Afficher les logs
print_section "Premiers pas"
echo ""
echo "1. Ouvrir le navigateur: http://localhost:3000"
echo "2. Créer un compte"
echo "3. Se connecter"
echo "4. Sélectionner un candidat et voter"
echo "5. Voir les résultats"
echo ""
# Commandes utiles
print_section "Commandes utiles"
echo ""
echo "🔍 Voir les logs:"
echo " docker-compose logs -f"
echo ""
echo "🛑 Arrêter l'application:"
echo " docker-compose down"
echo ""
echo "🧹 Nettoyer (reset complet):"
echo " docker-compose down -v"
echo ""
echo "📝 Consulter la documentation:"
echo " - README.md (Vue d'ensemble)"
echo " - DEPLOYMENT.md (Déploiement)"
echo " - ARCHITECTURE.md (Architecture système)"
echo " - CONTRIBUTING.md (Contribution)"
echo ""
# Tests
print_section "Lancer les tests"
echo ""
echo "Pour développement local (nécessite Poetry):"
echo ""
echo " make install # Installer dépendances"
echo " make test # Exécuter les tests crypto"
echo " make lint # Vérifier la qualité"
echo " make format # Formater le code"
echo ""
echo "==============================================="
echo "✅ L'application est prête!"
echo ""
echo "📞 Besoin d'aide ?"
echo " Consulter PROJECT_SUMMARY.md pour les détails"
echo ""