Système de gestion agricole distribué basé sur une architecture orientée services (SOA) avec microservices REST et SOAP.
AgriServices est une plateforme complète de gestion agricole permettant aux agriculteurs, coopératives et experts de gérer leurs exploitations, cultures, prédictions et factures de manière centralisée et sécurisée.
- π Authentification JWT : SΓ©curisation des accΓ¨s avec tokens JWT
- π¨βπΎ Gestion des agriculteurs : CRUD complet avec MongoDB
- π± Gestion des cultures : Service SOAP pour les cultures et parcelles
- π PrΓ©dictions agricoles : Estimations de rendement et risques
- π° Facturation : Service SOAP pour la gestion des factures
- π API Gateway : Point d'entrΓ©e unique avec routage intelligent
Le système est composé de 6 microservices indépendants :
βββββββββββββββββββ
β API Gateway β
β (Port 8080) β
ββββββββββ¬βββββββββ
β
ββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββ
β β β β β
βΌ βΌ βΌ βΌ βΌ
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ
β Auth β β Farmer β β Crop β βPredictionβ β Billing β
β Service β β Service β β Service β β Service β β Service β
β :8081 β β :3001 β β :8082 β β :8000 β β :8085 β
ββββββ¬ββββββ ββββββ¬ββββββ ββββββββββββ ββββββββββββ ββββββ¬ββββββ
β β β
βΌ βΌ βΌ
ββββββββββββ ββββββββββββββ ββββββββββββββ
βPostgreSQLβ βMongoDB β βMongoDB β
β Auth DB β β Farmer DB β β Billing DB β
ββββββββββββ ββββββββββββββ ββββββββββββββ
| Service | Technologie | Port | Base de donnΓ©es |
|---|---|---|---|
| API Gateway | Spring Cloud Gateway | 8080 | - |
| Auth Service | Spring Boot 3.4 | 8081 | PostgreSQL 16 |
| Farmer Service | Node.js 22 + Express | 3001 | MongoDB Atlas |
| Crop Service | Java JAX-WS (SOAP) | 8082 | - |
| Prediction Service | Python FastAPI | 8000 | - |
| Billing Service | .NET 9 (SOAP) | 8085 | MongoDB Atlas |
- Docker Desktop (v20.10+)
- Docker Compose (v2.0+)
- Compte MongoDB Atlas (gratuit) - Voir SETUP-MONGODB-ATLAS.md
- 4 GB RAM minimum
- Cloner le repository
git clone https://github.com/Mahamadou-dev/AgriServices.git
cd AgriServices- Configurer les variables d'environnement
cd docker
cp .env.example .env
# Γditer .env avec vos configurations MongoDB Atlas- DΓ©marrer tous les services
docker compose up -d- VΓ©rifier le dΓ©marrage
# VΓ©rifier les services
docker compose ps
# VΓ©rifier les logs
docker compose logs -f
# Tester l'API Gateway
curl http://localhost:8080/healthDocumentation complète disponible dans le dossier /documentation :
- DΓ©marrage Local - Guide complet pour dΓ©marrer tous les services
- Guide de Tests - Instructions dΓ©taillΓ©es pour tester chaque service
- Guide Frontend - Guide d'utilisation du frontend Next.js
- README Frontend - Documentation technique du frontend
- Cahier des charges - SpΓ©cifications du projet
- Architecture - Architecture du système
- SpΓ©cifications techniques - DΓ©tails techniques
- Manuel d'utilisation - Guide utilisateur complet
- Conception système - Architecture et design détaillé
- Setup MongoDB Atlas - Configuration MongoDB
- Guide Γ©quipe dΓ©veloppement - Guide pour les dΓ©veloppeurs
- Guide de dΓ©ploiement - DΓ©ploiement en production
- Production Readiness - PrΓ©paration pour la production
AgriServices/
βββ documentation/ # Documentation complΓ¨te
βββ docker/ # Docker Compose et Dockerfiles
β βββ Dockerfiles/
β βββ docker-compose.yml
β βββ .env.example
βββ services/
β βββ auth-service/ # Service d'authentification (Spring Boot)
β βββ farmer-service/ # Service agriculteurs (Node.js)
β βββ crop-service/ # Service cultures (JAX-WS SOAP)
β βββ prediction-service/# Service prΓ©dictions (FastAPI)
β βββ billing-service/ # Service facturation (.NET SOAP)
β βββ api-gateway/ # Passerelle API (Spring Cloud)
βββ README.md
Auth Service & API Gateway (Java)
cd services/auth-service
./mvnw clean compileFarmer Service (Node.js)
cd services/farmer-service
npm install
npm startVia API Gateway (http://localhost:8080)
Authentification
POST /auth/register- CrΓ©er un comptePOST /auth/login- Se connecterGET /auth/validate- Valider un token
Farmers
POST /api/farmers- CrΓ©er un agriculteurGET /api/farmers- Lister les agriculteursGET /api/farmers/:id- Obtenir un agriculteurPUT /api/farmers/:id- Modifier un agriculteurDELETE /api/farmers/:id- Supprimer un agriculteur
PrΓ©dictions
POST /api/predict/yield- PrΓ©dire le rendementPOST /api/predict/risk- Γvaluer les risques
Services SOAP
/crop/**- Service cultures (WSDL disponible)/billing/**- Service facturation (WSDL disponible)
Voir le Manuel d'utilisation pour des exemples dΓ©taillΓ©s.
Le projet inclut un fichier de tests complet tests-api.json avec des exemples pour tous les services.
# VΓ©rifier la santΓ© de tous les services
curl http://localhost:8080/health # Gateway
curl http://localhost:8081/auth/health # Auth
curl http://localhost:3001/health # Farmer
curl http://localhost:8000/health # Prediction
curl http://localhost:8082/crop?wsdl # Crop WSDL
curl http://localhost:8085/billing?wsdl # Billing WSDLVoir les guides dΓ©taillΓ©s:
- Guide de Tests Complet - Instructions dΓ©taillΓ©es pour tester chaque service
- Fichier de Tests JSON - Collection complète de tests API
- Backend: Spring Boot, Node.js, FastAPI, .NET Core
- Base de donnΓ©es: PostgreSQL, MongoDB Atlas
- SΓ©curitΓ©: JWT (HS256), Spring Security, BCrypt
- Communication: REST, SOAP (JAX-WS, CoreWCF)
- Conteneurisation: Docker, Docker Compose
- Gateway: Spring Cloud Gateway
- MAHAMADOU AMADOU HABOU - DΓ©veloppeur principal
Projet acadΓ©mique β Usage pΓ©dagogique uniquement.
Pour toute question ou problème :
- Consulter la documentation
- Ouvrir une issue GitHub
- Consulter le guide de dΓ©pannage
Version: 1.0
Dernière mise à jour: 17 décembre 2025