Application web complète pour la gestion numérique de l'enrôlement des étudiants dans les établissements d'enseignement supérieur.
Nouveau ici ? Consultez ces guides pour commencer rapidement :
- 📖 INDEX_DOCUMENTATION.md - Navigation dans toute la documentation
- ⚡ DEMARRAGE_SIMPLE.md - Démarrage en 5 minutes
- 📊 ETAT_ACTUEL_PROJET.md - État actuel du projet (99.8% complet)
- 🎯 RESUME_FINAL.md - Vue d'ensemble complète
- 🎨 AMELIORATIONS_UI.md - Interface modernisée ✨ NOUVEAU
.\finaliser-installation.ps1 # Finalise l'installation
php artisan serve # Démarre le backend
cd frontend && npm run dev # Démarre le frontendAccès: http://localhost:5173
Comptes de test: admin@sgee.com / password123 ou etudiant@test.com / password123
- Design professionnel avec dégradés de couleurs
- Animations fluides (fadeIn, slideIn, shake, etc.)
- Effets visuels modernes (glass-effect, shimmer, etc.)
- Sidebar élégante avec dégradé bleu → violet
- Feedback visuel immédiat sur toutes les actions
- Responsive design optimisé pour tous les écrans
- Scrollbar personnalisée avec dégradé
- Transitions douces partout dans l'application
- Inscription et authentification sécurisée (Sanctum + OAuth)
- Connexion OAuth avec Google et Microsoft
- Enrôlement en ligne avec formulaire complet
- Upload de documents (pièces justificatives) avec validation
- Signature électronique pour les documents
- Téléchargement de la fiche d'enrôlement PDF avec QR Code unique
- Gestion des paiements et téléchargement des quitus
- Suivi du statut d'enrôlement en temps réel
- Chatbot d'assistance pour répondre aux questions
- Gestion des filières et départements
- Gestion des sessions académiques et concours
- Gestion des candidats avec recherche avancée
- Validation/rejet des enrôlements avec notifications
- Validation des paiements avec génération de quitus
- Gestion des documents (validation, rejet)
- Gestion des utilisateurs et rôles
- Statistiques dynamiques (par filière, département, etc.)
- Export PDF/CSV/Excel des listes d'étudiants
- Génération automatique de documents officiels
- Fiche d'enrôlement PDF avec QR Code vérifiable
- Quitus de paiement PDF avec QR Code
- Listes d'étudiants par filière/département (PDF)
- Envoi automatique par email des documents générés
- Vérification publique des QR Codes
- Authentification JWT (Laravel Sanctum)
- OAuth 2.0 (Google, Microsoft)
- Validation des fichiers uploadés
- Scan antivirus des documents
- QR Codes sécurisés avec hash
- Protection CSRF
- Gestion des permissions (Spatie)
- Rate limiting
- Laravel 12 (PHP 8.2+)
- Laravel Sanctum (Authentification API)
- Laravel Socialite (OAuth Google/Microsoft)
- MySQL/MariaDB (Base de données)
- DomPDF (Génération PDF)
- Simple QrCode (Génération QR Code)
- Spatie Laravel Permission (Gestion des rôles)
- Maatwebsite Excel (Export Excel/CSV)
- React.js 18 (JavaScript)
- React Router (Navigation)
- Axios (Client HTTP)
- Tailwind CSS (Styling)
- Zustand (State management)
- React Hook Form (Gestion des formulaires)
- React Hot Toast (Notifications)
- Heroicons (Icônes)
- Vite (Build tool)
- PHP 8.2 ou supérieur
- Composer
- Node.js 18+ et npm
- MySQL/MariaDB
- Git
- Cloner le projet
git clone https://github.com/KLK2005/SGEE.git
cd SGEE- Installer les dépendances PHP
composer install- Installer les dépendances Node.js
npm install- Configurer l'environnement
cp .env.example .env
php artisan key:generate- Configurer la base de données dans
.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sgee
DB_USERNAME=root
DB_PASSWORD=- Exécuter les migrations
php artisan migrate- Créer les dossiers de stockage
php artisan storage:link
mkdir -p storage/app/public/documents/{fiches,quitus,listes}- Créer un utilisateur administrateur (optionnel)
php artisan tinker$admin = \App\Models\Utilisateur::create([
'nom' => 'Admin',
'prenom' => 'System',
'email' => 'admin@sgee.local',
'password' => \Hash::make('password'),
'role_id' => 1, // ID du rôle Admin
'statut' => 'actif'
]);- Démarrer le serveur Laravel
php artisan serve- Démarrer Vite (dans un autre terminal)
npm run dev- Accéder à l'application
- Frontend: http://localhost:8000
- API: http://localhost:8000/api
- Compiler les assets
npm run build- Optimiser Laravel
php artisan config:cache
php artisan route:cache
php artisan view:cachePOST /api/register- InscriptionPOST /api/login- ConnexionPOST /api/logout- DéconnexionGET /api/user- Utilisateur connecté
GET /api/enrolements- Liste des enrôlementsPOST /api/enrolements- Créer un enrôlementGET /api/enrolements/{id}/download-fiche- Télécharger la fiche PDF
GET /api/paiements- Liste des paiementsPOST /api/paiements- Enregistrer un paiementPOST /api/paiements/{id}/validate- Valider un paiementGET /api/paiements/{id}/download-quitus- Télécharger le quitus PDF
GET /api/filieres- Liste des filièresGET /api/departements- Liste des départementsGET /api/filieres/{id}/export-liste- Exporter liste PDF par filièreGET /api/departements/{id}/export-liste- Exporter liste PDF par département
- Authentification JWT via Laravel Sanctum
- Validation stricte avec Form Requests
- Hachage bcrypt pour les mots de passe
- Middleware de protection sur toutes les routes API
- QR Codes uniques avec hash SHA256 pour vérification
- Stockage sécurisé des fichiers uploadés
Configurer les paramètres SMTP dans .env:
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your_username
MAIL_PASSWORD=your_password
MAIL_FROM_ADDRESS=noreply@sgee.local
MAIL_FROM_NAME="${APP_NAME}"# Tests PHP
php artisan test
# Tests avec couverture
php artisan test --coverageLa documentation Swagger est disponible après configuration:
php artisan l5-swagger:generateAccès: http://localhost:8000/api/documentation
- Fork le projet
- Créer une branche (
git checkout -b feature/AmazingFeature) - Commit les changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Ce projet est sous licence MIT.
- Équipe SGEE - Développement initial
- Laravel Framework
- React.js Community
- Tous les contributeurs open-source
Version: 1.0.0
Dernière mise à jour: Janvier 2026