21 Commits

Author SHA1 Message Date
Azmog 80dab092da test: fix test to trigger deployment
CI / Backend · PHPUnit + Pint (push) Successful in 1m37s
CI / Frontend · ESLint + Vitest (push) Successful in 9m43s
CI / Mobile · Jest (push) Successful in 9m33s
CI / Déploiement · Coolify (push) Successful in 1s
2026-09-03 21:04:32 +02:00
Azmog a23b4ebd60 test: break test intentionally to check CI block
CI / Backend · PHPUnit + Pint (push) Failing after 1m24s
CI / Frontend · ESLint + Vitest (push) Successful in 9m44s
CI / Mobile · Jest (push) Successful in 9m34s
CI / Déploiement · Coolify (push) Has been skipped
2026-09-03 18:39:00 +02:00
Azmog 10bc9ab1fb fix: linting phpdoc and npm legacy peer deps for ci
CI / Backend · PHPUnit + Pint (push) Failing after 1m19s
CI / Frontend · ESLint + Vitest (push) Successful in 9m42s
CI / Mobile · Jest (push) Successful in 9m34s
2026-09-03 11:11:31 +02:00
Azmog e1e5c7d35c test: add ping route for deployment verification
CI / Backend · PHPUnit + Pint (push) Failing after 1m11s
CI / Frontend · ESLint + Vitest (push) Successful in 9m45s
CI / Mobile · Jest (push) Failing after 4m44s
2026-09-03 11:05:35 +02:00
Azmog fec738df9f feat: ajout documentation PHPDoc et maj slides bloc 3
CI / Backend · PHPUnit + Pint (push) Failing after 1m20s
CI / Frontend · ESLint + Vitest (push) Successful in 10m27s
CI / Mobile · Jest (push) Failing after 4m47s
2026-09-03 10:07:32 +02:00
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
Azmog fe9e921d73 fix(backend): durcissements (throttle register, garde auto-suppression admin, null-check saisie)
- throttle:10,1 sur l'inscription (anti-spam de comptes)
- un admin ne peut plus désactiver/supprimer son propre compte (anti lock-out)
- update/destroy saisie : abort 404 propre si l'utilisateur n'a pas de tracker

Tests 15/15, Pint pass.
2026-06-19 10:47:37 +02:00
Azmog f2af66bd36 fix(deploy): force FRONTEND_URL/APP_URL dans .env (CORS prod)
Le FRONTEND_URL=http://localhost du .env masquait l'origine de production -> CORS
bloquait cesizen.cleanows.fr. L'entrypoint écrit désormais les URLs publiques
(fournies par le conteneur) dans le .env.
2026-06-19 10:30:11 +02:00
Azmog bcbdb2ab10 fix(deploy): écrit les paramètres DB dans .env au démarrage
Un DB_PASSWORD vide dans .env (issu de .env.example) masquait la valeur du
conteneur -> 'no password supplied'. L'entrypoint force désormais DB_HOST/PORT/
DATABASE/USERNAME/PASSWORD dans .env (valeurs par défaut alignées sur postgres).
2026-06-19 10:26:41 +02:00
Azmog cc64cb0180 fix(deploy): cache/session/queue en database par défaut (plus de dépendance Redis)
L'API tentait de joindre un service 'redis' inexistant en prod. Bascule des
défauts CACHE_STORE/SESSION_DRIVER/QUEUE_CONNECTION sur database + optimize:clear
au démarrage pour relire les variables d'env.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 09:44:53 +02:00
Azmog 0c6195a4e9 fix(deploy): APP_KEY/JWT_SECRET fiables (écrit dans .env + export si générés)
Corrige MissingAppKeyException : une variable d'env vide masquait la valeur du
.env. On force désormais APP_KEY/JWT_SECRET dans .env si fournies, sinon on les
génère ET on les exporte dans l'environnement du process.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 09:39:47 +02:00
Azmog 9b63dc8809 feat(deploy): Dockerfiles de production + compose + guide Coolify
- frontend/Dockerfile.prod : Next.js standalone (294 Mo), régénère les assets DSFR,
  injecte NEXT_PUBLIC_API_URL au build (npm ci --ignore-scripts pour le postinstall)
- backend/Dockerfile.prod + docker/entrypoint.sh : API Laravel, migrations + seed
  idempotent + serveur, génération de secrets en fallback
- docker-compose.prod.yml : Postgres + API + Front pour déploiement Coolify
- next.config.ts : output standalone ; .dockerignore back/front
- DEPLOIEMENT_COOLIFY.md : guide + variables d'environnement

Images de prod testées (build + smoke-test DSFR OK).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 09:15:35 +02:00
Azmog 2e2ee5fe71 chore(backend): autorise localhost:3001 en CORS (dev) 2026-06-19 00:51:17 +02:00
Azmog 7358d3aaa8 fix(backend): rend EmotionSeeder et FeedSeeder idempotents
Le conteneur exécute `migrate --seed` à chaque démarrage ; sans garde, un
redémarrage dupliquait les émotions et les contenus. Skip si déjà peuplé.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 00:17:58 +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 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 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 60e11773a6 chore: ajout de claude.md à .gitignore 2026-03-11 16:29:26 +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