Commit Graph

28 Commits

Author SHA1 Message Date
Azmog ee4bbf321b fix(mobile): ajoute le plugin babel react-native-worklets (requis par Reanimated 4 / SDK 54)
Corrige l'erreur Hermes « private properties are not supported » au démarrage.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:20:43 +02:00
Azmog 511d3b95f0 fix: babel-preset-expo (SDK 54) + navigation wizard sans rognage
- ajoute babel-preset-expo en devDependency (manquant après migration SDK 54,
  bloquait le bundling Metro)
- remplace le fr-btns-group du wizard de saisie par un flex simple : les
  libellés "Précédent/Suivant/Enregistrer" ne sont plus tronqués

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:17:57 +02:00
Azmog 170c6ffce2 chore(mobile): migration Expo SDK 53 -> 54 (pour Expo Go iOS à jour)
- expo ^54, react-native 0.81.5, react 19.1.0, @types/react ~19.1.8
- ajout react-native-worklets (peer de reanimated 4), jest-expo ~54
- expo-doctor 18/18, tsc 0

Permet d'exécuter l'app sur un iPhone avec Expo Go SDK 54.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:07:09 +02:00
Azmog 6921022e87 fix(dsfr): remplace l'usage détourné de fr-card par un panneau .app-panel
.fr-card (flex + height:100% + bordure ::before) débordait quand utilisé comme
conteneur générique (wizard de saisie, journal, rapports, profil, timeline) et
chevauchait le footer. Remplacé par .app-panel (panneau neutre, variables DSFR).
Les vraies cartes structurées (fr-card__body) sont conservées.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:02:33 +02:00
Azmog 1bd8608acb polish(dsfr): layout membre en fond DSFR + masque l'en-tête natif de l'onglet Accueil (mobile)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:49:59 +02:00
Azmog ca88bf7737 feat(mobile): applique l'identité visuelle DSFR (bleu France, République Française)
- palette officielle DSFR (#000091, rouge Marianne, gris DSFR) dans lib/colors.ts
- composant RepubliqueHeader (bloc « République Française » + service CESIZen)
- restyle boutons/champs/cartes/onglets/urgence au style gouv.fr sur tous les écrans
- couleurs d'émotions conservées

Le DSFR étant un framework web, le mobile en reçoit l'identité visuelle (pas les classes fr-*). tsc 0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:45:05 +02:00
Azmog 69c40bd628 chore(frontend): exclut public/ (assets DSFR) du lint 2026-06-18 23:35:31 +02:00
Azmog f6e150ddae feat(frontend): convertit l'ensemble des pages et composants au DSFR
- composants UI (Input, Card, Badge, Modal, ConfirmDialog, Slider, Skeleton,
  ThemeToggle) + Sidebar
- pages auth (connexion, inscription)
- pages publiques (informations, détail, contacts urgence, mentions, RGPD)
- espace membre (dashboard, journal, wizard saisie via fr-stepper, rapports, profil)
  + composants tracker (EditSaisieModal, EmotionPicker, TrackerTimeline, EmotionChart)
- back-office admin (dashboard, utilisateurs, contenus, émotions)

Suppression de Tailwind candlelight/malachite + lucide-react. Build OK (20 routes).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:34:01 +02:00
Azmog 9b5be855fc fix(frontend): ajoute fr-header__menu-links requis par le JS DSFR (évite TypeError menuLinks)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:25:11 +02:00
Azmog ee59763dd2 fix(frontend): /admin redirige vers /admin/dashboard (évite un 404)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:20:47 +02:00
Azmog c0fd588708 fix(frontend): place la page d'accueil dans le groupe (public) pour hériter du header/footer DSFR
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:11:55 +02:00
Azmog 85c744defa feat(frontend): socle de refonte au Système de Design de l'État (DSFR)
- charge le DSFR (CSS/JS officiels) en statique via public/dsfr + postinstall
- en-tête officiel (bloc Marianne « République Française » + nom de service)
- pied de page officiel DSFR (liens institutionnels, licence etalab)
- page d'accueil refondue (hero, fr-card, fr-tile, fr-callout, fr-btn)
- composant Button mappé sur fr-btn
- assets DSFR hors git (régénérés par `npm install`)

Build OK (19 routes). Pages internes encore en Tailwind : conversion à poursuivre.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 23:09:47 +02:00
Azmog d01bd4619c docs: met à jour le plan d'oral (démo intégrée) + guide de lancement
- Plan_Oral_CESIZen.md : déroulé 20 min avec créneau démo live (8:30-12:30),
  timing recalé, chiffrement honnête, +25 tests, Q15/Q16 (démo, tests)
- Guide_Lancement_CESIZen.md : lancer web/API (Docker), mobile (Expo),
  comptes de démo, parcours, arrêt/relance, dépannage

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 22:54:03 +02:00
Azmog fc267aeb9e feat: ajoute un compte de démo seedé et l'antisèche d'oral
- DemoSeeder : membre demo@cesizen.fr / Demo123! + 18 saisies sur 4 semaines
  (émotions variées, Joie dominante) pour une démo aux rapports déjà fournis
- Antiseche_Oral_CESIZen.md : déroulé 20 min avec démo live intégrée + script

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 22:44:02 +02:00
Azmog c19071efff feat: ajoute une antisèche orale pour la présentation CESIZen 2026-06-18 22:32:41 +02:00
Azmog 0e07f5a57e test: ajoute des tests automatisés frontend (Vitest) et mobile (Jest)
- Frontend Next.js : Vitest + Testing Library
  - Button (rendu, clic, état loading)
  - auth-store (setAuth, déconnexion, persistance token)
  - script `npm test`, config jsdom + alias @/
- Mobile Expo : Jest (preset jest-expo)
  - getApiError (erreur Axios, validation, erreur générique, sans réponse)
  - script `npm test`, transformIgnorePatterns adapté
- Cahier de tests : section « Outils de test automatisés » (PHPUnit + Vitest + Jest)
  et entrée 6.4 (PV de recette) au sommaire

Suites vertes : backend 15, frontend 6, mobile 4. tsc/lint/build OK, expo-doctor 18/18.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 22:17:20 +02:00
Azmog 8904e6127a feat: ajoute la colonne Responsable et un modèle de PV de recette au cahier de tests
- colonne « Responsable » sur les 6 tables de tests (fonctionnels + non-fonctionnels)
- nouvelle section 6.4 : modèle de procès-verbal de recette
  (identification, synthèse, réserves, décision, blocs de signature MOA/MOE)

Répond aux exigences de testing du sujet (responsable par test, PV de recette).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 22:09:48 +02:00
Azmog 91df66852e fix: aligne le référentiel d'émotions sur le sujet et complète le dossier
Référentiel d'émotions (conformité au sujet) :
- 6 émotions de base (suppression d'« Amour ») et 36 sous-émotions
- libellés exacts du sujet (Surprise dédupliquée : Étonnement listé 2x)
- propagation du décompte 6+36 (CLAUDE.md, plan oral, slides, dossier, mobile)

Corrections dossier (grille d'évaluation Bloc INFCDAAL1) :
- ajout d'un sommaire
- contraintes budget 75 000 EUR et délai 12 mois (chiffres du sujet)
- table des parties prenantes et de leur communication (§4.1)
- mockup du module Informations (les 3 modules ont désormais une maquette)
- cardinalités du MCD agrandies et lisibles
- chiffrement reformulé honnêtement (bcrypt aujourd'hui, AES-256 prévu en prod HDS)
- dossier maintenu à 20 pages (limite respectée)

Vérifs : backend 15 tests, mobile tsc 0, seeder 6+36.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 20:27:33 +02:00
Azmog 6f5b8182ca chore: durcit la configuration pour la production
- mobile: externalise l'URL d'API via EXPO_PUBLIC_API_URL (repli localhost en dev)
- backend: .env.example adapté au projet (PostgreSQL, JWT, FRONTEND_URL, Redis)
- frontend/mobile: ajoute .env.example (+ exception gitignore front)
- mobile: supprime les 4 `any` (helper getApiError, type Feed, glyphMap Ionicons)
- backend: normalise le style PSR-12 via Pint (13 fichiers)

Tests backend 15/15, mobile tsc 0, Pint pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 17:00:33 +02:00
Azmog 052e2f22cd fix: corrige la régression EditSaisieModal et le nombre réel de sous-émotions
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>
2026-06-16 17:24:21 +02:00
Azmog e8b49c6b94 docs: ajoute les livrables de soutenance et corrige le nombre de sous-émotions
- 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>
2026-06-16 17:19:30 +02:00
Azmog 2ec2a78469 fix: corrige les dépendances mobile et la qualité du code frontend
Mobile (Expo SDK 53) :
- supprime victory-native et react-native-svg (dépendances mortes, non
  importées) qui empêchaient l'installation (ETARGET sur svg@~16.0.0 +
  conflit de peer reanimated/skia)
- ajoute les peers manquants expo-constants et expo-linking (requis par
  expo-router)
- aligne expo-router, react-native et react-native-screens sur le SDK 53
- ajoute package-lock.json (installs reproductibles)
- expo-doctor 18/18, tsc sans erreur

Frontend (Next.js) :
- EmotionChart : remplace 4 `any` par les types Recharts (ValueType/NameType)
- EditSaisieModal : remplace le setState dans useEffect par l'ajustement
  d'état pendant le rendu (pattern recommandé par React)
- tsc, eslint et build de production sans erreur

Backend : 15 tests passent (Auth, Admin, Tracker, RGPD).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 17:19:07 +02:00
Azmog bfd35905c9 feat: add mobile application structure with emotion picker and API integration
- Added favicon and icon assets for the mobile app.
- Implemented EmotionPicker component for selecting emotions with child options.
- Created hooks for fetching emotions, feeds, and rapport data.
- Established API service for handling requests and authentication.
- Integrated Zustand for state management of user authentication.
- Defined color palette for the application.
- Set up TypeScript types for various entities including User, Emotion, and Feed.
- Configured Babel and TypeScript for the mobile project.
- Added package.json with necessary dependencies for Expo and React Native.
2026-04-15 16:09:20 +02:00
Azmog 88f5863cb5 Refactor code structure for improved readability and maintainability 2026-03-12 11:23:29 +01:00
Adam M 19604ea016 Delete CLAUDE.md 2026-03-11 16:29:43 +01:00
Azmog 60e11773a6 chore: ajout de claude.md à .gitignore 2026-03-11 16:29:26 +01:00
Azmog 9e853a5f80 docs: ajout du README.md 2026-03-11 16:28:56 +01:00
Azmog e3da625927 feat: initialisation complète du projet CESIZen
- Backend Laravel 11 (API REST, JWT auth, PostgreSQL)
- Frontend Next.js 14 (React, TypeScript, Tailwind CSS)
- Docker Compose (PostgreSQL, backend, frontend)
- Modules : auth, profil, tracker émotions, informations, admin
2026-03-11 16:27:01 +01:00