Système de gestion agricole distribué basé sur une architecture orientée services (SOA) avec microservices REST et SOAP.
Java Node.js Spring Boot MongoDB Docker
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/health
Documentation 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 WSDL
Voir 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