Ce depot regroupe plusieurs livrables autour d'un meme domaine: la gestion des sanctions scolaires.
Il contient:
- une application web PHP (MVC) pour la gestion quotidienne (utilisateurs, classes, eleves, professeurs, sanctions),
- une API REST Node.js/Express connectee a MySQL,
- un client CLI Node.js pour interagir avec l'API,
- de la documentation projet (backlog, user stories, sprints, maquettes).
- projet-gestion-des-sanctions-METTETALE
- Application web PHP (interface utilisateur)
- Base MySQL via Docker Compose
- sanctions-api-rest-METTETALE
- API REST Express + MySQL
- Tests HTTP dans
code/test
- cli-api-rest-sanctions-METTETALE
- Outil en ligne de commande (Commander.js)
- Requete l'API REST (par defaut sur localhost:4500)
- Docker + Docker Compose
- Node.js 18+ (16+ peut fonctionner, mais 18+ recommande)
- npm
- PHP 8+ (pour lancer l'application web locale)
- Un client HTTP (REST Client VS Code / Postman / Insomnia)
Depuis projet-gestion-des-sanctions-METTETALE:
docker compose up -dServices exposes:
- MySQL:
localhost:3330 - phpMyAdmin:
http://localhost:8010
Identifiants DB par defaut (docker-compose de ce module):
- base:
db_sanctions - user:
user - mot de passe:
secret
Depuis projet-gestion-des-sanctions-METTETALE/Code/public:
php -S localhost:8080Acces web:
http://localhost:8080/index.php?action=index
La configuration DB PHP est definie dans:
projet-gestion-des-sanctions-METTETALE/Code/src/config/database.php
- Creer le fichier
.envdanssanctions-api-rest-METTETALE/code(exemple):
PORT=4500
MYSQL_ROOT_PASSWORD=root
DB_NAME=db_sanctions
DB_USER=user
DB_PASSWORD=password
DB_HOST=db
DB_PORT=3306
JWT_SECRET=change_me- Lancer la base de l'API:
cd sanctions-api-rest-METTETALE/code
docker compose up -d- Lancer l'API en local:
npm install
npm run devBase URL API:
http://localhost:4500/api
Endpoints principaux:
GET /api/eleves?nom=&prenom=GET /api/eleves/:id/sanctions?from=&to=
Depuis cli-api-rest-sanctions-METTETALE/code:
npm install
node index.js --helpExemples:
node index.js eleves Dupont Marie
node index.js sanctions 6 -f 2025-01-01 -t 2025-12-31
node index.js login monuser monpasswordLe CLI cible l'API sur http://localhost:4500/api par defaut.
Chemin: projet-gestion-des-sanctions-METTETALE
Fonctionnalites visibles dans le routing:
- authentification: inscription, connexion, deconnexion
- dashboard
- gestion des classes
- gestion des eleves
- gestion des professeurs
- gestion des sanctions
Point d'entree:
Code/public/index.php
Architecture:
Code/src/controllers(controleurs)Code/src/repositories(acces donnees)Code/src/Routing/Router.php(routage)Code/src/Http(Request/Response)Code/templates(vues)
Chemin: sanctions-api-rest-METTETALE
Stack:
- Express 5
- mysql2
- dotenv
- jsonwebtoken / bcryptjs
Scripts npm (dans code/package.json):
npm startnpm run dev
Tests manuels:
code/test/eleves.httpcode/test/sanctions.httpcode/test/login.http
Chemin: cli-api-rest-sanctions-METTETALE
Stack:
- Commander.js
Commandes:
eleves [nom] [prenom]sanctions <id>login <username> <password>
La documentation fonctionnelle et de suivi est principalement dans:
projet-gestion-des-sanctions-METTETALE/documentationsanctions-api-rest-METTETALE/documentationcli-api-rest-sanctions-METTETALE/README.md
Contenus disponibles:
- backlog produit
- user stories (sprints)
- schema de base de donnees
- notes JWT / API
- Le depot contient plusieurs bases/compose selon le module: verifier les ports avant lancement simultane.
- L'application PHP et l'API REST n'utilisent pas exactement la meme configuration DB par defaut (ports/mots de passe differents selon les compose).
- Le CLI depend d'une API active sur le port attendu.
Projet realise dans le cadre du BTS SIO.