📋 Analyse des besoins · Phase 1 · 3–4 mois

MVP 1 — Fondations solides

Spécifications fonctionnelles détaillées, user stories, critères d'acceptation et plan de développement pour la première phase d'Immozy.

25
Fonctionnalités
3
Rôles utilisateurs
48
User stories
3–4
Mois estimés
12
Semaines de dev
KPIs & supervision
User stories
Planning 12 semaines
Risques & mitigation
🏠

Consultation des annonces

👤 Grand Public · 🏢 Agence · 🔧 Admin

📋 Fiche bien complète MUST
Page détaillée de chaque annonce avec toutes les informations nécessaires à la prise de décision.
  • Galerie photos haute qualité (carousel, plein écran)
  • Plan d'étage 2D obligatoire sur chaque annonce
  • Caractéristiques : surface, chambres, SDB, garage, jardin, PEB
  • Prix + historique des prix du bien (remises en vente)
  • Localisation sur carte interactive (sans révéler l'adresse exacte)
  • Description libre du vendeur/agence
  • Informations légales : PEB, précompte immobilier, charges
  • Badges : Nouveau (< 7j), Prix réduit, Sous offre, Vendu
👤 Public 🏢 Agence 🔧 Admin
📜 Historique des prix MUST
Transparence totale sur l'historique du bien — fonctionnalité absente sur Immoweb.
  • Timeline des prix successifs du bien
  • Dates de mise en vente / retrait / republication
  • Variation du prix en % depuis la 1re mise en vente
  • Durée moyenne sur le marché
👤 Public 🏢 Agence
💡 Note technique

Table listing_price_history liée à chaque listing_id. Trigger automatique à chaque modification de prix.

🖼 Galerie immersive SHOULD
Visualisation optimisée des photos pour maximiser l'engagement et réduire les visites inutiles.
  • Carousel responsive avec navigation clavier
  • Mode plein écran / lightbox
  • Miniatures avec catégories (salon, cuisine, chambre…)
  • Compteur de photos
  • Lazy loading pour performances mobile
👤 Public
🖼 Wireframe — Fiche bien
📸
🔍

Recherche & Filtres

👤 Grand Public · 🏢 Agence

🔍 Recherche géographique MUST
Recherche par commune, quartier ou code postal avec autocomplétion.
  • Autocomplétion des communes belges (FR + NL)
  • Recherche multi-communes simultanée
  • Rayon kilométrique autour d'un point
  • Historique des recherches récentes
👤 Public
🗺 Carte interactive MUST
Vue carte fluide et stable — principal point faible d'Immoweb mobile.
  • Clustering des marqueurs (agrégation par zoom)
  • Basculement liste ↔ carte en temps réel
  • Dessin de zone personnalisée (polygone libre)
  • Affichage du prix sur le marqueur
  • Performances optimisées mobile
👤 Public
💡 Note technique

Mapbox GL JS avec clustering côté client. Données via GET /search/geo?bbox= avec pagination cursor.

⚙️ Filtres avancés MUST
Filtres complets pour affiner la recherche selon tous les critères importants.
  • Type : appartement, maison, studio, terrain, garage…
  • Transaction : vente / location
  • Prix min/max (slider + saisie libre)
  • Surface habitable min/max
  • Nombre de chambres (1, 2, 3, 4+)
  • Options : jardin, garage, terrasse, ascenseur, meublé
  • Score PEB (A, B, C, D, E, F, G)
  • Sauvegarde des filtres comme recherche
👤 Public
💾 Recherches sauvegardées SHOULD
Permettre à l'utilisateur de sauvegarder ses critères pour y revenir facilement.
  • Nommer et sauvegarder une recherche
  • Accès rapide depuis le tableau de bord
  • Lier une alerte à une recherche sauvegardée
  • Partager une recherche par lien
👤 Public 🏢 Agence
🖼 Wireframe — Page de recherche
🗺
👤

Compte utilisateur & Favoris

👤 Grand Public

🔐 Inscription / Connexion MUST
Authentification simple et sécurisée avec plusieurs options.
  • Email + mot de passe (validation email obligatoire)
  • Social login : Google, Apple
  • Mot de passe oublié par email
  • Session persistante (remember me 30 jours)
  • Déconnexion de tous les appareils
👤 Public
❤️ Favoris & Listes MUST
Organiser les biens qui intéressent l'utilisateur en listes personnalisées.
  • Ajouter/retirer un bien des favoris en 1 clic
  • Créer des listes nommées (ex: "Bruxelles budget serré")
  • Notes personnelles sur chaque bien sauvegardé
  • Partager une liste par lien
  • Notification si un bien favori change de prix ou statut
👤 Public
🕐 Historique consulté SHOULD
Retrouver facilement les biens déjà consultés.
  • Liste des 50 derniers biens consultés
  • Tri par date de consultation
  • Indication si le prix a changé depuis la dernière visite
  • Indication si le bien est toujours disponible
👤 Public
👤 Profil & Préférences SHOULD
Personnalisation de l'expérience utilisateur.
  • Nom, prénom, téléphone, photo de profil
  • Langue préférée (FR / NL)
  • Préférences de notification (email, push)
  • Gestion du consentement RGPD
  • Export de ses données (RGPD Article 20)
  • Suppression de compte
👤 Public
🔔

Alertes & Notifications

👤 Grand Public · 🏢 Agence · 🔧 Admin

🔔 Alerte nouveau bien MUST
Notifier l'utilisateur dès qu'un bien correspondant à ses critères est publié.
  • Basée sur une recherche sauvegardée
  • Canal : email ET/OU notification push
  • Fréquence configurable : immédiat, quotidien, hebdo
  • Aperçu du bien dans la notification
  • Désactivation en 1 clic depuis l'email
👤 Public
💰 Alerte baisse de prix MUST
Notifier quand un bien favori voit son prix baisser.
  • Déclenchée sur les biens en favoris uniquement
  • Affichage de l'ancien prix, nouveau prix et % de baisse
  • Notification push + email
👤 Public
📥 Alerte nouveau contact MUST
Notifier l'agence dès qu'un utilisateur envoie un message ou demande une visite.
  • Notification push + email immédiate
  • Résumé du message dans la notification
  • Lien direct vers la conversation
🏢 Agence
📣 Notifications système SHOULD
L'admin peut envoyer des messages à tous les utilisateurs ou des segments.
  • Notification globale (maintenance, mise à jour)
  • Ciblage par rôle (agences uniquement, public uniquement)
  • Planification de l'envoi
🔧 Admin
💬

Messagerie & Demandes de visites

👤 Grand Public · 🏢 Agence

💬 Messagerie intégrée MUST
Canal de communication direct entre acheteur/locataire et agence/propriétaire.
  • Fil de conversation par annonce
  • Envoi de messages texte
  • Indicateur "lu / non lu"
  • Historique complet de la conversation
  • Notification push à chaque nouveau message
  • Anti-spam : vérification email avant envoi
👤 Public 🏢 Agence
📅 Demande de visite MUST
Permettre à l'utilisateur de demander une visite directement depuis la fiche bien.
  • Formulaire : nom, téléphone, message, disponibilités
  • Confirmation par email automatique aux deux parties
  • L'agence peut confirmer ou proposer un autre créneau
  • Rappel automatique 24h avant la visite confirmée
  • Statut : En attente / Confirmée / Annulée
👤 Public 🏢 Agence
🏡

Publication par un particulier

👤 Grand Public (vendeur/bailleur)

📝 Créer une annonce MUST
Un particulier peut publier son bien sans passer par une agence.
  • Formulaire guidé étape par étape (wizard)
  • Type de transaction : vente ou location
  • Adresse complète (non visible publiquement, seule la commune)
  • Upload de photos (max 20, 5MB/photo)
  • Upload plan d'étage (PDF ou image)
  • Description libre avec mise en forme basique
  • Prix demandé
  • Validation email du compte avant publication
👤 Public
📊 Tableau de bord vendeur SHOULD
Un particulier peut suivre les performances de son annonce.
  • Nombre de vues totales et par jour
  • Nombre de contacts reçus
  • Nombre de fois ajouté en favoris
  • Modifier / désactiver / republier son annonce
👤 Public
🏢

Publication & gestion des annonces (Agence)

🏢 Agence / Propriétaire professionnel

📝 Créer une annonce pro MUST
Interface de publication enrichie pour les agences immobilières.
  • Tous les champs du formulaire particulier +
  • Référence interne agence
  • Upload plan d'étage 2D obligatoire
  • Informations légales : PEB, précompte, charges copropriété
  • Prix affiché / prix sur demande
  • Option "Exclusivité agence"
  • Programmation de la date de publication
🏢 Agence
🏷 Gestion des badges MUST
Badges automatiques et manuels pour mettre en valeur les annonces.
  • 🆕 Nouveau : automatique si publié < 7 jours
  • ⬇️ Prix réduit : automatique à chaque baisse de prix
  • 🤝 Sous offre : manuel par l'agence
  • ✅ Vendu / Loué : archivage automatique
🏢 Agence
📁 Gestion du portefeuille MUST
Vue d'ensemble et gestion de toutes les annonces de l'agence.
  • Liste paginée de toutes les annonces (actives, archivées)
  • Filtres : statut, type, agent responsable
  • Actions groupées : archiver, republier, modifier le prix
  • Tri par : date, vues, contacts, prix
🏢 Agence
📊

Dashboard Agence

🏢 Agence / Propriétaire professionnel

📈 Statistiques de base MUST
KPIs essentiels pour mesurer la performance des annonces.
  • Vues totales (7j / 30j / tout)
  • Nombre de contacts reçus
  • Nombre de demandes de visite
  • Taux de contact (contacts / vues en %)
  • Annonces les plus vues
  • Évolution semaine vs semaine précédente
🏢 Agence
👤 Profil agence public MUST
Page publique de l'agence visible par les utilisateurs.
  • Logo, nom, description, adresse
  • Numéro de téléphone et site web
  • Toutes les annonces actives de l'agence
  • Badge de réactivité (temps de réponse moyen)
🏢 Agence
📅

Gestion des visites (Agence)

🏢 Agence

📅 Suivi des visites MUST
Centraliser toutes les demandes de visite reçues.
  • Liste de toutes les visites (en attente / confirmées / passées)
  • Accepter / refuser / proposer un autre créneau
  • Ajouter des notes sur un visiteur
  • Export CSV des visites
🏢 Agence
🛡

Modération des annonces

🔧 Administrateur

🛡 File de modération MUST
Vérification des nouvelles annonces avant publication.
  • File d'attente des annonces à valider
  • Approbation / rejet avec motif
  • Signalement par les utilisateurs
  • Suppression d'urgence d'une annonce en ligne
  • Historique des actions de modération
🔧 Admin
💬 Modération messages SHOULD
Supervision des échanges pour détecter abus et arnaques.
  • Lecture des conversations signalées
  • Blocage d'un utilisateur
  • Suppression de messages abusifs
🔧 Admin
👥

Gestion des comptes

🔧 Administrateur

👥 Gestion utilisateurs MUST
Contrôle complet sur les comptes de la plateforme.
  • Liste et recherche de tous les utilisateurs
  • Voir le profil, les annonces, les messages d'un compte
  • Suspendre / réactiver un compte
  • Supprimer un compte (conformité RGPD)
  • Changer le rôle d'un utilisateur
🔧 Admin
✅ Validation agences MUST
Processus de validation des comptes agence avant activation.
  • Formulaire d'inscription agence (KBONR, IPI, documents)
  • File de validation admin
  • Approbation / rejet avec notification email
  • Badge "Agence vérifiée" sur le profil public
🔧 Admin
📈

KPIs & Supervision plateforme

🔧 Administrateur

📈 Tableau de bord admin MUST
Vue globale de la santé de la plateforme en temps réel.
  • Utilisateurs actifs (jour, semaine, mois)
  • Nouvelles inscriptions
  • Annonces publiées / archivées
  • Messages envoyés
  • Visites demandées
  • Alertes système (erreurs, performances)
🔧 Admin
📖

User Stories clés

Format : En tant que [rôle], je veux [action] afin de [bénéfice]

US-001
En tant qu'acheteur, je veux rechercher des biens par commune avec des filtres sur le prix et la surface, afin de trouver rapidement des annonces qui correspondent à mon budget.
Critères : Résultats en < 500ms · Filtres persistants entre sessions · Carte synchronisée avec la liste
US-002
En tant que locataire, je veux sauvegarder des biens en favoris et recevoir une alerte si leur prix baisse, afin de ne pas manquer une bonne occasion.
Critères : Notification dans les 5 min après baisse de prix · Affichage ancien/nouveau prix · Désactivation en 1 clic
US-003
En tant que particulier vendeur, je veux publier mon bien sans passer par une agence, afin d'économiser les frais d'agence.
Critères : Publication en < 10 min · Validation email avant mise en ligne · Plan d'étage obligatoire
US-004
En tant qu'agent immobilier, je veux voir en un coup d'œil combien de contacts j'ai reçus par annonce cette semaine, afin d'identifier mes annonces les plus performantes.
Critères : Dashboard chargé en < 2s · Données J-1 maximum · Export CSV disponible
US-005
En tant qu'acheteur, je veux contacter l'agence depuis la fiche bien et demander une visite avec mes disponibilités, afin de gagner du temps sans avoir à chercher un numéro de téléphone.
Critères : Formulaire pré-rempli avec infos profil · Confirmation email immédiate · Rappel 24h avant
US-006
En tant qu'administrateur, je veux valider les comptes agence avant leur activation, afin de garantir que seules les agences légitimes publient sur la plateforme.
Critères : Vérification numéro IPI · File de validation < 48h · Email de notification à l'agence
US-007
En tant qu'acheteur, je veux voir l'historique des prix d'un bien, afin de savoir si le vendeur a déjà baissé son prix et depuis combien de temps il est sur le marché.
Critères : Historique complet depuis 1re publication · Timeline visuelle · % de variation affiché
US-008
En tant qu'agent immobilier, je veux recevoir une notification immédiate quand quelqu'un me contacte, afin de répondre rapidement et améliorer mon badge de réactivité.
Critères : Notification push + email en < 30 secondes · Aperçu du message · Lien direct vers la conversation
📅

Planning de développement — 12 semaines

Estimation pour une équipe de 2-3 développeurs full-stack

Avancement global MVP 10 / 12 semaines
DémarrageLivraison MVP 1
Semaines 1–2
🏗 Setup & Infrastructure
Monorepo setupNext.js initReact Native initPostgreSQLAuth Service (Keycloak)CI/CD GitHub Actions
Semaines 3–4
🔐 Auth & Comptes utilisateurs
Inscription / ConnexionSocial loginProfil utilisateurRôles (Public / Agence / Admin)RGPD de base
Semaines 5–6
🏠 Annonces & Publication
CRUD annoncesUpload photos / planFiche bienHistorique prixBadges automatiquesEspace agence
Semaines 7–8
🔍 Recherche & Carte
Algolia integrationFiltres avancésMapbox carteClusteringRecherches sauvegardées
Semaines 9–10
💬 Messagerie & Visites
Messagerie temps réelWebSocketDemande de visiteFavorisAlertes email/pushNotifications
Semaines 11–12
🛡 Admin & Finitions
Back-office adminModérationDashboard agenceTests E2EPerformance auditDéploiement prod
⚠️

Risques & Mitigation

Principaux risques identifiés pour le MVP 1

ÉLEVÉ
Scope creep — trop de fonctionnalités en MVP 1
Tendance à vouloir tout inclure dès le départ, retardant la livraison de plusieurs semaines.
→ Mitigation : MoSCoW strict (MUST / SHOULD / COULD). Tout ce qui n'est pas MUST sort du MVP 1.
ÉLEVÉ
Performances carte sur mobile
La carte interactive avec clustering est le point faible d'Immoweb — et un défi technique réel sur mobile bas de gamme.
→ Mitigation : Mapbox GL JS + clustering côté client + tests sur appareils réels Android dès la semaine 7.
MOYEN
Adoption par les agences immobilières
Sans agences actives, la plateforme n'a pas d'annonces, donc pas d'utilisateurs publics.
→ Mitigation : 6 mois gratuits pour les 50 premières agences. Démarrer avec 5 agences partenaires dès le MVP 1.
MOYEN
Spam et fausses annonces dès le lancement
Sans modération efficace, la confiance des utilisateurs sera immédiatement impactée.
→ Mitigation : Validation email obligatoire + modération manuelle des 100 premières annonces + file admin.
FAIBLE
Coûts Algolia en croissance rapide
Algolia facture à l'usage — si la plateforme grandit vite, la facture peut exploser avant de migrer vers Elasticsearch.
→ Mitigation : Cap défini sur le plan Algolia. Migration Elasticsearch planifiée en MVP 2 dès 10 000 annonces.