profiles => format clean archi

This commit is contained in:
styve Lioumba
2025-10-20 20:34:45 +02:00
parent 4191ac1ed0
commit ef02c6a537
171 changed files with 25748 additions and 23863 deletions

View File

@@ -2,3 +2,67 @@
## Description
Trouve Ton Profile est une plateforme innovante qui permet à chacun de trouver facilement des professionnels qualifiés dans tous les domaines de la vie quotidienne. Que tu cherches un électricien, un plombier, un développeur, ou tout autre expert, la plateforme te permet de parcourir rapidement des profils, de découvrir leurs compétences, et de sélectionner la personne idéale pour répondre à tes besoins. Conçue pour faciliter l'accès à des talents locaux et spécialisés, Trouve Ton Profile est l'outil incontournable pour simplifier les tâches du quotidien en connectant les personnes à des solutions fiables et adaptées.
# Architecture du Projet
- domain : modèles métiers + interfaces de dépôt (ports) + (optionnel) erreurs/valeurs.
- usecase : cas dusage (use cases) qui orchestrent le métier (pur TS).
- infrastructure : implémentations techniques (HTTP/PocketBase, mapping DTO ⇄ domaine).
- ui (Angular) : composants/containers/facade → appellent les use cases via DI.
```mathematica
┌───────────────────────────────────────────────────┐
UI (Angular)
Composants, Facades, Formulaires
Appelle les Use Cases
└───────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────┐
Application / Use Cases
Exemple : ListProfilesUseCase
Appelle les interfaces du domaine
└───────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────┐
Domaine (Core)
Interfaces (ProfileRepository), Entities
Ne dépend de rien
└───────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────┐
Infrastructure (Technique)
Implémentations : PbProfileRepository
API HTTP, PocketBase, LocalStorage
Implémente linterface du domaine
└───────────────────────────────────────────────────┘
```
# Le présenteurs
Un Presenter (ou ViewModel / Mapper) sert à :<br>
✔ Transformer les données métier (Domain Model) → en données prêtes pour laffichage (UI Model)<br>
✔ Préparer les données : formatage de date, texte tronqué, fusion de champs…<br>
✔ Éviter que tes composants Angular fassent eux-mêmes du .toUpperCase(), .slice(), etc.<br>
✔ Laisser le domaine pur, sans logique de présentation<br>
```
UI (Component)
Facade (coordonne laction)
UseCase (app logic)
ProfileRepository (interface domain)
Infrastructure (PocketBase / HTTP)
▶ DATA RAW (Profile from database)
Presenter (transforme en UI-friendly data)
UI displays ViewModel
```