Roland Djenwa
← Retour aux projets
SaaS · Gestion hôtelièreEn ligne · 2024 – Present

GuestiLog

La gestion hôtelière pensée pour l'Afrique : réservations, chambres, facturation et ménage au même endroit, même quand le réseau tombe.

GuestiLog est une plateforme de gestion hôtelière pensée pour l'Afrique, où le réseau n'est pas toujours fiable. Elle réunit au même endroit les réservations, les chambres, les clients (dont les VIP), le check-in et le check-out, la facturation en PDF, le suivi du ménage par chambre et les indicateurs du jour, comme le taux d'occupation et les revenus. Elle reste utilisable sans connexion : une réception peut continuer à travailler, puis tout se synchronise au retour du réseau. L'application s'installe comme une application sur mobile, tablette et ordinateur. Elle se vend en trois forfaits (Starter, Pro, Premium) selon la taille de l'établissement, avec un essai gratuit, et la gestion multi-établissements est prévue sur les offres supérieures.

Le frontend est une PWA React (Vite, TanStack Router et Query) en cinq couches : coque installable précachée par un service worker, cache réseau des lectures, persistance du cache dans IndexedDB, file d'écritures hors ligne, et session dégradée. Les actions éligibles sont mises en file, affichées de façon optimiste, marquées « à synchroniser », puis rejouées au retour du réseau. Rejouer ne doit jamais créer de doublon, d'où une clé d'idempotence côté API. Le jeton d'accès ne vit qu'en mémoire et rien de secret n'est persisté. L'API NestJS sur PostgreSQL est conçue pour servir plusieurs hôtels sur une même instance, chacun sur son sous-domaine, avec une colonne de tenant, un contexte propagé automatiquement et la sécurité au niveau des lignes en filet de sécurité. Le statut d'une chambre est séparé en axes indépendants : l'occupation se déduit des réservations, la propreté du ménage. Les forfaits désactivent sans jamais supprimer, l'abonnement se règle en Mobile Money par callback, et les écritures comptables sont synchronisées vers Dolibarr avec reprises programmées.

Un hôtel ne peut pas arrêter d'enregistrer des clients parce que le réseau est coupé : le hors-ligne est la condition d'usage du produit, pas une fonctionnalité de confort.

Défis techniques

  • Travailler sans connexion sans créer de doublons : écritures mises en file, affichées de façon optimiste, puis rejouées avec une clé d'idempotence côté API.
  • Servir plusieurs hôtels sur une même instance sans jamais mélanger leurs données : colonne de tenant, contexte propagé automatiquement et sécurité au niveau des lignes en filet de sécurité.
  • Un statut de chambre qui ne mélange plus occupation, propreté et disponibilité : chaque axe a sa propre source de vérité.
  • Des forfaits qui limitent sans détruire : un downgrade désactive de façon réversible, car réservations et factures doivent rester intactes.
  • Ne rien persister de secret hors ligne : le jeton d'accès reste en mémoire et la session dégradée n'affiche que des données déjà obtenues.

Rôle

Développeur Logiciel — AD2S

SaaSHospitalityOffline-First