Commit Graph

17 Commits

Author SHA1 Message Date
Azmog 4432bf5c21 fix(dsfr): graphique d'évolution en barres empilées + confirmation de déconnexion (web)
- évolution : courbes monotone (vagues sinusoïdales illisibles) remplacées par
  un histogramme empilé par émotion, bien plus lisible
- ajoute une confirmation avant déconnexion dans l'en-tête web

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:49:35 +02:00
Azmog 43a149381f fix(dsfr): Modal avec overlay visible et fermeture fiable
L'ancienne implémentation (<dialog> plein écran transparent) rendait la page
inutilisable au clic sur éditer/supprimer : overlay invisible captant tous les
clics, sans fond assombri ni fermeture au clic extérieur. Remplacé par un
overlay React maîtrisé (fond assombri, clic extérieur/Échap/bouton ferment).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:39:32 +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 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 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 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 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 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 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