Premiers pas : l'onboarding guidé
L'assistant qui configure votre établissement au premier accès — 7 étapes pour un hôtel, 6 pour tous les autres métiers.
À la première connexion d’un nouveau tenant, un assistant guide le propriétaire avant l’accès au dashboard — 7 étapes pour un hôtel, 6 pour tous les autres métiers. L’étape de configuration spécifique (Chambres pour un hôtel) est remplacée par une étape adaptée à votre activité, pas simplement sautée.
Onboarding tenant (Phase A) — /onboarding/...
- Établissement — Nom, adresse, ville, pays, téléphone, email, devise, fuseau. Crée l’établissement et inscrit le propriétaire comme
OWNER. - Points de vente (optionnel) — un ou plusieurs comptoirs/unités selon votre activité.
- Configuration métier — pour un hôtel : l’étape Chambres, avec 10 modèles prédéfinis (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) qui créent les chambres en lot, ou une saisie manuelle ligne par ligne. Pour les 10 autres métiers, cette étape est remplacée par une configuration adaptée à votre activité.
- É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émonstration.
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. Exemple pour un hôtel :
- 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
Pour les autres métiers, le contenu du tour suit les rôles et modules réellement activés pour votre établissement (voir Le tableau de bord, par rôle et par métier). 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 enregistrements [DÉMO] associés à votre établissement.
⚠️ 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)