Audit Dynamique Frontend (Tech + Immo)¶
Date d'audit : Mars 2026
Scope :apps/drwh_tech+apps/drwh_immo
Cet audit inventorie les contenus actuellement codés en dur dans les deux sites et ceux qui doivent être exposés via l'API backend pour rendre le site entièrement dynamique.
Résumé exécutif¶
pie title Répartition des contenus (Mars 2026)
"Statique (hardcodé)" : 70
"Dynamique (API réelle)" : 15
"Mock/Simulé" : 15
!!! warning "État actuel" - Les deux frontends utilisent majoritairement des données codées en dur (articles, projets, services, jobs, FAQ, testimonials, stats) - Les formulaires contact et carrière simulent l'envoi (pas d'appel API réel) - Côté Immo, un client API existe pour les propriétés — avec mode mock
État par domaine¶
drwh_tech — Contenus statiques détectés¶
| Contenu | Fichier | Priorité | API à implémenter |
|---|---|---|---|
| Blog listing | src/app/blog/page.tsx |
P1 | GET /blog/articles |
| Blog détail | src/app/blog/[slug]/page.tsx |
P1 | GET /blog/articles/:slug |
| Services | src/app/services/page.tsx |
P1 | GET /services |
| Services section homepage | src/components/ServicesSection.tsx |
P1 | GET /services |
| Réalisations/Works | src/components/WorksSection.tsx |
P2 | GET /works |
| Carrières listing | src/app/carriere/page.tsx |
P1 | GET /careers?domain=tech |
| Carrière détail | src/app/carriere/[slug]/page.tsx |
P1 | GET /careers/:slug |
| Formulaire contact | src/app/contact/page.tsx |
P0 | POST /contact/tech |
| Formulaire carrière | src/app/carriere/[slug]/page.tsx |
P0 | POST /careers/:slug/apply |
| Témoignages | src/components/TestimonialsSection.tsx |
P2 | GET /testimonials?domain=tech |
| Stats (chiffres clés) | src/components/WorksSection.tsx |
P2 | GET /works/stats |
drwh_immo — Contenus statiques détectés¶
| Contenu | Fichier | Priorité | API à implémenter |
|---|---|---|---|
| Propriétés | src/lib/data/properties.ts |
P0 | GET /properties |
| Propriétés constants | src/lib/constants.ts |
P0 | GET /properties/:id |
| Blog listing | src/app/blog/page.tsx |
P1 | GET /blog/articles?category=immo |
| Blog détail | src/app/blog/[id]/page.tsx |
P1 | GET /blog/articles/:id |
| Projets | src/app/projets/page.tsx |
P1 | GET /projects |
| Projet détail | src/app/projets/[id]/page.tsx |
P1 | GET /projects/:id |
| Lots | src/lib/data/lots.ts |
P1 | GET /lots |
| Formulaire contact | src/app/contact/page.tsx |
P0 | POST /contact/immo |
| Formulaire carrière | src/app/carriere/ |
P0 | POST /careers/:id/apply |
Niveaux de priorité¶
graph LR
P0[🔴 P0 — Critique\nFormulaires contact et carrière\nDonnées bloquantes] --> P1[🟠 P1 — Important\nBlog listings et détails\nServices et offres d'emploi]
P1 --> P2[🟡 P2 — Confort\nTémoignages & statistiques\nRéalisations]
style P0 fill:#e74c3c,color:#fff
style P1 fill:#f39c12,color:#fff
style P2 fill:#27ae60,color:#fff
P0 — Bloquants (à implémenter en premier)¶
Ces APIs sont critiques car leur absence bloque des fonctionnalités clés :
| API | Impact si absent |
|---|---|
POST /contact/tech |
Les messages de contact Tech ne partent pas |
POST /contact/immo |
Les messages de contact Immo ne partent pas |
POST /careers/:slug/apply |
Impossible de postuler à une offre |
GET /properties |
Le catalogue immobilier est vide |
P1 — Important¶
| API | Composant impacté |
|---|---|
GET /blog/articles?category=tech |
Blog Tech listing |
GET /blog/articles/:slug |
Détail article Tech |
GET /services |
Page services + homepage |
GET /careers?domain=tech |
Page carrières Tech |
GET /projects |
Liste des projets Immo |
GET /lots |
Lotissement Immo |
P2 — Confort¶
| API | Composant impacté |
|---|---|
GET /testimonials?domain=tech |
Témoignages Tech |
GET /works |
Réalisations Tech |
GET /works/stats |
Chiffres clés homepage |
Variables d'environnement concernées¶
# drwh_tech & drwh_immo
NEXT_PUBLIC_API_URL=http://localhost:3000/api ← Pointe l'API backend
NEXT_PUBLIC_ENABLE_MOCKING=false ← Désactiver le mock
Couches techniques en place¶
drwh_tech¶
src/lib/
├── public.service.ts ← Appels API backend (liste, détail, contact)
└── fallback-content.ts ← Données statiques de secours si API indisponible
Stratégie : Le frontnd appelle d'abord public.service.ts. Si l'API répond avec une erreur ou des données vides, il bascule sur fallback-content.ts.
drwh_immo¶
Feature flags disponibles :
NEXT_PUBLIC_ENABLE_MOCKING— Active les données mockNEXT_PUBLIC_MOCK_DELAY— Délai simulé (ms)
Plan de migration vers 100% dynamique¶
flowchart TD
A[1. Implémenter P0\nAPIs formulaires\ncritiques] --> B[2. Implémenter P1\nBlog + Services\n+ Offres d'emploi]
B --> C[3. Activer les appels\nAPI en production\nENABLE_MOCKING=false]
C --> D[4. Implémenter P2\nTémoignages + Stats\n+ Réalisations]
D --> E[✅ Site 100% dynamique]
style A fill:#e74c3c,color:#fff
style B fill:#f39c12,color:#fff
style C fill:#0066FF,color:#fff
style D fill:#27ae60,color:#fff
style E fill:#8e44ad,color:#fff