131 lines
4.1 KiB
Markdown
131 lines
4.1 KiB
Markdown
# 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 :
|
|
|
|
```bash
|
|
# 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
|