
Le magasin voulait une réservation entièrement autonome, ouverte à toute heure, sans ajouter la moindre charge administrative à l'équipe ni modifier ses habitudes de travail. Il souhaitait aussi ne verser aucune commission à une plateforme de réservation tierce.
La contrainte structurante découle directement de cette ambition : le logiciel de caisse Orisha G8 reste la référence unique du magasin pour les produits, les clients et les factures. La plateforme ne devait donc pas le remplacer, mais dialoguer avec lui. J'ai retenu un échange par fichiers déposés sur un serveur FTP : les fiches clients descendent de la caisse vers le site, les commandes du site remontent automatiquement vers la caisse. Personne ne saisit deux fois la même information. Ce dialogue a demandé une gestion fine des encodages de caractères, une table tampon et un journal de synchronisation.
Deux autres mécanismes ont demandé un travail particulier. Chaque vélo est suivi à l'exemplaire, avec son numéro de série et son état : le calcul de disponibilité croise les réservations en cours, les horaires réels d'ouverture, les jours de fermeture, les jours spéciaux et un délai de préparation entre deux locations. La caution, elle, n'est jamais encaissée. La carte est enregistrée à la réservation, une autorisation bancaire est posée automatiquement à l'approche du départ, puis libérée au retour du vélo. Le client n'avance rien, le magasin reste couvert.
L'architecture sépare deux besoins distincts. Le site public repose sur Astro, pour des pages légères et directement indexables par les moteurs de recherche. L'application de gestion repose sur Next.js et une base PostgreSQL, avec Stripe pour les paiements et les empreintes bancaires. L'ensemble est conteneurisé avec Docker et déployé en continu. Le magasin est propriétaire de sa plateforme : ni abonnement, ni commission.



