Commit Graph

44 Commits

Author SHA1 Message Date
9db5cbf236 before gemiin 2026-02-22 22:18:32 +01:00
fb33540bb0 refactor(settings): extraire UI_SIZE_DEFAULTS partagé + catch erreur saveUiSettings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 20:15:57 +01:00
155de270dc feat(settings): sliders taille texte/menu/icônes/miniatures + CSS vars globales
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 20:12:22 +01:00
0d3bf205b1 feat(saints-dictons): table saint_du_jour + API + import standalone 366j
- Nouveau modèle SaintDuJour (mois+jour+saints_json, indépendant de l'année)
- Router /api/saints et /api/saints/jour (mois+jour → liste de prénoms)
- Script standalone import_webapp_db.py : saints_du_jour.json → saint_du_jour,
  dictons_du_jour.json → dicton ; modes replace/append, --dry-run, --region
- Données JSON 366 jours : saints_du_jour.json + dictons_du_jour.json
- Scripts scraping/export calendrier_lunaire/saints_dictons/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 19:54:47 +01:00
a9f0556d73 fix(router): guard OperationalError si tables météo inexistantes 2026-02-22 19:16:46 +01:00
55387f4b0e maj via codex 2026-02-22 18:34:50 +01:00
20af00d653 avant codex 2026-02-22 15:05:40 +01:00
fed449c784 feat(router): endpoints météo tableau/station/previsions + tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:56:11 +01:00
2ca8281b0a feat(scheduler): APScheduler 3 jobs météo dans FastAPI lifespan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:50:33 +01:00
3b1601a07b feat(service): open-meteo enrichi (sol, ETP, past_days, humidité) + tests
- Remplace le service meteo.py minimal par une version enrichie :
  past_days=7 + forecast=8, champs humidite_moy, sol_0cm, etp_mm
- Corrige les noms de champs API (weather_code, wind_speed_10m_max)
  et passe les paramètres daily en liste de tuples pour compatibilité
- Ajoute fetch_and_store_forecast() pour le scheduler (Task 6)
- Conserve fetch_forecast() pour compatibilité ascendante (GET /api/meteo)
- Crée backend/tests/test_meteo.py (test_health passe, 3 autres
  échouent en attente des endpoints Task 7)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:46:37 +01:00
8a7a2c7c6d feat(service): scraper station WeeWX (RSS current + NOAA yesterday)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:42:18 +01:00
cc69d0d5ad feat(astuce): ajout colonnes categorie/tags/mois + migration
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:38:06 +01:00
17d2c5ac18 feat(models): tables MeteoStation + MeteoOpenMeteo (SQLModel)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:34:20 +01:00
29e2f18e98 feat(config): ajout STATION_URL, METEO_LAT/LON + apscheduler dep
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:32:07 +01:00
f1f4c97dc6 docs: plan implémentation météo + astuces (12 tâches, TDD, bite-sized)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:30:10 +01:00
3032751d16 docs: design météo + astuces (APScheduler + SQLite + tableau synthétique)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 14:24:34 +01:00
326158f680 fix: noms PlantNet en français (lang=fr) + sauvegarde image systématique sans plante liée 2026-02-22 13:11:34 +01:00
7361958fe2 fix(nginx): client_max_body_size 20M pour les photos iPhone + proxy_read_timeout 2026-02-22 13:07:57 +01:00
fa23dd8f2b fix(frontend): ajouter Bibliothèque dans le sidebar desktop App.vue 2026-02-22 13:05:41 +01:00
de2b95ff94 fix: ne pas cacher les résultats vides, retirer clé API hardcodée 2026-02-22 12:48:58 +01:00
94ebe338a0 feat: vue BibliothequeView + route /bibliotheque + nav + endpoint media/all
- backend: ajoute GET /api/media/all (filtrable par entity_type, trié par date desc) dans media.py ; importe Optional depuis typing
- frontend: crée BibliothequeView.vue (grille photo, filtres par type, lightbox, modal PhotoIdentifyModal)
- frontend: ajoute la route /bibliotheque dans router/index.ts
- frontend: ajoute le lien "📷 Bibliothèque" dans AppDrawer.vue

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:35:46 +01:00
7349f770e6 feat(frontend): modal PhotoIdentifyModal — upload + identification + association
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:31:32 +01:00
941bf7aa3e feat(frontend): composant PhotoGallery réutilisable avec lightbox et upload
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:25:11 +01:00
2065ff7c8a test(backend): tests endpoint /api/identify — PlantNet, YOLO fallback, cache
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:23:41 +01:00
883299272f feat(backend): champs identified_* sur Media pour stocker l'identification
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:20:32 +01:00
560fa63a45 feat(backend): endpoint POST /api/identify PlantNet + YOLO fallback + cache
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:18:56 +01:00
2e67e9cb02 feat(backend): services PlantNet et YOLO pour identification de plantes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:17:23 +01:00
6ca233d720 feat(backend): service cache Redis pour identifications
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:14:31 +01:00
1af5f66855 fix(ai-service): gestion erreurs, health check, limite taille, run_in_executor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:11:58 +01:00
ad1c1044c7 feat(ai-service): container YOLO FastAPI pour détection plantes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 12:09:56 +01:00
2d8b1b40ce docs: README installation + structure projet + API
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 04:20:17 +01:00
911395accc feat(frontend): vues MVP — dashboard, jardins, grille, variétés, tâches, plantations
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 04:18:11 +01:00
3c5f0d571f feat(frontend): layout header + drawer + router (9 routes)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 04:12:35 +01:00
f29f90a16f feat(frontend): API layer + stores Pinia
Ajoute le client Axios, les modules API (gardens, varieties, plantings,
tasks) et les stores Pinia correspondants. Corrige tsconfig.json pour
inclure vite/client et DOM.Iterable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 04:10:16 +01:00
b8edb6bc0a feat(frontend): scaffold Vue 3 + Vite + Tailwind Gruvbox
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-22 04:07:07 +01:00
0057a3cbcc feat(backend): settings, upload media, seed données démo
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:25:29 +01:00
4787f044e5 feat(backend): CRUD variétés, plantations, tâches + tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:22:58 +01:00
aa379aa1b4 feat(backend): CRUD jardins + tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:20:02 +01:00
26b5a3dbdf feat(backend): modèles SQLModel (10 tables)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:17:09 +01:00
cf4fbfd4a0 feat(backend): setup FastAPI + SQLite + config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:14:10 +01:00
d79f94e948 fix: docker-compose utilise env_file, .gitignore couvre sous-dossiers
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:12:23 +01:00
041b96aa60 chore: scaffold projet + docker-compose
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:09:59 +01:00
c1fe3e2636 docs: plan d'implémentation webapp jardin (11 tâches)
Plan complet : Docker, FastAPI + SQLModel + tests TDD, Vue 3 + Tailwind Gruvbox.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 21:07:19 +01:00
b871578ccc docs: ajout du design document webapp jardin
Architecture validée : FastAPI + Vue 3 + SQLite + Docker Compose + Tailwind CSS (thème Gruvbox Dark).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 20:51:46 +01:00