API v1 · REST

L'artisanat béninois
à portée de main

Plateforme de mise en relation entre artisans, clients et fournisseurs d'équipement. Une API modulaire, sécurisée, conçue pour le marché béninois.

36
Migrations
16
Contrôleurs
30+
Endpoints REST
163
Tests — tout vert

Modules de l'API

Chaque module est isolé dans un dossier app/Domain/{Module}/ avec ses propres Controllers, Models, Migrations, Tests.

🔐

Auth

Inscription multi-profils, connexion, tokens Sanctum, vérification email par code 6 chiffres, rate limiting.

16 routes
🛡️

RBAC

27 permissions, rôles (super_admin, manager, agent_back_office, gérant), middleware de vérification.

5 routes
📂

Catalogue

Catégories, prestations, règles de tarification. CRUD admin + consultation publique.

8 routes
📋

Demandes

Workflow complet brouillon → terminée. Parcours A (admin propose artisans) + Parcours B (artisans soumettent devis).

18 routes

Avis

Notation 1-5 après mission, modération admin, calcul de moyenne artisan.

4 routes
💬

Messagerie

Conversations, messages, appel vidéo (Premium), notifications multi-canal.

8 routes
👤

Profil Artisan

Certifications (validation admin), réalisations, 5 badges, disponibilité, zone d'intervention.

8 routes
🔧

Équipements

Demandes d'équipement, devis fournisseurs, suivi livraison, workflow liste_envoyée → livrée.

8 routes
📝

Blog & Support

Articles (brouillon/publié/archivé), formulaire contact avec rate limit, traitement admin.

7 routes
⚙️

Services Transverses

PricingService (estimation × surface × urgence), ArtisanMatchingService (artisans vérifiés + disponibles + zone).

2 services

Parcours Client

Scénario complet : un client souhaite faire rénover sa toiture — de l'inscription à la notation de l'artisan.

Rénovation de toiture à Cotonou

Suivez chaque étape de l'interaction entre les acteurs de la plateforme.

Parcours A — Artisans proposés par l'admin
1 Client

Inscription & connexion

Le client crée un compte via /api/v1/auth/register, reçoit son token Sanctum, vérifie son email avec le code à 6 chiffres reçu.

POST /api/v1/auth/register · POST /api/v1/auth/email/verify
2 Client

Création de la demande

Le client parcourt le catalogue, trouve la prestation "Couverture & Toiture", puis crée une demande avec description, surface et adresse.

GET /api/v1/categories · POST /api/v1/demandes
3 Admin

Validation & proposition d'artisans

L'admin valide la demande (statut → validée), consulte les artisans disponibles via l'ArtisanMatchingService, et propose 2 à 3 artisans qualifiés.

PUT /api/v1/admin/demandes/{id}/statut · POST /api/v1/admin/demandes/{id}/artisans
4 Client

Sélection & confirmation

Le client consulte la liste des artisans proposés, lit leurs profils (certifications, réalisations, avis), et en sélectionne un.

GET /api/v1/demandes/{id}/artisans · PUT /api/v1/demandes/{id}/artisans/{prop}/selectionner
5 Admin

Création de la mission

L'admin crée la mission liée à la demande, fixe la date de début, le montant final et la garantie.

POST /api/v1/admin/demandes/{id}/mission
6 Admin

Suivi & clôture

L'admin suit l'avancement, met à jour le statut (en_cours → terminée). La demande passe automatiquement à "terminée".

PUT /api/v1/admin/missions/{id}/statut
7 Client

Notation & avis

Le client note l'artisan de 1 à 5 et laisse un commentaire. L'admin modère l'avis avant publication. La note moyenne de l'artisan est recalculée.

POST /api/v1/missions/{id}/avis · PUT /api/v1/admin/avis/{id}/moderer