Files
jardin/consigne v3.md
2026-02-22 15:05:40 +01:00

341 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# đŸŒŋ **Consigne de DÊveloppement : Application de Gestion de Jardin**
**Thème visuel** : *Gruvbox Dark Seventies* (inspirÊ des annÊes 70 avec des tons chauds et sombres)
**Langue** : Français
**Plateformes** : Web (responsive) + Mobile (compatibilitÊ smartphone)
**Technologies suggÊrÊes** : React.js (frontend) + Node.js/Express (backend) + Firebase/PostgreSQL (base de
donnÊes) + Mapbox/Leaflet (cartographie) + TensorFlow.js (dÊtection d'espèces via photo)
---
## **📌 Table des Matières**
1. [Introduction](#1-introduction)
2. [FonctionnalitÊs Principales](#2-fonctionnalitÊs-principales)
- [Gestion des Jardins](#21-gestion-des-jardins)
- [Gestion des Plantes](#22-gestion-des-plantes)
- [Calendrier Lunaire](#23-calendrier-lunaire)
- [Planning et TÃĸches](#24-planning-et-tÃĸches)
- [GÊolocalisation et Cartographie](#25-gÊolocalisation-et-cartographie)
- [AmÊliorations AvancÊes](#26-amÊliorations-avancÊes)
3. [Architecture Technique](#3-architecture-technique)
4. [Design & UI/UX](#4-design-uiux)
5. [Roadmap & Brainstorming](#5-roadmap-et-brainstorming)
6. [Exigences Techniques](#6-exigences-techniques)
7. [Livrables](#7-livrables)
---
## **1. Introduction**
**Objectif** :
CrÊer une application web/mobile intuitive pour gÊrer un ou plusieurs jardins (plein air ou serre), avec des
fonctionnalitÊs avancÊes de suivi des plantes, du climat, et des conseils basÊs sur le calendrier lunaire.
L’interface doit ÃĒtre **responsive**, **esthÊtique** (thème *Gruvbox Dark Seventies*), et optimisÊe pour les
smartphones.
**Cibles** :
- Jardiniers amateurs et professionnels.
- Utilisateurs souhaitant automatiser la gestion des cultures (arrosage, plantation, rÊcolte).
- IntÊgration de donnÊes gÊolocalisÊes et mÊtÊo en temps rÊel.
**Inspirations visuelles** :
- Palette de couleurs : [Gruvbox Dark](https://github.com/morhetz/gruvbox) (rouge foncÊ, vert mousse, beige,
noir).
- Style : Retro-futuriste annÊes 70 (boutons arrondis, ombres douces, typographie ÊpurÊe comme *Courier New* ou
*Fira Code*).
- Exemple de palette :
```plaintext
#064E3B (vert foncÊ) | #CCA066 (beige chaud) | #D65D0E (orange rouille) | #282828 (noir profond)
---
2. FonctionnalitÊs Principales
2.1 Gestion des Jardins
FonctionnalitÊ: CrÊation/Modification
Description: Ajout d’un jardin avec :
Exemple UI:
────────────────────────────────────────
FonctionnalitÊ:
Description: - Nom, description.
Exemple UI:
────────────────────────────────────────
FonctionnalitÊ:
Description: - Type : Plein air / Serre.
Exemple UI: https://via.placeholder.com/30/CCA066/000?text=Serre
────────────────────────────────────────
FonctionnalitÊ:
Description: - CoordonnÊes gÊographiques (latitude/longitude) + carte interactive (Mapbox/Leaflet).
Exemple UI: https://via.placeholder.com/30/064E3B/000?text=📍
────────────────────────────────────────
FonctionnalitÊ:
Description: - Exposition (Nord/Sud/Est/Ouest) + angle d’inclinaison.
Exemple UI: https://via.placeholder.com/30/D65D0E/000?text=⚡
────────────────────────────────────────
FonctionnalitÊ:
Description: - Dimensions : Longueur × Largeur (en m²) + gÊomÊtrie (grille de cases pour planter).
Exemple UI: https://via.placeholder.com/30/282828/CCA066?text=📐
────────────────────────────────────────
FonctionnalitÊ: Images
Description: Upload de photos du jardin (avec gÊotagging).
Exemple UI: https://via.placeholder.com/30/064E3B/CCA066?text=📸
────────────────────────────────────────
FonctionnalitÊ: Climat
Description: Suivi des paramètres :
Exemple UI:
────────────────────────────────────────
FonctionnalitÊ:
Description: - TempÊrature du sol (capteur ou saisie manuelle).
Exemple UI: https://via.placeholder.com/30/D65D0E/000?text=đŸŒĄī¸
────────────────────────────────────────
FonctionnalitÊ:
Description: - TempÊrature de l’air (API OpenWeatherMap).
Exemple UI: https://via.placeholder.com/30/CCA066/000?text=â˜€ī¸
────────────────────────────────────────
FonctionnalitÊ:
Description: - HumiditÊ (capteur ou % manuel).
Exemple UI: https://via.placeholder.com/30/064E3B/000?text=💧
---
2.2 Gestion des Plantes
FonctionnalitÊ: Fiche Plante
Description: Ajout/modification avec :
Exemple UI:
────────────────────────────────────────
FonctionnalitÊ:
Description: - Nom scientifique et commun.
Exemple UI: https://via.placeholder.com/30/CCA066/000?text=Tomate
────────────────────────────────────────
FonctionnalitÊ:
Description: - Famille botanique.
Exemple UI: https://via.placeholder.com/30/064E3B/000?text=SolanacÊes
────────────────────────────────────────
FonctionnalitÊ:
Description: - Type : Arbuste/Arbre/LÊgume/Fleur.
Exemple UI: https://via.placeholder.com/30/D65D0E/000?text=🌱
────────────────────────────────────────
FonctionnalitÊ:
Description: - Cycle de vie : Annuel/Bisannuel/PÊrenne.
Exemple UI: https://via.placeholder.com/30/282828/CCA066?text=âŗ
────────────────────────────────────────
FonctionnalitÊ:
Description: - Exigences : Lumière (soleil/mi-ombre/ombre), pH du sol, drainage.
Exemple UI: https://via.placeholder.com/30/064E3B/000?text=đŸ’§â˜€ī¸
────────────────────────────────────────
FonctionnalitÊ: Planning de Plantation
Description: Calendrier avec :
Exemple UI:
────────────────────────────────────────
FonctionnalitÊ:
Description: - Date de plantation/semis.
Exemple UI: https://via.placeholder.com/30/D65D0E/000?text=📅
────────────────────────────────────────
FonctionnalitÊ:
Description: - Espacement entre plants (cm).
Exemple UI: https://via.placeholder.com/30/CCA066/000?text=30cm
────────────────────────────────────────
FonctionnalitÊ:
Description: - Conseils : PÊriode lunaire idÊale (intÊgrÊ au calendrier lunaire).
Exemple UI: https://via.placeholder.com/30/064E3B/CCA066?text=🌕
────────────────────────────────────────
FonctionnalitÊ: Suivi de Croissance
Description: Photos + notes sur l’Êtat (maladies, croissance).
Exemple UI: https://via.placeholder.com/30/282828/000?text=📊
────────────────────────────────────────
FonctionnalitÊ: RÊcolte
Description: Date de rÊcolte + rendement estimÊ (kg/m²).
Exemple UI: https://via.placeholder.com/30/D65D0E/000?text=🍅
---
2.3 Calendrier Lunaire
- IntÊgration d’une API comme AstroAPI pour afficher :
- Phases de la lune (croissante/dÊcroissante).
- Jours favorables/dÊfavorables pour planter/repirer.
- Exemple de notification :
"Aujourd’hui est un jour favorable pour planter des lÊgumes-feuilles (ex : laitue). Évitez les racines."
---2.4 Planning et TÃĸches
- Liste de tÃĸches (type Todo) avec :
- Arrosage (frÊquence + volume).
- Taille/Engrais.
- Lutte contre les parasites.
- Rappels push (notifications mobiles).
- Exemple :
"Arroser les tomates tous les 2 jours (1L/plant). → [✅ TerminÊ] / [📅 15/06]."
---2.5 GÊolocalisation et Cartographie
- Carte interactive (Mapbox/Leaflet) :
- Affichage des jardins avec leurs cases de plantation.
- Superposition des donnÊes mÊtÊo (tempÊrature, pluie).
- Exemple :
https://via.placeholder.com/400x300/282828/CCA066?text=🌍+Jardins+🌱
---2.6 AmÊliorations AvancÊes
FonctionnalitÊ: DÊtection d’espèces via photo
Description: Upload d’une photo d’une plante → reconnaissance via TensorFlow.js (modèle prÊ-entraÃŽnÊ comme
PlantNet).
Technologie SugÊrÊe: TensorFlow.js + Firebase Storage
────────────────────────────────────────
FonctionnalitÊ: Capteurs IoT
Description: IntÊgration de capteurs (tempÊrature/humiditÊ) via Raspberry Pi + MQTT.
Technologie SugÊrÊe: Node-RED + MQTT Broker
────────────────────────────────────────
FonctionnalitÊ: Recommandations IA
Description: Suggestions personnalisÊes (ex : "Votre sol est trop sec, ajoutez du compost").
Technologie SugÊrÊe: Python (Flask) + Scikit-learn
────────────────────────────────────────
FonctionnalitÊ: Partage communautaire
Description: Forum pour Êchanger des conseils entre utilisateurs.
Technologie SugÊrÊe: Firebase Auth + Forums (Discourse)
────────────────────────────────────────
FonctionnalitÊ: Analyse des donnÊes
Description: Graphiques de croissance (ex : courbe de tempÊrature vs rendement).
Technologie SugÊrÊe: Chart.js + D3.js
---
3. Architecture Technique
Frontend
- Framework : React.js (avec TypeScript pour la typage).
- UI Library : Material-UI (thème personnalisÊ Gruvbox) ou Tailwind CSS.
- Responsive : Breakpoints pour mobile/tablette/desktop.
- Cartographie : Mapbox GL JS ou Leaflet.
Backend
- Langage : Node.js + Express.
- Base de donnÊes :
- SQL : PostgreSQL (pour les relations complexes).
- NoSQL : Firebase (pour les donnÊes utilisateurs et temps rÊel).
- APIs externes :
- OpenWeatherMap (mÊtÊo).
- AstroAPI (calendrier lunaire).
- Google Maps API (gÊolocalisation).
Mobile
- Hybride : React Native (si besoin d’une app dÊdiÊe).
- PWA : Progressive Web App pour une expÊrience offline possible.
HÊbergement
- Frontend : Vercel/Netlify.
- Backend : Render/Heroku.
- Base de donnÊes : Supabase (PostgreSQL) ou Firebase.
---
4. Design & UI/UX
Thème Gruvbox Dark Seventies
- Couleurs :
- Fond : #282828 (noir profond).
- Accents : #D65D0E (orange rouille), #CCA066 (beige).
- Texte : #A89984 (beige clair).
- Typographie :
- Police : Fira Code (monospace) ou Courier New pour un côtÊ rÊtro.
- Taille : 16px (corps) / 24px (titres).
- Icônes : Feather Icons ou Material Icons.
- Animations :
- Effets subtils (hover sur les boutons).
- Loading spinner en forme de lune croissante.
Maquettes
- Figma/Adobe XD : CrÊer des wireframes pour :
- Page d’accueil (tableau de bord).
- Fiche jardin.
- Planning des tÃĸches.
- Carte interactive.
---5. Roadmap & Brainstorming
Phase 1 (MVP - 4 semaines)
┌──────────────────────────────â”Ŧ──────────â”Ŧ──────────────────────────────────────────────────────┐
│ TÃĸche │ PrioritÊ │ Description │
├──────────────────────────────â”ŧ──────────â”ŧ──────────────────────────────────────────────────────┤
│ Authentification utilisateur │ ⭐⭐⭐ │ Firebase Auth (email/password + Google). │
├──────────────────────────────â”ŧ──────────â”ŧ──────────────────────────────────────────────────────┤
│ Gestion des jardins │ ⭐⭐⭐ │ CRUD (Create/Read/Update/Delete) avec carte Leaflet. │
├──────────────────────────────â”ŧ──────────â”ŧ──────────────────────────────────────────────────────┤
│ Plantes (fiches) │ ⭐⭐⭐ │ Base de donnÊes avec images uploadÊes. │
├──────────────────────────────â”ŧ──────────â”ŧ──────────────────────────────────────────────────────┤
│ Calendrier lunaire │ ⭐⭐ │ IntÊgration API AstroAPI + affichage des phases. │
├──────────────────────────────â”ŧ──────────â”ŧ──────────────────────────────────────────────────────┤
│ Planning tÃĸches │ ⭐⭐ │ Liste avec rappels (notifications locales). │
└──────────────────────────────┴──────────┴──────────────────────────────────────────────────────┘
Phase 2 (AmÊliorations - 6 semaines)
┌─────────────────────────────â”Ŧ──────────â”Ŧ─────────────────────────────────────────────────────┐
│ TÃĸche │ PrioritÊ │ Description │
├─────────────────────────────â”ŧ──────────â”ŧ─────────────────────────────────────────────────────┤
│ DÊtection d’espèces (photo) │ ⭐⭐⭐ │ Modèle TensorFlow.js + Firebase Storage. │
├─────────────────────────────â”ŧ──────────â”ŧ─────────────────────────────────────────────────────┤
│ Capteurs IoT (optionnel) │ ⭐⭐ │ Raspberry Pi + MQTT pour les donnÊes en temps rÊel. │
├─────────────────────────────â”ŧ──────────â”ŧ─────────────────────────────────────────────────────┤
│ Analyse de donnÊes │ ⭐⭐ │ Graphiques de croissance (Chart.js). │
├─────────────────────────────â”ŧ──────────â”ŧ─────────────────────────────────────────────────────┤
│ Partage communautaire │ ⭐ │ Forum intÊgrÊ (Discourse ou Firebase Forum). │
└─────────────────────────────┴──────────┴─────────────────────────────────────────────────────┘
Brainstorming Futur
- AR : Filtre rÊalitÊ augmentÊe pour visualiser les plantes dans son jardin.
- Drone : IntÊgration de photos aÊriennes (via API DroneKit).
- Marketplace : Vente/achat de graines/plantes entre utilisateurs.
---
6. Exigences Techniques
┌───────────────â”Ŧ───────────────────────────────────────────────────────────────────┐
│ CatÊgorie │ DÊtails │
├───────────────â”ŧ───────────────────────────────────────────────────────────────────┤
│ CompatibilitÊ │ - Navigateurs : Chrome, Firefox, Safari (mobile/desktop). │
├───────────────â”ŧ───────────────────────────────────────────────────────────────────┤
│ │ - RÊsolution : AdaptÊ à 320px (mobile) à 1920px (desktop). │
├───────────────â”ŧ───────────────────────────────────────────────────────────────────┤
│ Performance │ - Temps de chargement < 2s (optimisation images + lazy loading). │
├───────────────â”ŧ───────────────────────────────────────────────────────────────────┤
│ SÊcuritÊ │ - HTTPS obligatoire. │
├───────────────â”ŧ───────────────────────────────────────────────────────────────────┤
│ │ - Chiffrement des donnÊes utilisateurs (Firebase Security Rules). │
├───────────────â”ŧ───────────────────────────────────────────────────────────────────┤
│ AccessibilitÊ │ - Conforme WCAG (contrastes, sous-titres pour vidÊos). │
├───────────────â”ŧ───────────────────────────────────────────────────────────────────┤
│ Tests │ - Tests unitaires (Jest) + tests E2E (Cypress). │
└───────────────┴───────────────────────────────────────────────────────────────────┘
---
7. Livrables
1. Code source :
- Repository GitHub/GitLab avec README dÊtaillÊ.
- Documentation technique (API, installation).
2. Maquettes :
- Fichiers Figma/Adobe XD pour le design.
3. Base de donnÊes :
- Schema PostgreSQL + donnÊes d’exemple.
4. DÊmonstration :
- VidÊo Loom (10 min) montrant les fonctionnalitÊs clÊs.
5. Documentation utilisateur :
- Guide PDF avec captures d’Êcran (ex : "Comment ajouter un jardin ?").
---
📌 Notes SupplÊmentaires
- Noms de variables : Utiliser des noms explicites (ex : userJardins au lieu de j).
- Internationalisation : PrÊvoir un système i18n (ex : français/anglais) via react-i18next.
- Feedback : IntÊgrer un système de feedback (ex : "Cette fonctionnalitÊ est-elle utile ?").
---🚀 PrÃĒt à commencer !
Merci de suivre cette consigne pour livrer une application fonctionnelle, esthÊtique et scalable. Pour les
ajustements, priorisez toujours l’UX et la performance.
---InspirÊ par : Gruvbox, PlantNet, et les jardins potagers des annÊes 70.