Skip to content

About

API de mise en relation producteurs–acheteurs pour l'agriculture camerounaise : offres, commandes, livraisons, litiges. Laravel, Sanctum.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Agri-Connect API

Du champ à la table : direct, fiable, traçable.

API REST d'une place de marché agricole pour le Cameroun. Elle met en relation trois acteurs : les producteurs publient leurs récoltes, les acheteurs commandent et paient, les transporteurs livrent. Le paiement est conservé en séquestre jusqu'à la livraison, puis reversé aux producteurs.

Fonctionnement

flowchart LR
    P[Producteur] -->|publie une offre| O[Catalogue]
    A[Acheteur] -->|panier, commande| C[Commande]
    O --> C
    C -->|Mobile Money| S[Paiement en séquestre]
    C -->|attribution| T[Transporteur]
    T -->|livraison suivie| L[Livraison confirmée]
    L --> R[Reversement aux producteurs<br/>moins la commission]
    S --> R
Loading

Fonctionnalités

  • Quatre rôles : producteur, acheteur, transporteur, administrateur (Spatie Permission)
  • Authentification par jeton (Sanctum) avec vérification du téléphone par SMS
  • Catalogue : produits, catégories, offres avec gestion du stock, recherche, favoris
  • Panier et commandes multi-producteurs, suivi par article
  • Paiements : MTN Mobile Money, Orange Money, espèces ou virement, avec webhooks
  • Séquestre : l'argent est bloqué jusqu'à la livraison, puis réparti entre les producteurs, commission de la plateforme déduite
  • Logistique : regroupement des livraisons, choix du transporteur selon la zone et la capacité, calcul des distances, suivi de livraison
  • Prix du marché : suggestion de prix et tendance sur 30 jours par produit et par localité
  • Litiges, notes et avis, notifications (push, SMS, e-mail)
  • Statistiques par rôle : producteur, acheteur, transporteur

Architecture

Le code suit une séparation en couches :

Dossier Rôle
app/Http/Controllers/Api/V1/ Contrôleurs par domaine (Auth, Catalog, Cart, Orders, Payments, Deliveries…)
app/Http/Requests/ Validation des requêtes
app/Services/ Logique métier, organisée par domaine (Payments, Logistics, Orders, Analytics…)
app/Models/ 25 modèles Eloquent
app/Enums/ Statuts et types métier (commande, livraison, paiement, litige…)
app/Http/Resources/ Mise en forme des réponses JSON
database/migrations/ 32 migrations

Stack technique

Couche Technologie
Framework Laravel 11 (PHP 8.2+)
Authentification Laravel Sanctum
Rôles et permissions spatie/laravel-permission
Images Intervention Image
SMS Africa's Talking
Paiement API MTN Mobile Money, API Orange Money

Installation

Prérequis : PHP 8.2+, Composer, MySQL ou PostgreSQL.

git clone https://github.com/BelCodeur2005/agri-connect-api.git
cd agri-connect-api
composer install
cp .env.example .env
php artisan key:generate

Renseigner la base de données dans .env (et, si besoin, les clés MTN, Orange Money et Africa's Talking), puis :

php artisan migrate --seed
php artisan serve

L'API répond sur http://localhost:8000/api/v1.

État du projet

Le projet est en cours de développement :

  • l'intégration MTN Mobile Money et Orange Money est commencée (initiation du paiement, statut, webhooks) ; l'obtention du jeton MTN, les remboursements et le reversement aux producteurs restent à finaliser et sont simulés pour l'instant
  • l'optimisation des tournées de livraison utilise un algorithme simple, à améliorer
  • les tests automatisés ne sont pas encore écrits

About

API de mise en relation producteurs–acheteurs pour l'agriculture camerounaise : offres, commandes, livraisons, litiges. Laravel, Sanctum.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages