Files
jardin/CLAUDE.md
2026-02-22 15:05:40 +01:00

4.1 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Projet

Application web de gestion de jardins (potager, serre, plein air), self-hosted, mobile-first, entièrement en français. Thème visuel : Gruvbox Dark "seventies" (vintage, chaleureux, contrasté).

Architecture cible

Backend

  • Python FastAPI + SQLModel (SQLAlchemy en dessous)
  • SQLite par défaut (volume Docker persistant), migration future vers PostgreSQL prévue
  • Stockage images : local /data/uploads + métadonnées en DB
  • API REST documentée (OpenAPI auto-générée par FastAPI)

Frontend

  • Vue 3 + Vite (alternative React acceptable)
  • Tailwind CSS avec thème Gruvbox Dark personnalisé
  • Mobile-first, PWA en phase 2

Déploiement

  • Docker Compose : service backend + service frontend (static) + volumes db et uploads

Commandes de développement

Une fois le projet créé, les commandes attendues seront :

# Lancer tout l'environnement
docker compose up --build

# Backend seul (développement)
cd backend && uvicorn app.main:app --reload

# Frontend seul (développement)
cd frontend && npm run dev

# Tests backend
cd backend && pytest

# Tests un seul fichier
cd backend && pytest tests/test_gardens.py -v

# Lint backend
cd backend && ruff check . && mypy .

# Lint frontend
cd frontend && npm run lint

Modèle de données (tables MVP)

Table Rôle
gardens Jardins (nom, type, coordonnées, exposition, sol)
garden_cells Cases de la grille 2D du jardin
garden_images Photos associées à un jardin
measurements Relevés temp/humidité (air + sol)
plant_varieties Catalogue de variétés (référence)
plant_images Photos de variétés
plantings Instance : variété X dans jardin Y à case Z
planting_events Historique arrosage/taille/traitement/observation
tasks Tâches (ponctuelles ou récurrentes)
lunar_calendar_entries Cache/dataset calendrier lunaire
user_settings Préférences locales

Endpoints API principaux

GET  /api/health
GET/POST         /api/gardens
GET/PUT/DELETE   /api/gardens/{id}
GET/POST         /api/gardens/{id}/cells
GET/POST         /api/varieties
GET/POST         /api/plantings
GET/POST         /api/tasks
GET/POST         /api/measurements
GET              /api/lunar?month=YYYY-MM
POST             /api/export
POST             /api/import

Thème Gruvbox Dark

Palette CSS à respecter partout :

Background principal  : #282828
Background secondaire : #3c3836
Texte principal       : #ebdbb2
Texte secondaire      : #a89984
Accent vert           : #b8bb26
Accent jaune          : #fabd2f
Accent bleu           : #83a598
Accent orange         : #fe8019
Erreur rouge          : #fb4934

Typo : Fira Code ou Courier New pour le côté rétro.

Fonctionnalités MVP (ordre d'implémentation)

  1. Modèle DB + CRUD jardins / variétés / plantations / tâches
  2. Upload images + galerie
  3. Vue grille jardin (2D) + placement des plantations
  4. Planning calendrier (semaine/mois) + vues filtrées
  5. Calendrier lunaire (phases + jours racine/feuille/fleur/fruit)
  6. Dashboard + export/import JSON
  7. Polissage UI mobile + README final

Pages de l'interface

  1. Dashboard — tâches du jour, mesures récentes, plantations actives
  2. Jardins — liste, création, fiche jardin
  3. Grille jardin — vue cases, détails par case
  4. Catalogue variétés — liste, fiche variété
  5. Plantations — liste filtrable, création, fiche
  6. Planning — calendrier mois/semaine + actions
  7. Tâches — Kanban simple ou liste
  8. Calendrier lunaire — vue mois + détails jour
  9. Réglages — unités, localisation, export/import, sauvegarde

Qualité & conventions

  • Validation stricte Pydantic côté backend
  • Logs structurés (JSON) côté backend
  • Tests CRUD + filtres pour chaque ressource API
  • Variables d'environnement côté backend uniquement (pas de secrets dans le frontend)
  • Données de démo (seed) : 1 jardin + quelques variétés + plantations + tâches