Aller au contenu
Retour aux projets

SalonSync

Votre salon se remplit pendant que vous travaillez.

Créateur & ingénieur full-stack

Plateforme SaaS moderne pour barbershops et salons : réservation en ligne, rendez-vous, clients, file d’attente et sans rendez-vous, recettes et notifications, avec un assistant de réservation IA.

LaravelPHPNext.jsTypeScriptPostgreSQLDockerOpenAI
Vue d’ensemble du tableau de bord SalonSync : rendez-vous du jour, file d’attente, barbiers et recettes

Présentation

SalonSync est un SaaS multi-tenant pour barbershops et salons, en ligne sur salonsync.ma. Chaque salon dispose d’une page de réservation publique avec un assistant IA, et l’équipe pilote sa journée depuis un seul tableau de bord : agenda, file d’attente en direct et clients sans rendez-vous, fiches clients, prestations et recettes, en français, arabe ou anglais.

Problématique

Les barbiers et les équipes de salon gèrent souvent réservations, clients sans rendez-vous, fiches clients, file d’attente, rappels et opérations quotidiennes à la main ou avec des outils dispersés : appels, messages privés, agenda papier et caisse comptée en fin de semaine.

Solution

SalonSync réunit réservations, rendez-vous, clients, barbiers, prestations, file d’attente, notifications et gestion dans une seule plateforme moderne, avec une page de réservation publique et un assistant IA qui réserve de vrais créneaux disponibles.

Fonctionnalités clés

  • Page de réservation en ligne

    Une page publique par salon avec les prestations, les prix, les durées, l’équipe et les créneaux réellement libres. Le client réserve en quelques gestes et reçoit une référence et une page de suivi en direct.

  • Assistant de réservation IA

    Répond aux clients sur la page de réservation et prend de vrais rendez-vous. Il ne travaille qu’avec ce que renvoie la base de données (prestations, barbiers, créneaux libres) : il ne peut pas inventer un prix ou une heure.

  • Rendez-vous & agenda

    Les réservations du jour par barbier, avec le statut de chaque passage : confirmé, au fauteuil, terminé.

  • File d’attente & sans rendez-vous

    Montre qui attend et qui est à quel fauteuil, avec des temps d’attente recalculés à partir de ce qui s’est réellement passé, et propose un fauteuil pour un client sans rendez-vous sans casser les réservations.

  • Gestion des clients

    Des fiches clients construites à partir des réservations déjà prises : historique des visites et habitués.

  • Équipe & plannings

    Profils des barbiers et horaires par jour avec pauses, pour que la page de réservation ne vende jamais une heure où personne n’est là.

  • Prestations & tarifs

    La carte des prestations de chaque salon, avec prix et durées, utilisée par la page de réservation, l’assistant et l’agenda.

  • Recettes & suivi des paiements

    Enregistre si et comment chaque passage a été réglé : espèces, carte, en ligne ou autre. SalonSync enregistre les paiements ; il ne les encaisse pas.

  • Statistiques & rapports

    Rapports de chiffre d’affaires et de présence calculés à partir des passages enregistrés.

  • Notifications Telegram

    Les barbiers sont prévenus sur Telegram des nouvelles réservations, modifications, annulations et des clients attendus sous peu.

  • Avis clients

    Les clients peuvent laisser un avis, masqué jusqu’à validation par le gérant.

  • Réservation & rappels WhatsApp

    Bientôt disponible

    Réservation via l’assistant et rappels de rendez-vous sur le numéro WhatsApp Business du salon.

  • Notifications par e-mail

    Bientôt disponible

    Confirmations et rappels de réservation par e-mail.

Expérience produit

Deux interfaces partagent une même API. Côté public, la page de réservation du salon : pensée mobile, dans la langue du client, à l’image du salon plutôt que d’un logiciel. Côté privé, le tableau de bord utilisé par le gérant et l’équipe pendant la journée : agenda, écran de file d’attente, la journée de chaque barbier, clients, rapports et réglages. Un espace d’administration de la plateforme gère les salons et les offres.

