docs: ajoute DSFR et déploiement en ligne aux plans oraux
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-2
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
**20 min (présentation + démo live de l'app) + 10 min Q/R · 16 slides · checkpoint à 12:30**
|
**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
|
## 🔢 Chiffres à sortir sans hésiter
|
||||||
@@ -12,6 +14,8 @@
|
|||||||
- **8** entités au MCD · **1** API REST → **2** clients (web + mobile)
|
- **8** entités au MCD · **1** API REST → **2** clients (web + mobile)
|
||||||
- JWT **60 min** + refresh · throttle login **5/min**
|
- JWT **60 min** + refresh · throttle login **5/min**
|
||||||
- **25** tests automatisés (15 back + 6 front + 4 mobile)
|
- **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**
|
- Contraintes sujet : budget **75 000 €**, livraison **12 mois**
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -37,6 +41,7 @@
|
|||||||
**6:00–8:30 · Réponse fonctionnelle Comptes + Informations (slides 7-8)**
|
**6:00–8:30 · Réponse fonctionnelle Comptes + Informations (slides 7-8)**
|
||||||
- **Comptes** : JWT · RGPD · admin CRUD (maquette)
|
- **Comptes** : JWT · RGPD · admin CRUD (maquette)
|
||||||
- **Informations** : feeds · slug auto · modération (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. »*
|
- ➡️ *« Et pour le Tracker, je vais vous le montrer en direct. »*
|
||||||
|
|
||||||
**8:30–12:30 · 🎬 DÉMO LIVE — le Tracker (voir script ci-dessous)**
|
**8:30–12:30 · 🎬 DÉMO LIVE — le Tracker (voir script ci-dessous)**
|
||||||
@@ -57,6 +62,7 @@
|
|||||||
|
|
||||||
**17:30–19:00 · Prototype & perspectives (slide 14)**
|
**17:30–19:00 · Prototype & perspectives (slide 14)**
|
||||||
- Stack réelle : Laravel + Next.js + Expo + Docker · **25 tests automatisés**
|
- 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
|
- Ouverture : activer les modules écartés sans réécrire · Mon Espace Santé (FHIR) · Open Data
|
||||||
|
|
||||||
**19:00–20:00 · Conclusion**
|
**19:00–20:00 · Conclusion**
|
||||||
@@ -68,7 +74,7 @@
|
|||||||
## 🎬 Script de démo (≈ 4 min) — le Tracker en direct
|
## 🎬 Script de démo (≈ 4 min) — le Tracker en direct
|
||||||
|
|
||||||
**AVANT de commencer l'oral** (à faire pendant l'installation, app déjà lancée) :
|
**AVANT de commencer l'oral** (à faire pendant l'installation, app déjà lancée) :
|
||||||
- `docker compose up -d` lancé · onglet navigateur ouvert sur **http://localhost:3000**
|
- 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
|
- **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)
|
- Compte : laisser le **journal pré-rempli** de quelques saisies (sinon le rapport est vide)
|
||||||
|
|
||||||
@@ -95,7 +101,9 @@
|
|||||||
- **Soft delete vs anonymisation ?** → soft delete = réversible 30j ; anonymisation = dissocie identité
|
- **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
|
- **JWT, risques ?** → stateless/scalable · expiration courte + refresh · throttle anti-bruteforce · MFA prévu
|
||||||
- **Scalabilité 5000 users ?** → API stateless · index Postgres · pagination · cache TanStack Query
|
- **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
|
- **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)
|
### 🛡️ Si une question pique (écarts assumés à défendre calmement)
|
||||||
- **« Mot de passe oublié »** → écran présent, flux backend prévu en v2
|
- **« Mot de passe oublié »** → écran présent, flux backend prévu en v2
|
||||||
|
|||||||
+11
-3
@@ -3,6 +3,7 @@
|
|||||||
**Apprenant :** Adam Marzuk · **Bloc :** INFCDAAL1 — Concevoir les solutions logicielles
|
**Apprenant :** Adam Marzuk · **Bloc :** INFCDAAL1 — Concevoir les solutions logicielles
|
||||||
**Format :** 20 min de présentation + ~10 min de questions/réponses
|
**Format :** 20 min de présentation + ~10 min de questions/réponses
|
||||||
**Support :** `CESIZen_Soutenance.pptx` (16 slides : 14 + 2 annexes) + **démo live de l'app** (compte `demo@cesizen.fr` / `Demo123!`)
|
**Support :** `CESIZen_Soutenance.pptx` (16 slides : 14 + 2 annexes) + **démo live de l'app** (compte `demo@cesizen.fr` / `Demo123!`)
|
||||||
|
**App déployée en ligne :** https://cesizen.cleanows.fr (API : https://api.cesizen.cleanows.fr) · **Interface au Système de Design de l'État (DSFR)** — charte officielle gouv.fr
|
||||||
**Antisèche à garder en main :** `Plan2_Oral_CESIZen.md` · **Lancement :** voir `Guide_Lancement_CESIZen.md`
|
**Antisèche à garder en main :** `Plan2_Oral_CESIZen.md` · **Lancement :** voir `Guide_Lancement_CESIZen.md`
|
||||||
|
|
||||||
> Objectif : montrer la **démarche** (recueil → analyse → modélisation) autant que le résultat.
|
> Objectif : montrer la **démarche** (recueil → analyse → modélisation) autant que le résultat.
|
||||||
@@ -17,11 +18,11 @@
|
|||||||
| **0:00 – 2:00** (2′) | 1 — 2 | **Introduction** | Se présenter. Annoncer le commanditaire (Ministère) et l'objet : une plateforme grand public de santé mentale. Donner le fil rouge : « je vais dérouler le recueil du besoin, la priorisation, la réponse fonctionnelle **avec une démonstration de l'application**, puis la modélisation technique et la conformité RGPD. » Présenter le sommaire (slide 2). |
|
| **0:00 – 2:00** (2′) | 1 — 2 | **Introduction** | Se présenter. Annoncer le commanditaire (Ministère) et l'objet : une plateforme grand public de santé mentale. Donner le fil rouge : « je vais dérouler le recueil du besoin, la priorisation, la réponse fonctionnelle **avec une démonstration de l'application**, puis la modélisation technique et la conformité RGPD. » Présenter le sommaire (slide 2). |
|
||||||
| **2:00 – 4:30** (2′30) | 3 — 4 | **Contexte, enjeux, parties prenantes** | Rappeler l'enjeu sociétal (22 % des Français, SPF 2023) et la stigmatisation. Énoncer les 4 objectifs stratégiques. Présenter les parties prenantes et les 3 acteurs (Visiteur, Utilisateur, Administrateur). Insister : « le besoin a été **reformulé**, pas recopié. » |
|
| **2:00 – 4:30** (2′30) | 3 — 4 | **Contexte, enjeux, parties prenantes** | Rappeler l'enjeu sociétal (22 % des Français, SPF 2023) et la stigmatisation. Énoncer les 4 objectifs stratégiques. Présenter les parties prenantes et les 3 acteurs (Visiteur, Utilisateur, Administrateur). Insister : « le besoin a été **reformulé**, pas recopié. » |
|
||||||
| **4:30 – 6:00** (1′30) | 5 — 6 | **Besoins & priorisation** | Périmètre : 2 modules obligatoires + Tracker au choix ; modules écartés assumés. Grille pondérée /15 (5 critères). Conclusion : « le Tracker cumule 4 fonctionnalités à 9-10/15, c'est le module au choix le plus rentable. » |
|
| **4:30 – 6:00** (1′30) | 5 — 6 | **Besoins & priorisation** | Périmètre : 2 modules obligatoires + Tracker au choix ; modules écartés assumés. Grille pondérée /15 (5 critères). Conclusion : « le Tracker cumule 4 fonctionnalités à 9-10/15, c'est le module au choix le plus rentable. » |
|
||||||
| **6:00 – 8:30** (2′30) | 7 — 8 | **Réponse fonctionnelle (Comptes + Informations)** | Module Comptes : JWT, RGPD, admin (slide 7 + maquette). Module Informations : feeds, modération, slug auto (slide 8 + maquette). Enchaîner : « pour le Tracker, je vais vous le montrer en direct. » |
|
| **6:00 – 8:30** (2′30) | 7 — 8 | **Réponse fonctionnelle (Comptes + Informations)** | Module Comptes : JWT, RGPD, admin (slide 7 + maquette). Module Informations : feeds, modération, slug auto (slide 8 + maquette). 💬 Point fort transversal : **toute l'interface (web + mobile) suit le Système de Design de l'État (DSFR)** — la charte officielle gouv.fr → crédibilité institutionnelle + accessibilité native. Enchaîner : « pour le Tracker, je vais vous le montrer en direct. » |
|
||||||
| **8:30 – 12:30** (4′) | démo live | **🎬 Démo de l'application — Tracker** | Sur l'app web (compte `demo@cesizen.fr` **déjà connecté**) : page Informations → journal de bord → **nouvelle saisie** (wizard 3 étapes : émotion → sous-émotion + intensité → date + note) → **Rapports** (changer la période : camembert + courbe d'évolution). 🛟 Si ça plante : basculer sur les maquettes (slide 9) sans s'excuser. |
|
| **8:30 – 12:30** (4′) | démo live | **🎬 Démo de l'application — Tracker** | Sur l'app (compte `demo@cesizen.fr` **déjà connecté**) — **en ligne** sur https://cesizen.cleanows.fr **ou** en local : page Informations → journal de bord → **nouvelle saisie** (wizard 3 étapes : émotion → sous-émotion + intensité → date + note) → **Rapports** (changer la période : camembert + courbe d'évolution). 💬 Insister sur l'en-tête « République Française » (DSFR). 🛟 Si ça plante : basculer sur les maquettes (slide 9) sans s'excuser. |
|
||||||
| **12:30 – 16:00** (3′30) | 10 — 11 — 12 | **Modélisation** | Cas d'usage UML (slide 10) : couverture par acteur. MCD Merise (slide 11) : 8 entités, cardinalités, hiérarchie d'émotions auto-référencée. Architecture MVC découplée (slide 12) : 1 API REST Laravel → 2 clients ; justifier le pattern (testabilité, évolutivité, non-duplication). |
|
| **12:30 – 16:00** (3′30) | 10 — 11 — 12 | **Modélisation** | Cas d'usage UML (slide 10) : couverture par acteur. MCD Merise (slide 11) : 8 entités, cardinalités, hiérarchie d'émotions auto-référencée. Architecture MVC découplée (slide 12) : 1 API REST Laravel → 2 clients ; justifier le pattern (testabilité, évolutivité, non-duplication). |
|
||||||
| **16:00 – 17:30** (1′30) | 13 | **RGPD & données sensibles** | Données de santé = sensibles (art. 9). Consentement, droits CNIL (export/anonymisation), soft delete. Sécurité : bcrypt (mots de passe), JWT, HDS, table audits ; chiffrement AES-256 au repos prévu en production. |
|
| **16:00 – 17:30** (1′30) | 13 | **RGPD & données sensibles** | Données de santé = sensibles (art. 9). Consentement, droits CNIL (export/anonymisation), soft delete. Sécurité : bcrypt (mots de passe), JWT, HDS, table audits ; chiffrement AES-256 au repos prévu en production. |
|
||||||
| **17:30 – 19:00** (1′30) | 14 | **Prototype & perspectives** | Prototype fonctionnel (Laravel + Next.js + Expo + Docker), **25 tests automatisés** (15 back + 6 front + 4 mobile). Ouverture : activer les modules écartés sans réécrire le modèle, Open Data, Mon Espace Santé (FHIR). |
|
| **17:30 – 19:00** (1′30) | 14 | **Prototype & perspectives** | Prototype fonctionnel (Laravel + Next.js + Expo + Docker), **25 tests automatisés** (15 back + 6 front + 4 mobile), **interface conforme DSFR** et **déployé en ligne** (Coolify, conteneurs Docker, HTTPS) sur https://cesizen.cleanows.fr — pas qu'une maquette, un vrai service en production. Ouverture : activer les modules écartés sans réécrire le modèle, Open Data, Mon Espace Santé (FHIR). |
|
||||||
| **19:00 – 20:00** (1′) | 14 | **Conclusion** | Synthèse : besoin reformulé → périmètre priorisé → réponse fonctionnelle → architecture pérenne → conformité. Remercier, ouvrir les questions. |
|
| **19:00 – 20:00** (1′) | 14 | **Conclusion** | Synthèse : besoin reformulé → périmètre priorisé → réponse fonctionnelle → architecture pérenne → conformité. Remercier, ouvrir les questions. |
|
||||||
|
|
||||||
**Repères de rythme :** checkpoint mental à **12:30** (fin de la démo). Si retard, raccourcir la modélisation (garder MCD + MVC, survoler les cas d'usage) et garder 1 min pour conclure. ⚠️ **Lance la stack et connecte-toi AVANT d'entrer** dans la salle (sois déjà sur le journal de bord).
|
**Repères de rythme :** checkpoint mental à **12:30** (fin de la démo). Si retard, raccourcir la modélisation (garder MCD + MVC, survoler les cas d'usage) et garder 1 min pour conclure. ⚠️ **Lance la stack et connecte-toi AVANT d'entrer** dans la salle (sois déjà sur le journal de bord).
|
||||||
@@ -83,6 +84,13 @@
|
|||||||
**Q16. Comment testez-vous la qualité du code ?**
|
**Q16. Comment testez-vous la qualité du code ?**
|
||||||
> Tests automatisés sur les 3 briques, lançables en une commande : `php artisan test` (15 tests : auth, tracker, admin, RGPD), `npm test` côté web (Vitest : composants + store) et mobile (Jest : appels API). Plus le type-checking strict (TypeScript) et le linting (ESLint, Pint).
|
> Tests automatisés sur les 3 briques, lançables en une commande : `php artisan test` (15 tests : auth, tracker, admin, RGPD), `npm test` côté web (Vitest : composants + store) et mobile (Jest : appels API). Plus le type-checking strict (TypeScript) et le linting (ESLint, Pint).
|
||||||
|
|
||||||
|
### Design & déploiement
|
||||||
|
**Q17. Pourquoi avoir choisi le Système de Design de l'État (DSFR) ?**
|
||||||
|
> Le commanditaire est le Ministère : une appli grand public de l'État doit suivre la charte officielle gouv.fr. Le DSFR (`@codegouvfr/react-dsfr`) m'apporte gratuitement la crédibilité institutionnelle (en-tête « République Française », typographie Marianne), l'accessibilité RGAA native, et un design system maintenu. Sur le web c'est le vrai framework ; sur mobile (React Native, où le DSFR ne tourne pas) j'en applique l'identité visuelle (bleu France #000091, bloc Marianne).
|
||||||
|
|
||||||
|
**Q18. L'application est-elle réellement déployée ?**
|
||||||
|
> Oui, elle tourne **en ligne en production** : https://cesizen.cleanows.fr (front) et https://api.cesizen.cleanows.fr (API). Déploiement par **conteneurs Docker** orchestrés (PostgreSQL + API Laravel + front Next.js), via Coolify, avec HTTPS, migrations et seed automatiques au démarrage, et des secrets générés hors dépôt. Ce n'est donc pas une maquette mais un service réellement déployé et accessible.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Conseils de prise de parole (la santé mentale… commence par la vôtre)
|
## Conseils de prise de parole (la santé mentale… commence par la vôtre)
|
||||||
|
|||||||
Reference in New Issue
Block a user