Julien Levesque Architecte solutions

← Tous les produits

Produit · Prise de rendez-vous

Ma Réservation : la prise de rendez-vous en ligne, sans commission et sans compte client.

Un service de réservation en ligne pour les petits établissements : instituts, coiffeurs, barbiers, garages, ateliers. Le client choisit sa prestation, la personne qui la réalise et un créneau libre, sans s'inscrire ; tout arrive dans le planning de l'établissement. Bâti sur le socle de Ma Commande, avec un métier entièrement nouveau.

Voir ma-reservation.app Parler de votre projet

Le planning d'un institut, à la semaine, filtrable par collaboratrice. Les rendez-vous à confirmer sont hachurés. Données de démonstration.

Le point de départ

Les grandes plateformes de réservation prélèvent une commission, imposent un compte au client et gardent la relation pour elles. Les petits établissements veulent seulement un agenda qui se remplit seul. Le périmètre a été tranché dès le départ, comme une décision d'architecture : pas d'encaissement, pas de caisse, ni TVA ni comptabilité. Dans Ma Réservation, « terminé » veut dire « prestation réalisée », jamais « payée ».

La réservation sur téléphone : prestation, personne, puis créneau.
La page publique d'un établissement, d'où le client réserve sans s'inscrire.

Les choix d'architecture

Ce qui ne se voit pas sur le site du produit, et qui fait qu'il tient.

Un socle éprouvé, repris plutôt que réécrit
Infrastructure, création des espaces, stockage, e-mails, authentification, portail d'abonnement : tout vient de Ma Commande. Seul le métier a été remplacé. Quand Ma Commande est passée à une architecture multi-clients partagée, Ma Réservation s'est alignée dessus en prenant son code comme spécification.
Un créneau ne se réserve qu'une fois
Chaque écriture prend un verrou PostgreSQL par journée et par établissement, puis relit et revérifie la disponibilité avant d'enregistrer. Un test envoie dix demandes simultanées sur le même créneau, réparties sur deux instances : une seule est retenue.
Des notifications sans file de messages
Les e-mails de confirmation et le rappel de la veille sont écrits dans la même transaction que le rendez-vous, puis expédiés par un traitement qui les réclame sans se bloquer. Pas de rendez-vous sans notification, pas de notification sans rendez-vous, et aucune brique de plus à exploiter.
L'isolation des clients en trois couches
Des clés étrangères composites qui empêchent la base de rattacher une donnée à un autre établissement, un filtre qui lève une erreur si une requête part sans établissement identifié, et un contrôle à l'enregistrement qui refuse toute écriture croisée. Une seule erreur de code ne suffit pas à faire fuiter des données.
Un cockpit interne jamais exposé
L'outil d'administration n'est pas accessible depuis Internet. Il lit les données de tous les établissements dans des transactions en lecture seule, et chacune de ses actions laisse une trace dans un journal d'audit immuable.
Près de 790 tests automatisés
Application, portail, administration et Worker Cloudflare sont couverts, contre un vrai PostgreSQL lancé dans un conteneur. Chaque établissement vit dans son propre fuseau horaire.

Pile technique .NET 10 · Blazor · EF Core 10 · PostgreSQL · Stripe · Cloudflare Workers · Scaleway

Ce que ça change pour votre projet

Réutiliser un socle sans le recopier à l'aveugle, garantir qu'une ressource rare ne soit attribuée qu'une fois, fiabiliser des notifications sans ajouter d'infrastructure : ces problèmes se retrouvent partout, de la logistique à la santé. Ma Réservation montre comment ils sont traités quand il faut en répondre en production.

Parler de votre projet

Les autres produits