Architecture

  • →API REST Laravel sur PHP 8.4 avec authentification Sanctum ; contrôleurs légers au-dessus d’une couche de services.
  • →Frontend Next.js (App Router) écrit en TypeScript avec React et Tailwind CSS.
  • →Multi-tenant dans une seule base PostgreSQL : chaque ligne porte l’identifiant du salon, et un scope global limite chaque requête au salon courant. Un middleware le définit à partir de l’utilisateur connecté, de l’URL de la page de réservation ou du webhook entrant.
  • →Assistant IA : une boucle d’appels d’outils OpenAI pour lister prestations et barbiers, trouver des créneaux libres, créer ou annuler une réservation. Les outils prennent des noms plutôt que des identifiants, et les conversations sont conservées par salon et par canal.
  • →Tableau de bord temps réel via les websockets Laravel Reverb : le serveur diffuse un petit signal « ceci a changé » sur un canal privé par salon et l’écran recharge, au lieu d’interroger en boucle.
  • →Traitements en arrière-plan sur une file Laravel et un planificateur : notifications, rappels et demandes d’avis ne ralentissent jamais une requête.
  • →Déployé avec Docker Compose (Nginx, application PHP, worker de file, planificateur, PostgreSQL) depuis GitHub Actions. La CI exécute la suite PHPUnit, l’analyse statique Larastan et Pint.

Stack technique

Backend
PHP 8.4LaravelLaravel SanctumLaravel ReverbREST API
Frontend
Next.js (App Router)ReactTypeScriptTailwind CSS
Données
PostgreSQL
Infrastructure
Docker ComposeNginxGitHub Actions
Integrations
OpenAITelegram Bot API
Qualité
PHPUnitLarastanLaravel Pint

Défis techniques

Aucune double réservation, quel que soit le canal

Un créneau peut être pris au même moment depuis la page de réservation, l’assistant ou le tableau de bord. Le service de réservation revérifie la disponibilité dans une transaction, si bien que deux clients ne peuvent jamais obtenir le même fauteuil à la même heure.

Isolation des salons par défaut

L’isolation n’est pas laissée à chaque contrôleur. Un scope global rend chaque requête propre au salon, sauf exception explicite dans le code, ce qui garde les exceptions rares et faciles à retrouver.

Un assistant IA qui ne peut rien inventer

Le modèle ne répond jamais de mémoire sur les prix ou les disponibilités. Chaque information vient d’un outil qui lit la base, et la réservation passe par le même service qu’une réservation manuelle.

Des temps d’attente fidèles à la salle

Une file d’attente est une estimation mouvante. Les temps sont recalculés à partir de ce qui s’est réellement passé (coupes qui débordent, clients sans rendez-vous) et non des heures réservées.

Du temps réel sans interrogations lourdes

L’agenda rechargeait toute la journée toutes les 15 secondes dans chaque onglet ouvert. Il écoute désormais un petit signal par salon et ne recharge que lorsque quelque chose a changé.

Choix produit

  • →Enregistrer les paiements plutôt que les encaisser : le salon garde son terminal et ses espèces, SalonSync note ce qui a été payé et comment.
  • →Une page de réservation plutôt qu’un site web : un seul lien qui montre prestations, prix et créneaux libres, et prend la réservation.
  • →Un seul assistant pour tous les canaux, pour qu’un nouveau canal n’implique pas une seconde série de règles.
  • →Les offres sont un attribut de chaque salon : passer de l’offre gratuite de lancement aux offres payantes est une vérification, pas une refonte.
  • →Trois langues dès le départ : français, arabe et anglais.

Statut actuel

SalonSync est en ligne sur salonsync.ma, en phase de lancement avec une offre gratuite, et en développement actif. Aucun chiffre d’utilisation n’est publié ici.

Captures d’écran

Capturées sur salonsync.ma. Les noms et chiffres sont ceux du salon d’exemple présenté sur le site public.

Page de réservation en ligne SalonSync : prestations avec prix et durées, et créneaux libres
Page de réservation en ligne SalonSync : prestations avec prix et durées, et créneaux libres
Écran de file d’attente SalonSync : qui est au fauteuil et qui attend
Écran de file d’attente SalonSync : qui est au fauteuil et qui attend

Liens

Visiter salonsync.ma ↗

Architecture associée

Me contacter