175 lines
17 KiB
Markdown
175 lines
17 KiB
Markdown
# Requirements Document
|
|
|
|
**Spec : Site Vitrine SchotzimmO**
|
|
|
|
## Introduction
|
|
|
|
Le **Site Vitrine** est le site public de **SchotzimmO**, la plateforme SaaS multi-réseaux destinée aux mandataires immobiliers. Accessible sans authentification sur le domaine **schotzimmo.fr**, il constitue la porte d'entrée commerciale de la Plateforme : il présente l'offre (modules, packs tarifaires, réseaux de mandataire immobilier pris en charge), permet d'essayer une démonstration et oriente le visiteur vers la connexion de l'App.
|
|
|
|
Le Site Vitrine se présente comme une **page vitrine unique** (one-page, de type tunnel de vente) à défilement et navigation par ancres, surmontée d'un **en-tête persistant** (logo + bouton Connexion) et complétée d'un **pied de page** donnant accès à des **pages séparées** : Contact, Mentions légales, CGU et Politique de confidentialité (RGPD).
|
|
|
|
Le Site Vitrine ne contient **aucun parcours d'inscription** ni aucun mécanisme d'authentification propre : l'inscription et l'authentification relèvent du socle et de l'App. Le Site Vitrine se contente de **rediriger** le visiteur vers la page d'authentification de l'App (cf. `socle-plateforme`, Requirement 2 — Authentification et session) et vers la **connexion démo** sur le réseau fictif SchotzimmO (cf. `socle-plateforme`, Requirements 2 et 3). Le Site Vitrine ne persiste aucune donnée métier ; le Formulaire_Contact envoie simplement un e-mail via le service d'envoi déjà prévu par la Plateforme.
|
|
|
|
> **Note** : Ce document exprime le besoin **fonctionnel métier** (attendu fonctionnel, structure du site, contenus et règles de gestion) fourni par le Product Owner business. Les exigences **techniques** dérivées (stack frontend/backend commune à l'App, sous-dossier `Site/`, intégration du service d'envoi d'e-mails, rendu responsive, SEO, redirections d'URL) seront rassemblées dans le document `design-requirements.md`, organisé **en miroir** (même numérotation et même titre, suivis de « — aspects techniques »), à préciser conjointement par le PO business et le PO IT. Chaque exigence renvoie, lorsque pertinent, à son pendant technique dans `design-requirements.md`.
|
|
|
|
---
|
|
|
|
## Glossary
|
|
|
|
- **Site_Vitrine** : Le site public de SchotzimmO, accessible sans authentification sur le domaine schotzimmo.fr, présentant l'offre et orientant le visiteur vers l'App. Distinct de l'App (la Plateforme authentifiée décrite par la spec `socle-plateforme` et les specs Modules).
|
|
- **App** : La Plateforme authentifiée SchotzimmO (frontend et backend applicatifs), accessible après connexion, décrite par les specs `socle-plateforme` et Modules.
|
|
- **Visiteur** : Toute personne consultant le Site_Vitrine, sans authentification ni Compte requis.
|
|
- **Page_Vitrine** : La page unique (one-page) du Site_Vitrine, à défilement vertical et navigation par ancres, regroupant dans un ordre défini l'ensemble des Sections commerciales.
|
|
- **Section** : Un bloc de contenu de la Page_Vitrine, repérable par une ancre et atteignable depuis la navigation. Les Sections de la Page_Vitrine sont, dans l'ordre : Hero, Fonctionnalités, Tarifs, Réseaux pris en charge, Démo.
|
|
- **Section_Hero** : La première Section de la Page_Vitrine : accroche et présentation générale de SchotzimmO.
|
|
- **Section_Fonctionnalités** : La Section présentant les Modules de la Plateforme (Carnet d'adresses, KMS, CRM, Agenda, Facturation).
|
|
- **Section_Tarifs** : La Section présentant les trois Packs d'abonnement (Starter gratuit, Pro, Premium) et les Modules inclus dans chacun.
|
|
- **Section_Réseaux** : La Section présentant les Réseaux_Pris_En_Charge (IAD au lancement).
|
|
- **Section_Démo** : La Section invitant à essayer la démonstration, comportant le Bouton_Démo.
|
|
- **En_Tête** : La barre persistante affichée en haut du Site_Vitrine, contenant le logo SchotzimmO et le Bouton_Connexion, visible sur toutes les pages et sections.
|
|
- **Pied_De_Page** : La zone de bas de page du Site_Vitrine donnant accès aux Pages_Légales et à la page Contact.
|
|
- **Logo** : La marque visuelle SchotzimmO affichée dans l'En_Tête ; un clic sur le Logo ramène en haut de la Page_Vitrine.
|
|
- **Bouton_Connexion** : Le contrôle de l'En_Tête redirigeant le Visiteur vers la page d'authentification de l'App (cf. `socle-plateforme`, Requirement 2).
|
|
- **Bouton_Démo** : Le contrôle de la Section_Démo redirigeant le Visiteur vers la connexion démo de l'App sur le Réseau_Fictif (cf. `socle-plateforme`, Requirements 2 et 3).
|
|
- **Démo** : La démonstration de l'App ouverte au Visiteur, s'appuyant sur le Réseau_Fictif ; disponible en environnement de production et utilisée pour les tests en environnement de développement.
|
|
- **Réseau_Fictif** : Le réseau de démonstration SchotzimmO (réseau fictif) servant de support à la Démo (cf. `socle-plateforme`, Requirement 3 — Réseaux).
|
|
- **Module** : Une unité fonctionnelle de la Plateforme présentée dans la Section_Fonctionnalités (Carnet_Adresses, KMS, CRM, Agenda, Facturation). Défini au socle (cf. `socle-plateforme`).
|
|
- **Pack** : Une formule d'abonnement présentée dans la Section_Tarifs. Trois Packs : Starter (gratuit), Pro, Premium (cf. `socle-plateforme`, Requirement 7).
|
|
- **Réseau_Pris_En_Charge** : Un réseau de mandataire immobilier dont les mandataires peuvent utiliser SchotzimmO (IAD au lancement). Le terme « réseau de mandataire immobilier pris en charge » est employé plutôt qu'« affilié », aucun lien contractuel ne liant SchotzimmO à ces réseaux.
|
|
- **Formulaire_Contact** : Le formulaire de la page Contact permettant au Visiteur d'adresser un message (notamment pour signaler un nouveau réseau à implémenter), envoyé par e-mail sans aucune persistance.
|
|
- **Email_Contact** : L'e-mail engendré par la soumission du Formulaire_Contact, acheminé vers l'adresse de contact de l'exploitant via le service d'envoi d'e-mails de la Plateforme.
|
|
- **Page_Contact** : La page séparée (hors Page_Vitrine) hébergeant le Formulaire_Contact.
|
|
- **Pages_Légales** : L'ensemble des pages séparées à vocation légale et réglementaire : Mentions légales, CGU (Conditions Générales d'Utilisation) et Politique de confidentialité (RGPD).
|
|
- **Navigation_Ancres** : Le mécanisme de navigation interne à la Page_Vitrine amenant, par défilement, de l'En_Tête ou d'un menu vers la Section visée.
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
### Requirement 1: En-tête et accès à la connexion
|
|
|
|
**User Story:** En tant que visiteur, je veux disposer d'un en-tête persistant avec le logo SchotzimmO et un bouton de connexion, afin d'identifier le service et d'accéder à tout moment à la connexion de l'App.
|
|
|
|
> Exigences techniques associées (rendu de l'En_Tête, URL d'authentification de l'App, redirection) : `design-requirements.md`, Requirement 1.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. THE Site_Vitrine SHALL afficher un En_Tête contenant le Logo SchotzimmO et le Bouton_Connexion sur la Page_Vitrine, sur chaque Page_Légale et sur la Page_Contact.
|
|
2. WHEN le Visiteur sélectionne le Bouton_Connexion, THE Site_Vitrine SHALL rediriger le Visiteur vers la page d'authentification de l'App.
|
|
3. WHEN le Visiteur sélectionne le Logo depuis la Page_Vitrine, THE Site_Vitrine SHALL ramener le Visiteur en haut de la Page_Vitrine.
|
|
4. WHILE le Visiteur consulte la Page_Vitrine, une Page_Légale ou la Page_Contact, THE Site_Vitrine SHALL maintenir l'En_Tête visible pendant toute la durée du défilement vertical de la page.
|
|
5. WHEN le Visiteur sélectionne le Logo depuis une Page_Légale ou depuis la Page_Contact, THE Site_Vitrine SHALL afficher la Page_Vitrine et positionner le Visiteur en haut de celle-ci.
|
|
|
|
---
|
|
|
|
### Requirement 2: Page vitrine unique et navigation
|
|
|
|
**User Story:** En tant que visiteur, je veux parcourir une page unique claire et ordonnée, consultable sur mobile et en français, afin de découvrir l'offre SchotzimmO sans friction.
|
|
|
|
> Exigences techniques associées (one-page, ancres, responsive, langue, rendu du Pied_De_Page) : `design-requirements.md`, Requirement 2.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. THE Site_Vitrine SHALL présenter une Page_Vitrine unique regroupant, dans cet ordre et sans qu'aucune autre Section ne s'intercale, la Section_Hero, la Section_Fonctionnalités, la Section_Tarifs, la Section_Réseaux puis la Section_Démo.
|
|
2. THE Site_Vitrine SHALL afficher dans l'En_Tête une Navigation_Ancres comportant un élément cliquable distinct pour chacune des cinq Sections (Section_Hero, Section_Fonctionnalités, Section_Tarifs, Section_Réseaux, Section_Démo).
|
|
3. WHEN le Visiteur sélectionne un élément de la Navigation_Ancres, THE Site_Vitrine SHALL faire défiler la Page_Vitrine jusqu'à ce que le haut de la Section correspondante soit visible dans la zone d'affichage, sans recharger la Page_Vitrine.
|
|
4. THE Site_Vitrine SHALL afficher un Pied_De_Page contenant quatre liens cliquables distincts donnant accès respectivement à la Page_Contact, aux Mentions légales, aux CGU et à la Politique de confidentialité.
|
|
5. THE Site_Vitrine SHALL présenter l'intégralité de ses contenus textuels visibles en langue française uniquement, sans aucun contenu rédigé dans une autre langue.
|
|
6. WHERE le Site_Vitrine est consulté depuis un terminal mobile dont la largeur d'écran est inférieure ou égale à 768 pixels, THE Site_Vitrine SHALL adapter sa présentation à la largeur d'écran sans défilement horizontal, tout en conservant l'ordre des cinq Sections ainsi que l'accès à l'En_Tête et au Pied_De_Page.
|
|
7. IF le Visiteur sélectionne un élément de la Navigation_Ancres dont la Section cible est absente ou inaccessible, THEN THE Site_Vitrine SHALL maintenir l'affichage courant de la Page_Vitrine sans la recharger.
|
|
|
|
---
|
|
|
|
### Requirement 3: Section Fonctionnalités
|
|
|
|
**User Story:** En tant que visiteur, je veux comprendre les modules proposés par SchotzimmO, afin d'évaluer si la plateforme répond à mes besoins de mandataire.
|
|
|
|
> Exigences techniques associées (contenu éditorial des Modules, rendu de la Section) : `design-requirements.md`, Requirement 3.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. THE Section_Fonctionnalités SHALL présenter exactement les cinq Modules suivants, sans en omettre ni en ajouter : Carnet d'adresses, KMS, CRM, Agenda et Facturation.
|
|
2. THE Section_Fonctionnalités SHALL associer à chacun des cinq Modules présentés une description distincte de son rôle fonctionnel du point de vue du mandataire, de sorte qu'aucun Module ne reste sans description.
|
|
3. THE Section_Fonctionnalités SHALL désigner chaque Module par la dénomination exacte définie au socle (Carnet_Adresses, KMS, CRM, Agenda, Facturation) (cf. `socle-plateforme`).
|
|
|
|
---
|
|
|
|
### Requirement 4: Section Tarifs
|
|
|
|
**User Story:** En tant que visiteur, je veux consulter les formules tarifaires et les modules inclus, afin de choisir le pack adapté à mon activité.
|
|
|
|
> Exigences techniques associées (contenu éditorial des Packs, rendu de la Section) : `design-requirements.md`, Requirement 4.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. THE Section_Tarifs SHALL présenter exactement trois Packs, dans cet ordre : Starter (gratuit), Pro puis Premium.
|
|
2. THE Section_Tarifs SHALL indiquer, pour chaque Pack, la liste complète des Modules inclus en employant la dénomination des Modules définie au socle (cf. `socle-plateforme`, Requirement 8).
|
|
3. THE Section_Tarifs SHALL distinguer visuellement, pour chaque Pack, les Modules inclus des Modules non inclus.
|
|
4. THE Section_Tarifs SHALL afficher explicitement, pour le Pack Starter, la mention de sa gratuité et l'absence de coût d'abonnement.
|
|
5. THE Section_Tarifs SHALL présenter chaque Pack comme incluant l'ensemble des Modules des Packs de niveau inférieur (le Pack Pro inclut les Modules du Pack Starter ; le Pack Premium inclut les Modules des Packs Pro et Starter), de manière cohérente avec les Packs définis au socle (cf. `socle-plateforme`, Requirements 7 et 8).
|
|
|
|
---
|
|
|
|
### Requirement 5: Section Réseaux de mandataire immobilier pris en charge
|
|
|
|
**User Story:** En tant que visiteur mandataire, je veux savoir quels réseaux de mandataire immobilier sont pris en charge, afin de vérifier que SchotzimmO est compatible avec mon réseau.
|
|
|
|
> Exigences techniques associées (contenu éditorial des réseaux, rendu de la Section) : `design-requirements.md`, Requirement 5.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. THE Section_Réseaux SHALL présenter chaque Réseau_Pris_En_Charge de façon identifiable par son nom, incluant le réseau IAD nommé au lancement.
|
|
2. THE Section_Réseaux SHALL employer la dénomination « réseaux de mandataire immobilier pris en charge » pour désigner les Réseaux_Pris_En_Charge.
|
|
3. THE Section_Réseaux SHALL n'employer en aucun endroit le terme « affiliés » pour désigner les Réseaux_Pris_En_Charge.
|
|
4. WHERE un Visiteur souhaite signaler un réseau non encore pris en charge, THE Section_Réseaux SHALL afficher un renvoi explicite vers la Page_Contact.
|
|
5. WHEN le Visiteur sélectionne le renvoi vers la Page_Contact depuis la Section_Réseaux, THE Site_Vitrine SHALL afficher la Page_Contact.
|
|
|
|
---
|
|
|
|
### Requirement 6: Section Essayer la démo
|
|
|
|
**User Story:** En tant que visiteur, je veux essayer une démonstration de l'App, afin de me faire une idée concrète avant de m'engager.
|
|
|
|
> Exigences techniques associées (URL de connexion démo, Réseau_Fictif, environnements prod/dev) : `design-requirements.md`, Requirement 6.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. WHILE la Section_Démo est affichée, THE Site_Vitrine SHALL afficher un Bouton_Démo portant un libellé invitant le Visiteur à essayer la Démo.
|
|
2. WHEN le Visiteur sélectionne le Bouton_Démo, THE Site_Vitrine SHALL rediriger le Visiteur vers la connexion démo de l'App sur le Réseau_Fictif SchotzimmO.
|
|
3. IF la redirection vers la connexion démo de l'App ne peut pas aboutir après la sélection du Bouton_Démo, THEN THE Site_Vitrine SHALL maintenir le Visiteur sur la Section_Démo et afficher un message d'erreur indiquant que la Démo est momentanément indisponible.
|
|
4. THE Section_Démo SHALL afficher un message visible indiquant que la Démo s'appuie sur le Réseau_Fictif SchotzimmO et ne mobilise aucune donnée réelle de Réseau_Pris_En_Charge.
|
|
|
|
---
|
|
|
|
### Requirement 7: Contact par e-mail
|
|
|
|
**User Story:** En tant que visiteur, je veux adresser un message à l'exploitant SchotzimmO (notamment pour signaler un nouveau réseau à implémenter), afin d'obtenir une réponse par e-mail, sans qu'aucune donnée ne soit conservée.
|
|
|
|
> Exigences techniques associées (service d'envoi d'e-mails, absence de persistance, validation des champs) : `design-requirements.md`, Requirement 7.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. THE Page_Contact SHALL présenter un Formulaire_Contact comportant exactement trois champs obligatoires : le nom (1 à 100 caractères), l'adresse e-mail (1 à 254 caractères) et le message (1 à 2000 caractères) du Visiteur.
|
|
2. WHEN le Visiteur soumet le Formulaire_Contact avec les trois champs obligatoires renseignés et valides, THE Site_Vitrine SHALL engendrer un Email_Contact contenant le nom, l'adresse e-mail et le message saisis, à destination de l'adresse de contact de l'exploitant.
|
|
3. WHEN l'Email_Contact a été engendré avec succès, THE Site_Vitrine SHALL afficher au Visiteur un message de confirmation d'envoi distinct du Formulaire_Contact.
|
|
4. THE Site_Vitrine SHALL n'enregistrer aucune donnée du Formulaire_Contact de manière persistante, l'unique traitement des données saisies étant leur transmission dans l'Email_Contact.
|
|
5. IF un champ obligatoire du Formulaire_Contact est absent, vide ou dépasse sa longueur maximale autorisée, THEN THE Site_Vitrine SHALL afficher un message d'erreur identifiant chaque champ en défaut, conserver la saisie en cours et n'engendrer aucun Email_Contact.
|
|
6. IF l'adresse e-mail saisie ne contient pas un identifiant local suivi d'un caractère « @ » puis d'un nom de domaine comportant au moins un point, THEN THE Site_Vitrine SHALL refuser l'envoi, signaler que l'adresse e-mail est invalide et conserver la saisie en cours.
|
|
7. IF l'envoi de l'Email_Contact échoue, THEN THE Site_Vitrine SHALL informer le Visiteur de l'échec de l'envoi, l'inviter à réessayer et conserver l'intégralité de la saisie en cours.
|
|
|
|
---
|
|
|
|
### Requirement 8: Pages légales
|
|
|
|
**User Story:** En tant que visiteur, je veux accéder aux mentions légales, aux CGU et à la politique de confidentialité, afin de connaître mes droits et les conditions d'utilisation du service.
|
|
|
|
> Exigences techniques associées (pages séparées, routes dédiées, rendu) : `design-requirements.md`, Requirement 8.
|
|
|
|
#### Acceptance Criteria
|
|
|
|
1. THE Site_Vitrine SHALL fournir trois Pages_Légales distinctes et indépendantes de la Page_Vitrine : une page pour les Mentions légales, une page pour les CGU et une page pour la Politique de confidentialité (RGPD).
|
|
2. WHEN le Visiteur sélectionne un lien de Pied_De_Page vers une Page_Légale, THE Site_Vitrine SHALL afficher la Page_Légale correspondante sur une page séparée de la Page_Vitrine.
|
|
3. IF une Page_Légale sélectionnée est indisponible, THEN THE Site_Vitrine SHALL maintenir le Visiteur sur une page comportant le Pied_De_Page et afficher un message indiquant que la page demandée est momentanément indisponible.
|
|
4. THE Politique de confidentialité SHALL décrire au minimum la finalité du traitement des données du Formulaire_Contact, leur transmission par e-mail uniquement et l'absence de toute persistance de ces données.
|
|
5. THE Site_Vitrine SHALL présenter dans le Pied_De_Page de chaque page (Page_Vitrine, Page_Contact et chaque Page_Légale) un lien actif vers chacune des trois Pages_Légales.
|