Files
cesizen-individuel/Plan2_Oral_CESIZen.md
T
Azmog 4f54340e89 fix: corrections post-audit (traçabilité, identité État, accents, graphique mobile)
Backend:
- table audits réellement alimentée via trait Auditable (observers Eloquent)
  sur Utilisateur, SaisieTracker, Feed, Emotion ; mot de passe jamais loggé
- 4 nouveaux tests (19/19 au total)

Frontend web:
- en-tête/pied République Française ajoutés aux pages connexion/inscription
- bouton variant danger réellement rouge (tokens erreur DSFR)

Mobile:
- ~30 libellés ré-accentués (Intensité, Succès, Déconnexion, Répartition...)
- Colors.secondary = rouge Marianne #E1000F (différenciation cartes/icônes)
- vrai camembert SVG des rapports (react-native-svg)

Docs: plans oraux mis à jour (audits actif, 29 tests, stockage JWT en Q/R)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 11:17:40 +02:00

124 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🎯 Antisèche oral CESIZen — à garder sous les yeux
**20 min (présentation + démo live de l'app) + 10 min Q/R · 16 slides · checkpoint à 12:30**
> 🌐 App en ligne : **https://cesizen.cleanows.fr** (API : api.cesizen.cleanows.fr) · Interface au **Système de Design de l'État (DSFR)**
---
## 🔢 Chiffres à sortir sans hésiter
- **22 %** des Français = trouble de santé mentale au cours de leur vie (Santé Publique France, 2023)
- **2** modules obligatoires (Comptes, Informations) **+ 1** au choix (Tracker)
- Priorisation **/15** → le Tracker cumule **4 fonctions à 9-10/15**
- **6** émotions de base **+ 36** sous-émotions (référentiel du sujet)
- **8** entités au MCD · **1** API REST → **2** clients (web + mobile)
- JWT **60 min** + refresh · throttle login **5/min**
- **29** tests automatisés (19 back + 6 front + 4 mobile)
- **DSFR** : interface au Système de Design de l'État (charte gouv.fr) — web + mobile
- **Déployé en ligne** : https://cesizen.cleanows.fr (Docker + HTTPS, vrai service en prod)
- Contraintes sujet : budget **75 000 €**, livraison **12 mois**
---
## 🗺️ Déroulé (mots-clés seulement) — démo live intégrée
**0:00–2:00 · Intro (slides 1-2)**
- Qui je suis · commanditaire = Ministère · objet = plateforme grand public santé mentale
- Fil rouge : *« recueil → priorisation → réponse fonctionnelle + démo → modélisation → RGPD »*
- ➡️ *« Commençons par le contexte. »*
**2:00–4:30 · Contexte & parties prenantes (slides 3-4)**
- Enjeu sociétal (22 %, stigmatisation) · 4 objectifs stratégiques
- Parties prenantes : Ministère ↔ apprenant ↔ HDS ↔ utilisateurs ↔ CNIL · 3 acteurs
- 💬 *« le besoin a été reformulé, pas recopié »*
- ➡️ *« Comment ai-je choisi quoi développer ? »*
**4:30–6:00 · Besoins & priorisation (slides 5-6)**
- Périmètre : 2 oblig + Tracker · modules écartés **assumés**
- Grille pondérée /15 → Tracker = plus rentable
- ➡️ *« Voyons la réponse fonctionnelle. »*
**6:00–8:30 · Réponse fonctionnelle Comptes + Informations (slides 7-8)**
- **Comptes** : JWT · RGPD · admin CRUD (maquette)
- **Informations** : feeds · slug auto · modération (maquette)
- 💬 **DSFR transversal** : toute l'interface (web + mobile) suit le **Système de Design de l'État** → en-tête « République Française », accessibilité RGAA, crédibilité institutionnelle
- ➡️ *« Et pour le Tracker, je vais vous le montrer en direct. »*
**8:30–12:30 · 🎬 DÉMO LIVE — le Tracker (voir script ci-dessous)**
- inscription/connexion → journal → wizard 3 étapes → rapport graphique
- 💬 chaque écran = réponse à un besoin précis
- ➡️ *« Voyons maintenant ce qui structure tout ça techniquement. »*
**12:30–16:00 · Modélisation (slides 10-11-12)** — ⚠️ si retard, accélère ici
- **Cas d'usage UML** : couverture par acteur
- **MCD Merise** : 8 entités · cardinalités · hiérarchie émotions auto-référencée (parent_id)
- **MVC découplé** : 1 API → 2 clients · justif = testabilité, évolutivité, non-duplication
- ➡️ *« Ces données étant sensibles, parlons RGPD. »*
**16:00–17:30 · RGPD & sécurité (slide 13)**
- Données de santé = sensibles (art. 9) · consentement · droits CNIL (export/anonymisation)
- bcrypt (mdp) · soft delete · **table audits alimentée** (observers Eloquent : création/modif/suppression tracées) · AES-256 prévu en prod HDS · TLS
- ➡️ *« Tout cela est concrétisé par un prototype. »*
**17:30–19:00 · Prototype & perspectives (slide 14)**
- Stack réelle : Laravel + Next.js + Expo + Docker · **29 tests automatisés**
- **Déployé en ligne** : https://cesizen.cleanows.fr (Coolify, conteneurs Docker, HTTPS) → *« ce n'est pas qu'une maquette, c'est en production »*
- Ouverture : activer les modules écartés sans réécrire · Mon Espace Santé (FHIR) · Open Data
**19:00–20:00 · Conclusion**
- 1 phrase : *besoin reformulé → périmètre priorisé → réponse fonctionnelle → archi pérenne → conformité*
- Remercier · *« Je suis à votre disposition pour vos questions. »*
---
## 🎬 Script de démo (≈ 4 min) — le Tracker en direct
**AVANT de commencer l'oral** (à faire pendant l'installation, app déjà lancée) :
- onglet navigateur ouvert sur **https://cesizen.cleanows.fr** (en ligne) — repli **http://localhost:3000** si pas de réseau (`docker compose up -d`)
- **déjà connecté** sur le compte de démo · zoom navigateur à **125 %** · notifications coupées
- Compte : laisser le **journal pré-rempli** de quelques saisies (sinon le rapport est vide)
**Pendant la démo (chemin balisé, ne pas improviser) :**
1. *(20 s)* Page **Informations** publique → *« voici le module Informations, accessible sans compte »*
2. *(30 s)* **Journal de bord** → *« le membre retrouve son historique émotionnel »*
3. *(90 s)* **Nouvelle saisie** → wizard : Étape 1 émotion (Joie) → Étape 2 sous-émotion + intensité (slider) → Étape 3 date + note → **Valider** → *« elle apparaît immédiatement dans le journal »*
4. *(60 s)* **Rapports** → changer la période (semaine → mois) → *« camembert de répartition + courbe d'évolution, calculés côté API »*
5. *(20 s, si le temps)* mention rapide **admin** : config des émotions
🛟 **Filet de sécurité** : si la démo plante, je bascule sur les **maquettes des slides** sans m'excuser → *« je vous montre les écrans clés »*. Zéro stress.
🔑 Admin seedé : `admin@cesizen.fr` / `Admin123!`
---
## ❓ Q/R — réflexes (question → mots-clés de réponse)
- **Pourquoi le Tracker ?** → grille /15 en tête · 3 modules aboutis > 6 superficiels · archi extensible
- **Pourquoi MVC découplé ?** → 1 API → 2 clients · logique non dupliquée · testable
- **Stack ?** → Laravel (MVC mature, sécu native) · Next (SSR/SEO) · Expo (iOS+Android) · Postgres (ACID, HDS)
- **Tracker en 1-1 (HasOne) ?** → journal personnel unique · extensible en 1-N
- **Hiérarchie émotions ?** → 1 table, auto-référence parent_id · niveau 1 NULL / niveau 2 renseigné
- **Données sensibles / RGPD ?** → consentement · droits CNIL implémentés · HDS · bcrypt + AES prévu
- **Soft delete vs anonymisation ?** → soft delete = réversible 30j ; anonymisation = dissocie identité
- **JWT, risques ?** → stateless/scalable · expiration courte + refresh · throttle anti-bruteforce · MFA prévu
- **Où est stocké le token ?** → mobile = SecureStore (chiffré OS) · web = localStorage (limite XSS assumée, cible = cookie HttpOnly en v2)
- **Traçabilité ?** → table audits **réellement alimentée** par observers Eloquent (qui/quoi/quand : action, table, anciennes/nouvelles valeurs, IP) · mdp jamais loggé
- **Scalabilité 5000 users ?** → API stateless · index Postgres · pagination · cache TanStack Query
- **Réellement développé ?** → prototype 3 modules (API+web+mobile) + 29 tests automatisés · **déployé en ligne** (Coolify/Docker/HTTPS)
- **Pourquoi le DSFR ?** → service de l'État → charte obligatoire gouv.fr · accessibilité RGAA native · cohérence + confiance · gain de temps (composants prêts)
- **Vraiment en production ?** → oui : https://cesizen.cleanows.fr · conteneurs Docker · base PostgreSQL · CI de build · HTTPS
### 🛡️ Si une question pique (écarts assumés à défendre calmement)
- **« Mot de passe oublié »** → écran présent, flux backend prévu en v2
- **Chiffrement AES** → honnête : bcrypt aujourd'hui, AES-256 au repos prévu en prod HDS
- **Diagramme d'état-transition** → non inclus, le MCD + séquences couvrent l'essentiel
- *Règle d'or : si je ne sais pas, je l'assume et je propose une piste.*
---
## 🧘 Réflexes de prise de parole
- 3 respirations avant d'entrer (clin d'œil au sujet)
- Debout, ancré · **commenter** les slides, ne pas les lire
- Pause après chaque idée clé · regarder les 3 évaluateurs
- Checkpoint **12:00** = fin réponse fonctionnelle ; garder 1 min pour conclure
- Finir sur l'ouverture, jamais sur une excuse