Transformer la plateforme en solution SaaS multi-marques capable de gérer :
depuis une infrastructure unique.
À l'issue du Sprint 15 :
Ce sprint marque le passage d'un SaaS mono-agence à une plateforme multi-enseignes.
Plateforme SaaS ├── Réseau A │ ├── Agence A1 │ ├── Agence A2 │ └── Agence A3 │ ├── Réseau B │ ├── Agence B1 │ └── Agence B2 │ └── Réseau C
Chaque agence peut disposer :
Site Web Logo Couleurs Domaine Catalogue Pages CMS Emails
MultiSiteModule WhiteLabelModule BrandingModule AgencyNetworkModule DomainManagementModule CatalogSharingModule
En tant qu'administrateur réseau
Je souhaite créer un site
Afin de publier une nouvelle marque.
POST /sites
Nom Code Langue Agence Domaine principal
POST /sites/{id}/domains
www.agence-a.fr locations.agence-a.fr booking.agence-a.fr
DNS SSL Redirections
1 Site ↓ N Domaines
Logo Couleurs Typographie Favicon Images
PUT /sites/{id}/branding
Expéditeur Logo Couleurs Signature
GET /themes POST /themes
Header Footer Cartes biens Pages recherche Pages détail
Theme ↓ Tokens ↓ Composants ↓ Pages
POST /agency-networks
Nom Code Description
POST /agency-networks/{id}/agencies
Partager des biens entre agences.
Agence Montpellier ↓ Bien visible ↓ Agence Nîmes ↓ Bien visible
POST /properties/{id}/sharing
Visible Réservable Commissionnable
Agence A ↓ Réservation ↓ Bien Agence B ↓ Commission
Agence source Agence propriétaire Montant Pourcentage
:contentReference[oaicite:0]{index=0}
POST /properties/{id}/sites
Bien ↓ Site A Site B Site C
PUBLIC PRIVATE NETWORK AGENCY_ONLY
GET /sites/{id}/pages
POST /sites/{id}/pages
Accueil À propos Services Contact Mentions légales
Navigation Footer Liens externes
model Site {
id String @id @default(uuid())
tenantId String
code String @unique
name String
active Boolean
createdAt DateTime @default(now())
}
model SiteDomain {
id String @id @default(uuid())
siteId String
domain String
isPrimary Boolean
}
model Branding {
id String @id @default(uuid())
siteId String
logoUrl String?
primaryColor String?
secondaryColor String?
}
model AgencyNetwork {
id String @id @default(uuid())
code String @unique
name String
}
model PropertySharing {
id String @id @default(uuid())
propertyId String
agencyId String
visibility String
}
src/modules/network ├── sites │ ├── branding │ ├── domains │ ├── networks │ ├── sharing │ └── cms
SiteService BrandingService DomainService AgencyNetworkService PropertySharingService CmsService
SiteCreated
DomainValidated
PropertyShared
Pages :
/admin/sites /admin/sites/[id] /admin/branding /admin/networks /admin/sharing /admin/cms
Génération dynamique :
www.agence-a.fr www.agence-b.fr www.agence-c.fr
ThemeEditor BrandingManager DomainManager NetworkExplorer SharingRulesEditor CmsPageEditor
Sites Branding Domains Networks Sharing CMS
Environ :
50 endpoints
SiteService BrandingService DomainService AgencyNetworkService
Création site ↓ Branding ↓ Domaine ↓ Publication
Création réseau ↓ Création agence ↓ Création site ↓ Publication bien ↓ Réservation inter-agence
Le Sprint 15 est terminé lorsque :
À l'issue du Sprint 15 :
La plateforme devient commercialisable auprès de groupes immobiliers, franchises, réseaux de conciergeries et opérateurs multi-marques.
Objectif :
Permettre aux utilisateurs, propriétaires et équipes terrain d'utiliser la plateforme depuis mobile avec ou sans connexion.
Modules concernés :
MobileModule PWAModule OfflineModule CheckInModule CheckOutModule FieldOperationsModule
Fonctionnalités :
À l'issue du Sprint 16, la plateforme sera pleinement exploitable sur le terrain.