avant codex
This commit is contained in:
130
CLAUDE.md
Normal file
130
CLAUDE.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user