3032751d166c789d97fe7a03f9db5b5ae3e43316
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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
cp .env.example .env
docker compose up --build
- Application : http://localhost
- API (docs Swagger) : http://localhost:8000/docs
Développement local
Backend
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
cd frontend
npm install
npm run dev # → http://localhost:5173
Tests backend
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 :
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 |
Description
Languages
JavaScript
60.2%
Vue
19.6%
Python
17.7%
TypeScript
2.3%
CSS
0.1%