Documentation / Premiers pas

Premiers pas : l'onboarding guidé

L'assistant en 6 étapes qui configure votre établissement au premier accès.

À la première connexion d’un nouveau tenant, un assistant guide le propriétaire en 6 étapes obligatoires avant l’accès au dashboard.

Onboarding tenant (Phase A) — /onboarding/...

  1. Établissement — Nom, adresse, ville, pays, téléphone, email, devise, fuseau, classement étoiles. Crée l’établissement et inscrit le propriétaire comme OWNER.
  2. Points de vente (optionnel) — Restaurant, bar, piscine, room service, boutique, spa…
  3. Chambres — Au choix :
    • Modèle prédéfini : 10 templates disponibles (maison d’hôtes, auberge, petit hôtel, hôtel boutique, hôtel d’affaires, hôtel moyen, grand hôtel, resort/lodge, motel, résidence). Crée les chambres en lot avec numérotation automatique (101, 102…).
    • Saisie manuelle : ligne par ligne (numéro, type, prix/nuit, capacité).
  4. Équipe — Création des premiers comptes employés avec un mot de passe temporaire généré (copiable, regénérable). L’admin communique manuellement ce mot de passe à chaque employé. Les comptes sont flagués pour forcer le changement de mot de passe au premier login.
  5. Paiements (optionnel) — Cocher les méthodes acceptées : Espèces, Carte, Virement, Mobile Money (Orange/Wave/Free), Moov Money, Mixx by YAS, FedaPay.
  6. Terminé — Choix : démarrer directement OU ajouter des données de démo (5 clients fictifs, 4 réservations, 1 dépense — tous tagués [DÉMO]).

L’état est stocké dans Tenant.settings.onboarding. L’utilisateur peut quitter et reprendre — il revient toujours à l’étape courante. Aucun accès au reste de la plateforme tant que l’étape done n’est pas atteinte (middleware requireOnboardingCompleted).

Onboarding utilisateur (Phase B) — premier login de chaque employé

À chaque premier login d’un utilisateur invité, il enchaîne :

  1. Changement de mot de passe (bloquant) — Min 8 caractères, confirmation. Désactive le flag mustChangePassword.
  2. Acceptation CGU (bloquant) — Lecture intégrale puis case à cocher. Voir docs/CGU.md.
  3. Acceptation RGPD (bloquant) — Politique de protection des données en 8 points. Voir docs/RGPD.md.
  4. Profil utilisateur (skippable) — Téléphone, URL de photo, langue préférée (FR/EN/AR).
  5. Bandeau cookies (sur dashboard) — 3 choix : Tout accepter / Essentiels uniquement / Refuser. Disparaît après choix, persisté côté serveur (User.cookieConsent).

Tour produit

Au premier passage sur le dashboard, un popover en bas à droite présente 3-4 fonctionnalités clés adaptées au rôle :

  • OWNER : Tableau de bord, Établissements, Chambres, Utilisateurs
  • DAF : Tableau de bord, Rapports, Décaissements
  • MANAGER : Réservations, Ménage, Approbations
  • CLEANER : Ménage, Badgeuse, Mes congés
  • EMPLOYEE : Badgeuse, Mes congés

Dismissible en un clic, mémorisé dans localStorage — n’est jamais re-présenté pour le même navigateur.

Suppression des données de démo

Si vous avez choisi de générer des données de démo, un panneau « Données de démonstration » apparaît dans /dashboard/settings (visible uniquement quand des données démo existent). Le bouton « Supprimer les données de démo » efface tous les clients [DÉMO], leurs réservations, factures, paiements et dépenses associées.

⚠️ Important : les textes CGU et RGPD sont des placeholders. Avant exploitation réelle, faites-les valider par un juriste/DPO et remplacez :

  • docs/CGU.md et frontend/src/app/user-onboarding/terms/page.tsx (constante CGU_TEXT)
  • docs/RGPD.md et frontend/src/app/user-onboarding/rgpd/page.tsx (constante RGPD_TEXT)