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/...
- Établissement — Nom, adresse, ville, pays, téléphone, email, devise, fuseau, classement étoiles. Crée l’établissement et inscrit le propriétaire comme
OWNER. - Points de vente (optionnel) — Restaurant, bar, piscine, room service, boutique, spa…
- 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é).
- É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.
- Paiements (optionnel) — Cocher les méthodes acceptées : Espèces, Carte, Virement, Mobile Money (Orange/Wave/Free), Moov Money, Mixx by YAS, FedaPay.
- 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 :
- Changement de mot de passe (bloquant) — Min 8 caractères, confirmation. Désactive le flag
mustChangePassword. - Acceptation CGU (bloquant) — Lecture intégrale puis case à cocher. Voir
docs/CGU.md. - Acceptation RGPD (bloquant) — Politique de protection des données en 8 points. Voir
docs/RGPD.md. - Profil utilisateur (skippable) — Téléphone, URL de photo, langue préférée (FR/EN/AR).
- 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.mdetfrontend/src/app/user-onboarding/terms/page.tsx(constanteCGU_TEXT)docs/RGPD.mdetfrontend/src/app/user-onboarding/rgpd/page.tsx(constanteRGPD_TEXT)