# 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:8061 - API (docs Swagger) : http://localhost:8060/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 |