From 2d8b1b40ceb124679aeb4900b4ae08d058ad4907 Mon Sep 17 00:00:00 2001 From: gilles Date: Sun, 22 Feb 2026 04:20:17 +0100 Subject: [PATCH] docs: README installation + structure projet + API Co-Authored-By: Claude Sonnet 4.6 --- README.md | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8f052e6 --- /dev/null +++ b/README.md @@ -0,0 +1,120 @@ +# Jardin — Application de gestion de jardins + +Interface web **mobile-first** pour gérer vos jardins, cultures, tâches et calendrier lunaire. +Thème : **Gruvbox Dark Seventies**. + +--- + +## Prérequis + +- Docker + Docker Compose + +## Lancement rapide + +```bash +cp .env.example .env +docker compose up --build +``` + +- Application : http://localhost +- API (docs Swagger) : http://localhost:8000/docs + +--- + +## Développement local + +### Backend + +```bash +cd backend +python -m venv .venv && source .venv/bin/activate +pip install -r requirements.txt +DATABASE_URL=sqlite:///./data/jardin.db UPLOAD_DIR=./data/uploads uvicorn app.main:app --reload +``` + +### Frontend + +```bash +cd frontend +npm install +npm run dev # → http://localhost:5173 +``` + +### Tests backend + +```bash +cd backend +source .venv/bin/activate +pytest tests/ -v +``` + +--- + +## Structure du projet + +``` +jardin/ +├── backend/ # API FastAPI + SQLite +│ ├── app/ +│ │ ├── main.py # App FastAPI, lifespan, CORS +│ │ ├── database.py # Engine SQLite, session +│ │ ├── config.py # Variables d'environnement +│ │ ├── seed.py # Données de démo +│ │ ├── models/ # Tables SQLModel (11 tables) +│ │ └── routers/ # Endpoints API +│ └── tests/ # Tests pytest (18 tests) +├── frontend/ # SPA Vue 3 + Vite + Tailwind +│ └── src/ +│ ├── api/ # Clients Axios +│ ├── stores/ # Stores Pinia +│ ├── components/ # Header, Drawer +│ ├── router/ # Vue Router (9 routes) +│ └── views/ # 9 pages +├── data/ # Volume persistant (SQLite + uploads) +├── docker-compose.yml +└── .env.example +``` + +--- + +## Données de démo + +Au premier démarrage, l'application crée automatiquement : +- 1 jardin "Mon potager" (grille 6×4, plein sud) +- 3 variétés : Tomate Andine Cornue, Courgette Verte, Laitue Batavia +- 2 plantations en cours +- 3 tâches (arrosage, traitement pucerons, compost) + +--- + +## Sauvegarde + +La base SQLite se trouve dans `data/jardin.db`. Copiez ce fichier pour sauvegarder : + +```bash +cp data/jardin.db data/jardin_backup_$(date +%Y%m%d).db +``` + +--- + +## API + +Documentation interactive disponible sur http://localhost:8000/docs (Swagger UI). + +Endpoints principaux : + +| Méthode | Endpoint | Description | +|---|---|---| +| GET | /api/health | Santé de l'API | +| GET/POST | /api/gardens | Jardins | +| GET/PUT/DELETE | /api/gardens/{id} | Jardin par ID | +| GET/POST | /api/gardens/{id}/cells | Cases de la grille | +| GET/POST | /api/gardens/{id}/measurements | Mesures temp/humidité | +| GET/POST | /api/varieties | Variétés | +| GET/POST | /api/plantings | Plantations | +| GET/POST | /api/plantings/{id}/events | Historique d'une plantation | +| GET/POST | /api/tasks | Tâches | +| GET | /api/settings | Paramètres utilisateur | +| PUT | /api/settings | Mettre à jour les paramètres | +| GET | /api/lunar?month=YYYY-MM | Calendrier lunaire | +| POST | /api/upload | Upload d'une image |