You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.8 KiB
4.8 KiB
C-University
Application de gestion universitaire desktop, développée avec Electron + React + Vite. Elle permet la gestion complète des étudiants, des notes, des matières, des mentions et des années scolaires d'un établissement universitaire.
Développé par CPAY COMPANY FOR MADAGASCAR
Fonctionnalités
- Gestion des étudiants — inscription, consultation, modification, export PDF/Excel, import CSV
- Gestion des notes — saisie, notes de rattrapage (repêchage), calcul automatique des moyennes
- Résultats — admis / redoublant / renvoyé selon un système de seuils configurables
- Mentions & Parcours — gestion des filières et des spécialisations
- Matières — création, affectation aux mentions et aux semestres, import CSV
- Niveaux académiques — gestion des niveaux d'étude (L1, L2, M1, M2, etc.)
- Années scolaires — gestion multi-années avec année courante active
- Tranche d'écolage — suivi des paiements de scolarité par étudiant
- Export de fiches — génération de fiches matières avec QR code et PDF
- Statistiques & graphiques — visualisation via Chart.js
- Gestion des utilisateurs — authentification sécurisée, rôles admin
- Mise à jour automatique — via
electron-updater
Stack technique
| Couche | Technologies |
|---|---|
| Desktop | Electron 31 |
| Frontend | React 18, Vite, React Router DOM v6 |
| UI | Material UI (MUI v6), Bootstrap 5, React-Bootstrap |
| État | TanStack React Query, Context API |
| Base de données | MySQL (mysql2), better-sqlite3 |
| API locale | Express.js |
| jsPDF, jsPDF-AutoTable, pdf-lib, html2canvas | |
| Excel/CSV | xlsx, xlsx-populate, PapaParse, csv-parse |
| Authentification | bcryptjs |
| Graphiques | Chart.js, react-chartjs-2 |
| QR Code | qrcode |
| Logs | electron-log |
Prérequis
Installation
1. Cloner le dépôt
git clone <url-du-repo>
cd c-university
2. Installer les dépendances
npm install
3. Configurer la base de données
Assurez-vous que MySQL est en cours d'exécution. La configuration par défaut dans database/database.js est :
Host : 127.0.0.1
User : root
Password : (vide)
Database : university
Les tables sont créées automatiquement au premier lancement. Un compte admin par défaut est également créé.
Lancement
Mode développement
npm run dev
Prévisualisation du build
npm run start
Build & Distribution
| Commande | Description |
|---|---|
npm run build |
Build de l'application |
npm run build:win |
Installateur Windows (.exe via NSIS) |
npm run build:mac |
Package macOS |
npm run build:linux |
Package Linux |
npm run build:unpack |
Build sans package (dossier non compressé) |
Compte par défaut
| Champ | Valeur |
|---|---|
| Utilisateur | admin |
[email protected] |
|
| Mot de passe | 123456789 |
Il est fortement recommandé de changer le mot de passe après le premier login.
Structure du projet
c-university/
├── database/
│ └── database.js # Connexion MySQL + création des tables
├── src/
│ ├── main/ # Processus principal Electron
│ ├── preload/ # Scripts de préchargement
│ └── renderer/src/ # Interface React
│ ├── components/ # Composants de l'application
│ ├── Routes/ # Configuration du routeur
│ ├── contexts/ # Contextes React (Auth, Moyenne)
│ ├── layouts/ # Layouts (Default, Login)
│ └── assets/ # Images et ressources
├── resources/ # Icônes et ressources Electron
├── electron.vite.config.mjs # Configuration Electron-Vite
├── electron-builder.yml # Configuration du packaging
└── package.json
Schéma de base de données (résumé)
| Table | Description |
|---|---|
users |
Comptes utilisateurs avec rôles |
etudiants |
Données complètes des étudiants |
mentions |
Filières / mentions |
parcours |
Parcours au sein d'une mention |
niveaux |
Niveaux académiques |
matieres |
Matières / UE |
semestres |
Semestres |
notes |
Notes des étudiants |
notesrepech |
Notes de rattrapage |
notesystems |
Seuils admis / redoublant / renvoyé |
anneescolaire |
Années scolaires |
trancheecolage |
Tranches de paiement de scolarité |
matiereEnseignants |
Enseignants par matière |
status |
Statuts étudiants (Nouveau, Passant, Redoublant…) |
Version
v4.1.0