LeBonResto : marketplace de restaurants
Ma propre marketplace de restaurants au Maroc : les clients trouvent et réservent, les restaurateurs gèrent leur fiche et les administrateurs pilotent la plateforme.

Aperçu
LeBonResto aide les clients à découvrir des restaurants dans les villes marocaines, à consulter menus et photos et à réserver une table. Je l'ai construit avec trois applications Next.js (site client, espace restaurateur, panneau d'administration) sur une API NestJS avec Prisma et PostgreSQL, plus un site vitrine pour les restaurants et les partenaires. Le projet a commencé comme une extension WordPress avec des cartes Leaflet, puis est devenu une API NestJS sur Supabase, avant d'arriver à sa version full-stack actuelle.
Le problème
Au Maroc, beaucoup de restaurants n'ont pas de vraie page en ligne, et les clients ont du mal à comparer les adresses par ville, cuisine ou équipements et à réserver sans appeler. Les restaurateurs ont aussi besoin d'un seul endroit pour tenir à jour menus, horaires, événements et réservations.
Ce que j'ai construit
J'ai développé une API NestJS découpée en modules (restaurants, menus et plats, horaires, événements, réservations, avis, favoris, notifications, statistiques) avec Prisma sur PostgreSQL, un cache Redis et MinIO pour les images. Clients, restaurateurs et administrateurs ont chacun leur authentification (JWT, jetons de rafraîchissement, OTP, connexion Google pour les clients). Le site client propose des filtres par ville, catégorie et tags, une vue carte Leaflet, des fiches restaurant avec avis et une réservation en plusieurs étapes ; restaurateurs et administrateurs disposent de tableaux de bord avec graphiques. Les événements de réservation déclenchent des notifications e-mail et WhatsApp via Twilio, et une tâche planifiée gère la confirmation automatique.
Résultats
- Trois applications web (client, restaurateur, admin) sur une même API, avec un package UI partagé
- Tests Playwright (smoke et accessibilité) et workflow Lighthouse CI sur GitHub Actions
- Mise en production avec Docker Compose et Nginx sur une VM, avec scripts de sauvegarde et de restauration de la base et des médias
- Site vitrine avec formulaires pour restaurateurs et investisseurs, blog, tarifs et sitemap
- Historique du projet : extension WordPress, puis API Supabase, puis la plateforme actuelle NestJS et Prisma
Points clés
- Recherche et filtres par ville, catégorie et tags, avec vue carte
- Réservation de table en plusieurs étapes avec suivi du statut
- Espace restaurateur : menus, plats, photos, horaires, événements et statistiques
- Panneau d'administration : modération des restaurants et des restaurateurs, journaux d'audit, notifications et réglages
- Notifications WhatsApp et e-mail pour les réservations
- Bases du SEO : JSON-LD des restaurants, sitemap et robots


