Outils pour utilisateurs

Outils du site


ujusum:1-projet:8-architecture-frontend

Architecture Frontend NextJS 15

Objectifs

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

Objectifs :

  • SEO performant
  • Responsive Mobile / Tablet / Desktop
  • Accessibilité RGAA
  • Temps de chargement optimisés
  • Architecture modulaire
  • Réutilisation maximale des composants
  • Génération automatique du client API OpenAPI

Technologies retenues :

  • NextJS 15 (App Router)
  • React 19
  • TypeScript
  • Tailwind CSS
  • TanStack Query
  • React Hook Form
  • Zod
  • OpenAPI Generator
  • shadcn/ui

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 :

  • Cache API
  • Synchronisation serveur
  • Pagination
  • Invalidation cache

Exemple

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

Gestion des formulaires

Stack

React Hook Form

+

Zod

+

OpenAPI DTO

Exemple

PropertyFormSchema
 
ReservationFormSchema
 
CustomerFormSchema

Design System

Principes

  • Mobile First
  • Atomic Design
  • Accessibilité
  • Dark Mode Ready
  • Réutilisable

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 :

  • Hero Search
  • Destinations populaires
  • Derniers biens
  • Promotions
  • Témoignages

Recherche

Composants :

  • Barre de recherche
  • Carte interactive
  • Liste résultats
  • Filtres

Fiche Bien

Sections :

  • Galerie
  • Description
  • Équipements
  • Calendrier
  • Carte
  • Réservation

Réservation

Étapes :

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

Écrans Extranet Propriétaire

Dashboard

Widgets :

  • Revenus
  • Réservations
  • Occupation
  • Alertes

Mes Biens

Vue :

  • Cartes
  • Tableau

Revenus

Graphiques :

  • Mensuel
  • Annuel
  • Par bien

Écrans Back Office

Dashboard

KPIs :

  • CA
  • Réservations
  • Taux occupation
  • Nouveaux clients

Gestion des biens

Actions :

  • Créer
  • Modifier
  • Publier
  • Archiver

Gestion clients

Actions :

  • Consulter
  • Modifier
  • Historique

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

  • JWT
  • Refresh Token
  • Auto Refresh

Contrôle accès

ProtectedRoute

RoleGuard

PermissionGuard

Performance

Optimisations

  • Server Components
  • Streaming
  • Lazy Loading
  • Image Optimization
  • ISR
  • Cache API

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

  • Architecture Frontend
  • Design System
  • Bibliothèque UI
  • Arborescence complète
  • Parcours utilisateurs
  • Organisation des Features
  • Convention de développement

Étape suivante

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

  • Wireframes détaillés de tous les écrans
  • Maquettes UX basse fidélité
  • Maquettes UI haute fidélité (Figma)
  • Charte graphique complète
  • Design Tokens
  • Bibliothèque de composants Figma
  • Prototype cliquable complet
  • Plan de sprints Scrum (Sprint 0 à Sprint 20)

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.

ujusum/1-projet/8-architecture-frontend.txt · Dernière modification : 2026/06/06 02:59 de 91.170.108.99

DokuWiki Appliance - Powered by TurnKey Linux