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.
170 lines
4.8 KiB
170 lines
4.8 KiB
|
1 day ago
|
# C-University
|
||
|
10 months ago
|
|
||
|
1 day ago
|
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.
|
||
|
10 months ago
|
|
||
|
1 day ago
|
> Développé par **CPAY COMPANY FOR MADAGASCAR**
|
||
|
10 months ago
|
|
||
|
1 day ago
|
---
|
||
|
10 months ago
|
|
||
|
1 day ago
|
## Fonctionnalités
|
||
|
10 months ago
|
|
||
|
1 day ago
|
- **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 |
|
||
|
|
| PDF | 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
|
||
|
|
|
||
|
|
- [Node.js](https://nodejs.org/) >= 18
|
||
|
|
- [MySQL](https://www.mysql.com/) (serveur local actif)
|
||
|
|
- npm >= 10
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
|
||
|
|
### 1. Cloner le dépôt
|
||
|
10 months ago
|
|
||
|
|
```bash
|
||
|
1 day ago
|
git clone <url-du-repo>
|
||
|
|
cd c-university
|
||
|
10 months ago
|
```
|
||
|
|
|
||
|
1 day ago
|
### 2. Installer les dépendances
|
||
|
10 months ago
|
|
||
|
|
```bash
|
||
|
1 day ago
|
npm install
|
||
|
10 months ago
|
```
|
||
|
|
|
||
|
1 day ago
|
### 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
|
||
|
10 months ago
|
|
||
|
|
```bash
|
||
|
1 day ago
|
npm run dev
|
||
|
|
```
|
||
|
10 months ago
|
|
||
|
1 day ago
|
### Prévisualisation du build
|
||
|
10 months ago
|
|
||
|
1 day ago
|
```bash
|
||
|
|
npm run start
|
||
|
10 months ago
|
```
|
||
|
1 day ago
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 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 | `[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**
|