Une application web complète et moderne pour la gestion d'un établissement scolaire. Ce projet full-stack (MERN) permet de gérer les étudiants, enseignants, classes, matières et notes avec un système d’authentification basé sur les rôles.
L’accent a été mis sur :
-
Un design professionnel
-
Une expérience utilisateur fluide
-
Des animations subtiles pour une interface moderne et agréable
Le système est conçu autour de trois rôles principaux : Administrateur, Enseignant, et Étudiant.
- Tableau de Bord Complet : Vue d’ensemble avec statistiques clés (étudiants, enseignants, classes).
- Gestion des Étudiants : CRUD complet (Créer, Lire, Mettre à jour, Supprimer).
- Gestion des Enseignants : CRUD complet.
- Gestion des Classes : CRUD complet avec assignation d’un professeur principal.
- Gestion des Matières : CRUD complet.
- Gestion des Utilisateurs : Réinitialisation sécurisée des mots de passe.
- Création de Comptes Automatisée : Lors de l’ajout d’un étudiant ou enseignant, un compte est généré automatiquement.
- Portail de Saisie des Notes : Sélection d’une classe via une interface interactive.
- Grille de Saisie Intuitive : Ajout et mise à jour des notes.
- Consultation des Résultats : Accès aux bulletins complets des classes.
- Export PDF : Téléchargement des bulletins (individuels ou globaux).
- Tableau de Bord Simplifié : Vue personnelle du bulletin de notes.
- Consultation des Moyennes : Notes par matière et moyenne générale.
- Export PDF : Téléchargement de son relevé de notes.
- React.js (Hooks & Context API)
- React Router (navigation)
- Material-UI (MUI)
- Framer Motion (animations)
- Axios (requêtes HTTP)
- jsPDF & jsPDF-Autotable (PDF)
- React-Icons
- Node.js & Express.js
- MongoDB + Mongoose
- JWT (authentification)
- Bcrypt.js (hachage des mots de passe)
- Dotenv (variables d’environnement)
- Node.js (v14+)
- npm
- MongoDB (local ou MongoDB Atlas)
git clone https://github.com/zakariaghrib/school-management-system
cd school-management-systemcd server
npm installCréer un fichier .env dans /server :
MONGO_URI=votre_chaine_de_connexion_mongodb
JWT_SECRET=un_secret_complexe_pour_jwtLancer le serveur (avec nodemon) :
npm run devLe backend est disponible sur http://localhost:5000
cd client
npm install
npm startLe frontend est disponible sur http://localhost:3000
/
├── client/ # Application Frontend (React)
│ ├── public/
│ └── src/
│ ├── components/
│ ├── context/
│ ├── pages/
│ └── services/
└── server/ # Application Backend (Node.js/Express)
├── config/
├── controllers/
├── middleware/
├── models/
└── routes/
- Notifications en temps réel (Socket.io)
- Gestion des emplois du temps
- Chat intégré (enseignants ↔ étudiants ↔ administration)
- Tableau de bord analytique avancé
Ce projet est sous licence MIT – libre à utiliser et mod
