- generate_diagrams.py : schémas PNG (MCD Merise, cas d'usage UML, séquences login/saisie, architecture MVC, 3 maquettes) générés avec Pillow - generate_cahier_charges.py : intègre les schémas et corrige les écarts code/dossier (28 sous-émotions, table audits, est_publie) - generate_slides.py : support de soutenance .pptx (16 slides) via python-pptx - Plan_Oral_CESIZen.md : déroulé minuté 20 min + préparation Q/R - assets_dossier/ : schémas sources - CLAUDE.md : 31 -> 28 sous-émotions (aligné sur le seed réel) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.8 KiB
CESIZen - Application de santé mentale
Contexte du projet
Projet individuel CESI École d'Ingénieurs — Bloc "Concevoir les solutions logicielles" (INFCDAAL1). Commanditaire fictif : Ministère des Solidarités et de la Santé. L'objectif est de proposer une plateforme grand public pour accompagner le quotidien de chacun et l'aider à mieux comprendre les enjeux de sa santé mentale et agir sur son stress.
Module choisi
Tracker d'émotions (module facultatif au choix) + modules obligatoires (Comptes utilisateurs, Informations).
Architecture technique
Stack
- Backend : Laravel 11 (PHP 8.2+) — API REST JSON, JWT Auth (
tymon/jwt-auth) - Frontend Web : Next.js 16 (React 19, TypeScript, Tailwind CSS 4, Zustand, TanStack Query, Recharts)
- Mobile natif : React Native / Expo 53 (Expo Router, Zustand, SecureStore, TanStack Query)
- Base de données : PostgreSQL 16
- Conteneurisation : Docker Compose (postgres:5432, backend:8000, frontend:3000)
Design Pattern
MVC côté backend (Models → Controllers → Routes, Service Layer pour les rapports). Frontend : App Router, Custom Hooks, Component Composition, Zustand Store.
Structure du projet
Cesizen/
├── backend/ # Laravel 11 API
├── frontend/ # Next.js (web)
├── mobile/ # React Native Expo (iOS + Android)
├── docker-compose.yml
└── generate_pdf.py # Génération du cahier de tests (Python/fpdf)
Fonctionnalités implémentées
Modules obligatoires
- Comptes utilisateurs : inscription, connexion JWT, gestion profil, reset password, admin CRUD, désactivation/suppression, RGPD (soft delete + droit à la suppression)
- Informations : pages de contenu santé mentale (feeds), CRUD admin, affichage public
Module au choix : Tracker d'émotions
| Fonctionnalité | Acteur | Web | Mobile |
|---|---|---|---|
| Afficher le journal de bord | Utilisateur | ✅ | ✅ |
| Ajouter une saisie (wizard 3 étapes) | Utilisateur | ✅ | ✅ |
| Modifier une saisie | Utilisateur | ✅ (modale) | ✅ (écran edit) |
| Supprimer une saisie | Utilisateur | ✅ | ✅ |
| Rapports par période (semaine/mois/trimestre/année) | Utilisateur | ✅ (graphiques) | ✅ |
| Configurer les émotions (2 niveaux) | Admin | ✅ | N/A |
Hiérarchie des émotions (seed)
7 émotions de base (niveau 1) avec 28 sous-émotions (niveau 2) : Joie, Tristesse, Colère, Peur, Dégoût, Surprise, Amour.
Grille de priorisation des besoins
Critères utilisés : Complexité (0-3), Valeur ajoutée Ministère (0-3), Valeur ajoutée Utilisateur (0-3), Nécessité (0-2), Interdépendance (0-2). Total sur 15.
Top priorités :
- Diagnostic de stress / Journal émotions / Rapports d'émotions (10/15)
- Cryptage données / Inscription / Cohérence cardiaque / Activités détente / Ajout tracker (9/15)
- Conformité RGPD (8/15)
Évaluation — Barème (/34 → note lettre)
| Domaine | Livrable | Pts |
|---|---|---|
| Recueil du besoin | Reformulation (contexte, enjeux, contraintes) | 6 |
| Identification des besoins logiciels | 3 | |
| Critères de priorités et pondération | 2 | |
| Analyse des besoins | Complétude du CdC, contraintes, opportunités | 4 |
| Réponse fonctionnelle adaptée et originale | 4 | |
| Schématisation et reformulation visuelle | 2 | |
| Modélisation | MCD (Merise/UML) | 3 |
| Conception technique MVC | 2 | |
| Spécifications fonctionnelles et techniques | 4 | |
| Données personnelles et sensibles | 1 | |
| Dossier et soutenance | Qualité dossier + oral (20 min + 10 Q/R) | 3 |
Conversion : A (27-34) | B (20-26,99) | C (14-19,99) | D (0-13,99)
Livrables attendus
- Cahier des charges (15-20 pages) : contexte, parties prenantes, besoins reformulés, priorisation, contraintes
- Spécifications fonctionnelles et techniques : UML, analyse détaillée (2 obligatoires + 1 au choix), MCD, MVC, RGPD
- Soutenance orale : 20 min + 10 min Q/R
Acteurs du système
- Visiteur anonyme : consultation informations, accès public
- Utilisateur connecté : tracker émotions, journal, rapports, profil
- Administrateur : gestion utilisateurs, contenus, émotions
Conventions de code
- Backend : PHP PSR-12, noms en français (utilisateur, saisie_tracker, émotion)
- Frontend : TypeScript strict, composants fonctionnels, hooks customs
- Mobile : même conventions que le frontend web
- Langue de l'interface : français
- Langue de l'instruction CLAUDE.md globale : toujours répondre en français
Commandes utiles
# Backend
cd backend && php artisan serve # API sur :8000
cd backend && php artisan migrate:fresh --seed # Reset + seed DB
# Frontend Web
cd frontend && npm run dev # Dev server sur :3000
# Mobile
cd mobile && npm install && npx expo start # Expo dev server
# Docker (tout lancer)
docker-compose up -d