Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.6 KiB
🎯 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
- 25 tests automatisés (15 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 · 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 · 25 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) :
- (20 s) Page Informations publique → « voici le module Informations, accessible sans compte »
- (30 s) Journal de bord → « le membre retrouve son historique émotionnel »
- (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 »
- (60 s) Rapports → changer la période (semaine → mois) → « camembert de répartition + courbe d'évolution, calculés côté API »
- (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
- Scalabilité 5000 users ? → API stateless · index Postgres · pagination · cache TanStack Query
- Réellement développé ? → prototype 3 modules (API+web+mobile) + 25 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