Commit Graph

21 Commits

Author SHA1 Message Date
gilles e89d2ff4f1 feat(todos): client API TypeScript — Todo interface + 5 fonctions fetch 2026-05-24 12:05:44 +02:00
gilles b5f0453cdd fix(todos): datetime query params typés FastAPI, ORDER BY déterministe
- Changer due_after/due_before de str | None vers datetime | None pour typage FastAPI
- FastAPI parse et valide automatiquement, retourne 422 si format invalide (pas 500)
- Supprimer le parsing manuel datetime.fromisoformat() qui levait ValueError brute
- Ajouter ORDER BY déterministe: due_date ASC NULLS LAST, created_at DESC
  évite les réordonnances aléatoires entre requêtes PostgreSQL

Tests: 15/15 passent ✓

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 12:02:37 +02:00
gilles a3704a2b27 feat(todos): endpoints CRUD + postpone — 15 tests passent
Ajoute les 5 endpoints REST (list, create, update, delete, postpone),
enregistre le routeur sur /api/todos, et corrige l'isolation des sessions
de test via NullPool + dependency_overrides dans conftest.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 09:20:53 +02:00
gilles 861f6497bb fix(todos): Literal types pour status/priority/days, Field default_factory pour tags 2026-05-24 09:17:39 +02:00
gilles 3591972014 test(todos): schémas Pydantic + 9 tests d'intégration todos (en échec)
Ajoute les schémas Pydantic TodoCreate/TodoUpdate/PostponeRequest/TodoResponse,
la fixture db_session dans conftest, et 9 tests d'intégration contre PostgreSQL
réel — tous en échec car les endpoints /api/todos/ n'existent pas encore.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 09:13:58 +02:00
gilles 53bb8bd27a fix: CORS_ORIGINS aligné sur port frontend 3001 2026-05-24 05:32:28 +02:00
gilles 9041b24384 chore: Phase 1 complète — socle technique HomeHub opérationnel
- Corrige le seed pour vérifier l'existence des tables avant insertion
  (évite l'échec au démarrage si les migrations n'ont pas encore été appliquées)
- Ajuste le port frontend de 3000 à 3001 (port 3000 occupé sur l'hôte)
- Migrations Alembic : schémas notes, shopping, todos créés avec succès
- Seed : 114 produits et 9 magasins chargés
- Endpoint /api/health : {"status":"ok"}
- Tests : 6/6 passent (health + media)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 05:30:53 +02:00
gilles 99b9f1641e chore: environnement dev local (hot reload backend + frontend) 2026-05-24 05:23:53 +02:00
gilles 0903115687 feat: dockerfile frontend nginx + cache statique 2026-05-24 05:23:16 +02:00
gilles 25a31f1f24 feat: layout responsive mobile (bottom nav) / laptop (sidebar) + page d'accueil 2026-05-24 05:22:45 +02:00
gilles e8aa9d6f3b feat: PWA configurée — service worker, manifest, icônes 2026-05-24 05:21:29 +02:00
gilles 137213241b feat: tailwind CSS + design system Gruvbox seventies intégré
- Ajoute postcss.config.js et tailwind.config.ts avec tokens CSS mappés
- Copie tokens.css dans frontend/src/design-system/
- Met à jour index.css avec import tokens + directives Tailwind
- Adapte ui-kit.jsx en ui-kit.tsx (UMD → ESM, exports nommés)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 05:19:33 +02:00
gilles 1877963f15 feat: scaffold frontend React 18 + Vite 5 + TypeScript
Mise en place de la structure de base du frontend HomeHub : React 18,
Vite 5, TypeScript strict, React Router v6, Tailwind CSS et vite-plugin-pwa
installés. Composants placeholder Layout et HomePage pour que le build
compile sans erreur. Build de production vérifié (dist/ généré, 0 erreur TS).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 05:15:21 +02:00
gilles 5a5997aa55 feat: seed données initiales (114 produits + 9 magasins) au démarrage 2026-05-24 05:08:50 +02:00
gilles cb85801061 feat: module media — upload, miniatures Pillow et suppression
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 05:05:37 +02:00
gilles 199565e77c feat: migration initiale — schémas todos/shopping/notes et toutes les tables 2026-05-24 05:02:24 +02:00
gilles 94b971cdf3 feat: endpoint GET /api/health + tests
Implémentation TDD : test écrit en premier (phase rouge), puis
app.main, app.api.health et app.api.media créés pour le faire passer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 04:59:36 +02:00
gilles be5c34e4f7 feat: modèles SQLAlchemy pour todos, shopping et notes 2026-05-24 04:51:21 +02:00
gilles ee00848fdc feat: configuration FastAPI et moteur SQLAlchemy async 2026-05-24 04:49:41 +02:00
gilles b46c8351df chore: dockerfile backend et dépendances python 2026-05-24 04:48:27 +02:00
gilles 8bc69bb705 chore: structure initiale backend et docker-compose 2026-05-24 04:45:16 +02:00