Skip to content

Micro services for Agri App based on service oriented architecture

Notifications You must be signed in to change notification settings

Mahamadou-dev/AgriServices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

103 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌾 AgriServices - Plateforme SOA de Gestion Agricole

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


🎯 Description

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.

FonctionnalitΓ©s principales

  • πŸ” 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

πŸ—οΈ Architecture

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 β”‚
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Technologies par service

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

πŸš€ DΓ©marrage Rapide

PrΓ©requis

Installation

  1. Cloner le repository
git clone https://github.com/Mahamadou-dev/AgriServices.git
cd AgriServices
  1. Configurer les variables d'environnement
cd docker
cp .env.example .env
# Γ‰diter .env avec vos configurations MongoDB Atlas
  1. DΓ©marrer tous les services
docker compose up -d
  1. 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

Documentation complète disponible dans le dossier /documentation :

πŸš€ Guides de DΓ©marrage

πŸ–₯️ Documentation Frontend

πŸ“š Documentation Technique

βš™οΈ Configuration & DΓ©ploiement


πŸ”§ DΓ©veloppement

Structure du projet

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

Compilation locale

Auth Service & API Gateway (Java)

cd services/auth-service
./mvnw clean compile

Farmer Service (Node.js)

cd services/farmer-service
npm install
npm start

πŸ“‘ API Endpoints

Via API Gateway (http://localhost:8080)

Authentification

  • POST /auth/register - CrΓ©er un compte
  • POST /auth/login - Se connecter
  • GET /auth/validate - Valider un token

Farmers

  • POST /api/farmers - CrΓ©er un agriculteur
  • GET /api/farmers - Lister les agriculteurs
  • GET /api/farmers/:id - Obtenir un agriculteur
  • PUT /api/farmers/:id - Modifier un agriculteur
  • DELETE /api/farmers/:id - Supprimer un agriculteur

PrΓ©dictions

  • POST /api/predict/yield - PrΓ©dire le rendement
  • POST /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.


πŸ§ͺ Tests

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:


πŸ› οΈ Technologies

  • 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

πŸ‘₯ Contributeurs

  • MAHAMADOU AMADOU HABOU - DΓ©veloppeur principal

πŸ“„ Licence

Projet acadΓ©mique β€” Usage pΓ©dagogique uniquement.


πŸ†˜ Support

Pour toute question ou problème :

  1. Consulter la documentation
  2. Ouvrir une issue GitHub
  3. Consulter le guide de dΓ©pannage

Version: 1.0
Dernière mise à jour: 17 décembre 2025

Releases

No releases published

Packages

 
 
 

Contributors