341 lines
21 KiB
Markdown
341 lines
21 KiB
Markdown
# đŋ **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.
|