Le besoin
Les activités sur rendez-vous (salons, cliniques, studios, coachs) ont besoin d'un outil de réservation qu'elles maîtrisent — sans commission ni abonnement mensuel, et sans dépendre d'un agenda tiers.
La solution
- Calendrier 100% sur mesure (6 vues : mois, semaine, jour, timeline, ressources) avec glisser-déposer complet : créer, déplacer, redimensionner.
- Formulaires de réservation configurables par ressource : 19 types de champs personnalisés, avec durée et prix automatiques.
- Page publique de réservation avec détection de conflits (aucune double réservation) et blocs d'indisponibilité respectés.
- Tableau de bord admin (filtres, pagination, créneaux), e-mails traduits + rappel automatique J-1, upload de fichiers (MinIO/S3).
Décisions techniques
Vue 3 (Composition API, Pinia, Tailwind v4) pour une UI réactive ; Node 20/Express + Sequelize côté API ; PostgreSQL 16 pour garantir l'intégrité des créneaux au niveau base plutôt qu'en applicatif. Sécurité JWT (bcrypt, Helmet, rate limiting) et déploiement Docker en une commande.
Résultat
Un système de réservation complet et auto-hébergé : calendrier sur mesure (6 vues), formulaires personnalisables et zéro double réservation.
Ce que j'en retiens
La prévention des collisions se joue en base, pas dans l'UI : une contrainte PostgreSQL bien posée est plus fiable que dix vérifications côté client — et un calendrier sur mesure évite d'hériter des limites d'une lib tierce.
