Table des matières

Architecture Frontend NextJS 15

Objectifs

Le frontend constitue la couche de présentation de la plateforme.

Objectifs :

Technologies retenues :


Architecture globale

Frontend

├── Front Office
│
├── Extranet Propriétaire
│
├── Back Office
│
└── Administration

Structure du projet

src/

├── app/
├── components/
├── features/
├── services/
├── hooks/
├── stores/
├── lib/
├── types/
├── providers/
├── styles/
└── generated/

App Router

Structure générale

app/

├── (public)
├── (auth)
├── (client)
├── (owner)
├── (backoffice)
└── api

Front Office

Pages publiques

(public)

/

/search

/property/[slug]

/about

/contact

/legal

/privacy

/terms

Authentification

(auth)

/login

/register

/forgot-password

/reset-password

/verify-email

Espace Client

(client)

/dashboard

/profile

/favorites

/reservations

/reservations/[id]

/contracts

/payments

/messages

/settings

Extranet Propriétaire

(owner)

/dashboard

/properties

/properties/[id]

/calendar

/reservations

/revenues

/contracts

/invoices

/messages

/profile

Back Office

(backoffice)

/dashboard

/properties

/properties/create

/properties/[id]

/reservations

/reservations/[id]

/owners

/owners/[id]

/customers

/customers/[id]

/contracts

/payments

/crm

/reports

/settings

Organisation métier

Chaque domaine métier devient une Feature.

features/

auth/

users/

owners/

properties/

reservations/

contracts/

payments/

crm/

messaging/

reporting/

Exemple Feature

features/properties

├── api
├── components
├── forms
├── hooks
├── schemas
├── types
└── pages

Génération OpenAPI

Client API

generated/

├── api.ts
├── models.ts
├── services.ts
└── schemas.ts

Génération

openapi-generator-cli generate \
-i openapi.yaml \
-g typescript-fetch \
-o src/generated

Gestion d'état

TanStack Query

Utilisation :


Exemple

useProperties()
 
useProperty(id)
 
useReservations()
 
usePayments()

Gestion des formulaires

Stack

React Hook Form

+

Zod

+

OpenAPI DTO

Exemple

PropertyFormSchema
 
ReservationFormSchema
 
CustomerFormSchema

Design System

Principes


Tokens

Espacements

xs
sm
md
lg
xl
2xl

Rayons

sm
md
lg
xl
full

Ombres

sm
md
lg
xl

Couleurs

Primaire

Primary
PrimaryForeground

Secondaire

Secondary
SecondaryForeground

États

Success

Warning

Danger

Info

Bibliothèque de composants

Layout

AppLayout

DashboardLayout

PublicLayout

AuthLayout

Navbar

Sidebar

Breadcrumb

Pagination

Tabs

Inputs

Input

Textarea

Select

MultiSelect

Checkbox

Radio

DatePicker

FileUpload

Data Display

Card

Badge

Avatar

Table

DataGrid

Timeline

Calendar

Feedback

Alert

Toast

Modal

Drawer

Skeleton

Spinner

Écrans Front Office

Accueil

Sections :


Recherche

Composants :


Fiche Bien

Sections :


Réservation

Étapes :

  1. Choix dates
  2. Informations client
  3. Paiement
  4. Signature
  5. Confirmation

Écrans Extranet Propriétaire

Dashboard

Widgets :


Mes Biens

Vue :


Revenus

Graphiques :


Écrans Back Office

Dashboard

KPIs :


Gestion des biens

Actions :


Gestion clients

Actions :


CRM

Pipeline :

Prospect

↓

Qualifié

↓

Visite

↓

Négociation

↓

Client

Parcours UX

Parcours Client

Accueil

↓

Recherche

↓

Fiche Bien

↓

Réservation

↓

Paiement

↓

Signature

↓

Confirmation

Parcours Propriétaire

Connexion

↓

Dashboard

↓

Mes Biens

↓

Revenus

↓

Export

Parcours Gestionnaire

Dashboard

↓

Réservation

↓

Contrat

↓

Paiement

↓

Facturation

Sécurité Frontend

Auth


Contrôle accès

ProtectedRoute

RoleGuard

PermissionGuard

Performance

Optimisations


Tests

Unitaires

Vitest

Composants

React Testing Library

E2E

Playwright

Structure finale

Nombre estimé :

Élément Volume
Pages 80+
Composants 150+
Features 12
Formulaires 40+
Hooks 80+
API Calls 250+

Livrables générés


Étape suivante

À partir de cette architecture Frontend, nous pouvons désormais produire :

Le prochain livrable recommandé est :

Dossier UX/UI complet (Wireframes + Maquettes + Design System Figma)

afin de permettre à l'équipe produit et aux designers de lancer immédiatement la phase de conception visuelle.

DokuWiki Appliance - Powered by TurnKey Linux