052e2f22cd
Suite à la revue par agents : - EditSaisieModal : réinitialise prevSaisieId à la fermeture (saisie=null) pour que la réouverture de la MÊME saisie réaffiche ses valeurs d'origine (régression introduite par le passage de useEffect à l'ajustement d'état) - corrige le nombre de sous-émotions 28 -> 33 (compte réel du seeder : 6+5+5+5+4+4+4) dans le dossier, les slides, le plan d'oral et CLAUDE.md - régénère le cahier des charges (19 p.) et le support de soutenance (16 slides) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
111 lines
4.8 KiB
Markdown
111 lines
4.8 KiB
Markdown
# 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 33 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
|
|
1. **Cahier des charges** (15-20 pages) : contexte, parties prenantes, besoins reformulés, priorisation, contraintes
|
|
2. **Spécifications fonctionnelles et techniques** : UML, analyse détaillée (2 obligatoires + 1 au choix), MCD, MVC, RGPD
|
|
3. **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
|
|
```bash
|
|
# 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
|
|
```
|