SystÚme complet d'arrosage automatique intelligent basé sur l'IA météorologique et les besoins spécifiques des plantes.
Vue d'ensemble avec graphiques météo, alertes et planning d'arrosage
Interface intuitive pour ajouter, modifier et suivre vos plantes
Recommandations d'arrosage basées sur l'IA météorologique
- Algorithme adaptatif : Ajustement automatique selon conditions météo
- Prédiction météorologique : Intégration OpenWeatherMap 7 jours
- Facteurs saisonniers : Adaptation aux cycles naturels des plantes
- Score de confiance : Ăvaluation de la fiabilitĂ© des recommandations
- Apprentissage continu : Amélioration basée sur l'historique
- 6 types supportés : Succulente, tropicale, méditerranéenne, tempérée, désert, aquatique
- ParamÚtres personnalisables : Fréquence, quantité, seuils de température/humidité
- Multiplicateurs saisonniers : Adaptation fine selon les saisons
- Historique complet : Suivi des arrosages et performances
- Dashboard interactif : Visualisation temps réel avec graphiques
- Responsive design : Compatible mobile/desktop
- ThÚme nature : Design inspiré du jardinage
- Gestion intuitive : CRUD complet avec validation avancée
- Docker & Docker Compose : Déploiement en un clic
- Microservices : Séparation frontend/backend/base de données
- ScalabilitĂ© : PrĂȘt pour la production
- Monitoring optionnel : Prometheus/Grafana intégrés
- Docker 20.10+
- Docker Compose 2.0+
- Clé API OpenWeatherMap (gratuite)
- 4GB RAM minimum
- Ports libres : 3000, 3001, 5432
# 1. Cloner le projet
git clone https://github.com/votre-username/smart-watering
cd smart-watering
# 2. Configuration initiale
make install
# 3. Configurer la clé API dans .env
OPENWEATHER_API_KEY=votre_cle_api_ici
# 4. Déploiement complet
make deploy
# 5. Accéder à l'application
# Frontend: http://localhost:3000
# Backend: http://localhost:3001# Gestion des services
make start # Démarrer tous les services
make stop # ArrĂȘter tous les services
make restart # Redémarrer tous les services
make status # Statut des conteneurs
# Développement
make dev # Mode développement (sans Docker)
make logs # Voir tous les logs
make health # Vérifier la santé des services
# Maintenance
make backup # Sauvegarde complĂšte
make restore FILE=backup.sql.gz # Restauration
make clean # Nettoyage complet
# Tests et qualité
make test # Lancer les tests
make lint # VĂ©rification du codeâââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â Frontend â â Backend â â Database â
â React + TS âââââșâ Node.js + TS âââââșâ PostgreSQL â
â Port: 3000 â â Port: 3001 â â Port: 5432 â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â â â
â âââââââââââââââââââ â
â â Redis Cache â â
âââââââââââââââ†Port: 6379 ââââââââââââââââ
âââââââââââââââââââ
â
âââââââââââââââââââ
â OpenWeatherMap â
â API â
âââââââââââââââââââ
Frontend
- React 18 avec TypeScript
- Material-UI pour l'interface
- React Query pour l'état serveur
- Recharts pour les graphiques
- React Hook Form + Yup validation
Backend
- Node.js 18 avec TypeScript
- Express.js + TypeORM
- Cron jobs automatisés
- Architecture modulaire
- API RESTful complĂšte
Base de données
- PostgreSQL 15
- Migrations automatiques
- Index optimisés
- Vues statistiques précalculées
Infrastructure
- Docker & Docker Compose
- Nginx reverse proxy
- Monitoring Prometheus/Grafana
- Sauvegardes automatisées
const recommendation = WateringAlgorithm.calculateWateringRecommendation(
plant, // Caractéristiques spécifiques
weatherData, // Données météo actuelles + prévisions
lastWatering, // Historique d'arrosage
forecastDays // Horizon de prévision (3-5 jours)
);- Analyse des besoins de base : Fréquence et quantité selon le type de plante
- Facteur saisonnier : Multiplication selon la saison (hiver: 0.5x, été: 1.5x)
- Conditions météorologiques :
- TempĂ©rature > 30°C â +30% d'eau
- HumiditĂ© < 40% â +20% d'eau
- Pluie prĂ©vue â Report d'arrosage
- Historique : Ajustement selon les arrosages précédents
- Score de confiance : Ăvaluation de la fiabilitĂ© (0-1)
đ§ïž Pluie prĂ©vue : "Pluie prĂ©vue dans 2 jours (8mm) - Arrosage reportĂ©"
đ„ Canicule : "TempĂ©rature Ă©levĂ©e (35°C) + Air sec (25%) â 400ml au lieu de 250ml"
âïž Hiver : "Saison hivernale â QuantitĂ© rĂ©duite Ă 125ml (Ă0.5)"
# API Météo (OBLIGATOIRE)
OPENWEATHER_API_KEY=votre_cle_api
# Base de données
DB_HOST=database
DB_PORT=5432
DB_NAME=smart_watering
DB_USER=postgres
DB_PASSWORD=mot_de_passe_securise
# Sécurité
JWT_SECRET=cle_secrete_jwt
CORS_ORIGIN=http://localhost:3000
# Cache Redis (optionnel)
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=mot_de_passe_redis# Développement (services de base)
make deploy
# Production (avec reverse proxy)
make deploy-prod
# Monitoring (avec Prometheus/Grafana)
make deploy-monitoringinterface PlantConfig {
name: string;
type: PlantType; // Type de plante
baseWateringFrequencyDays: number; // Fréquence de base (jours)
baseWaterAmountMl: number; // Quantité de base (ml)
// Multiplicateurs saisonniers
springMultiplier: number; // Printemps (1.2)
summerMultiplier: number; // ĂtĂ© (1.5)
autumnMultiplier: number; // Automne (0.8)
winterMultiplier: number; // Hiver (0.5)
// Seuils environnementaux
minTemperature: number; // Temp minimale (°C)
maxTemperature: number; // Temp maximale (°C)
idealHumidity: number; // Humidité idéale (%)
rainThresholdMm: number; // Seuil pluie pour annuler (mm)
}# Plantes
GET /api/plants # Liste des plantes
POST /api/plants # Créer une plante
GET /api/plants/:id # Détails d'une plante
PUT /api/plants/:id # Modifier une plante
DELETE /api/plants/:id # Supprimer une plante
# Planning d'arrosage
GET /api/schedules/today # Planning du jour
GET /api/schedules/pending # Arrosages en attente
POST /api/schedules/generate # Générer le planning
PATCH /api/schedules/:id/complete # Marquer comme terminé
PATCH /api/schedules/:id/skip # Ignorer un arrosage
# Météo
GET /api/weather/current # Conditions actuelles
GET /api/weather/forecast # Prévisions 7 jours
POST /api/weather/update # Mise à jour forcée
GET /api/weather/stats # Statistiques météo# Créer une plante
curl -X POST http://localhost:3001/api/plants \
-H "Content-Type: application/json" \
-d '{
"name": "Monstera",
"type": "tropical",
"baseWateringFrequencyDays": 7,
"baseWaterAmountMl": 300
}'
# Générer le planning du jour
curl -X POST http://localhost:3001/api/schedules/generate
# Marquer un arrosage comme terminé
curl -X PATCH http://localhost:3001/api/schedules/abc123/complete \
-H "Content-Type: application/json" \
-d '{"actualAmount": 280, "notes": "Plante en bonne santé"}'- Validation stricte : Tous les inputs validés avec Joi
- Sanitization : Protection contre injections SQL/XSS
- CORS configuré : Origines autorisées uniquement
- Rate limiting : Protection contre abus API
- Conteneurs non-root : Sécurité renforcée Docker
- Variables sensibles : Stockage sécurisé dans .env
# HTTPS avec certificats SSL
# Reverse proxy Nginx
# Firewall conteneurisé
# Logs centralisés
# Monitoring sécurisé# 1. Préparation serveur
sudo apt update && sudo apt install docker.io docker-compose-plugin
# 2. Cloner et configurer
git clone https://repo.git && cd smart-watering
cp .env.example .env
# Ăditer .env avec vos vraies configurations
# 3. Déploiement production
make deploy-prod
# 4. Configuration domaine + SSL
# Configurer DNS vers votre serveur
# Certificats SSL automatiques avec Certbot# Déploiement avec monitoring
make deploy-monitoring
# AccĂšs aux interfaces
# Grafana: http://votre-domaine:3001
# Prometheus: http://votre-domaine:9090- Application mobile React Native
- Notifications push PWA + push notifications
- API vocale Intégration assistants vocaux
- IoT sensors Capteurs d'humidité du sol
- Multi-utilisateurs Gestion des comptes
- API publique Documentation OpenAPI
- Machine Learning Amélioration algorithme IA
Les contributions sont les bienvenues !
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commit (
git commit -m 'Add AmazingFeature') - Push (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
- OpenWeatherMap pour les données météorologiques gratuites
- Material-UI pour les composants React magnifiques
- TypeScript pour la robustesse du code
- Docker pour la simplicité de déploiement
- PostgreSQL pour la fiabilité des données
đ± DĂ©veloppĂ© avec â€ïž pour un jardinage plus intelligent đ±
Documentation âą Issues âą Discussions
