chore: readme reset
This commit is contained in:
113
lib/README.md
113
lib/README.md
@@ -1,113 +0,0 @@
|
||||
# Server-Side Utilities Architecture
|
||||
|
||||
Cette architecture respecte les principes SOLID en séparant clairement les responsabilités côté serveur et en évitant le code mort.
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
lib/
|
||||
├── evaluation-utils.ts # Utilitaires pour les évaluations
|
||||
├── evaluation-actions.ts # Actions d'évaluation
|
||||
├── score-utils.ts # Utilitaires pour les scores
|
||||
├── skill-file-loader.ts # Chargement des fichiers de skills
|
||||
├── types.ts # Types TypeScript généraux
|
||||
├── admin-types.ts # Types pour l'administration
|
||||
├── utils.ts # Utilitaires généraux
|
||||
├── category-icons.ts # Icônes des catégories
|
||||
├── tech-colors.ts # Couleurs des technologies
|
||||
├── pattern-colors.ts # Couleurs des patterns
|
||||
└── README.md # Ce fichier
|
||||
```
|
||||
|
||||
## Responsabilités
|
||||
|
||||
### evaluation-utils.ts
|
||||
|
||||
- **Utilitaires** pour les évaluations côté client
|
||||
- **Génération de données** pour les graphiques radar
|
||||
|
||||
### evaluation-actions.ts
|
||||
|
||||
- **Actions d'évaluation** côté serveur
|
||||
- **Gestion des profils** utilisateur
|
||||
|
||||
### score-utils.ts
|
||||
|
||||
- **Calcul des scores** et niveaux de compétences
|
||||
- **Logique métier** pour les évaluations
|
||||
|
||||
### skill-file-loader.ts
|
||||
|
||||
- **Chargement des fichiers** de compétences depuis le système de fichiers
|
||||
- **Parsing des données** JSON
|
||||
|
||||
### types.ts
|
||||
|
||||
- **Types TypeScript** généraux de l'application
|
||||
- **Interfaces** pour les entités principales
|
||||
|
||||
### admin-types.ts
|
||||
|
||||
- **Types pour l'administration** et les statistiques
|
||||
- **Interfaces** pour TeamMember, TeamStats, DirectionStats
|
||||
|
||||
## Services d'authentification
|
||||
|
||||
### AuthClient (client-side uniquement)
|
||||
|
||||
- **`login()`** - Authentification côté client
|
||||
- **`getCurrentUser()`** - Récupération utilisateur côté client
|
||||
- **`logout()`** - Déconnexion côté client
|
||||
|
||||
### AuthService (server-side uniquement)
|
||||
|
||||
- **`getUserUuidFromCookie()`** - Récupère l'UUID depuis le cookie côté serveur
|
||||
- **`isUserAuthenticated()`** - Vérifie l'authentification côté serveur
|
||||
|
||||
## Séparation client/serveur
|
||||
|
||||
- **`clients/domains/auth-client.ts`** - Côté client uniquement (React components, hooks)
|
||||
- **`services/auth-service.ts`** - Côté serveur uniquement (API routes, pages)
|
||||
- **Pas de duplication** entre les deux services
|
||||
|
||||
## Utilisation
|
||||
|
||||
### Import direct des services
|
||||
|
||||
```typescript
|
||||
import { AuthService } from "@/services";
|
||||
import { SkillsService, TeamsService } from "@/services";
|
||||
import { evaluationService } from "@/services/evaluation-service";
|
||||
```
|
||||
|
||||
### Utilisation dans les pages
|
||||
|
||||
```typescript
|
||||
export default async function HomePage() {
|
||||
const userUuid = await AuthService.getUserUuidFromCookie();
|
||||
|
||||
if (!userUuid) {
|
||||
redirect("/login");
|
||||
}
|
||||
|
||||
const [userEvaluation, skillCategories, teams] = await Promise.all([
|
||||
evaluationService.getServerUserEvaluation(userUuid!),
|
||||
SkillsService.getSkillCategories(),
|
||||
TeamsService.getTeams(),
|
||||
]);
|
||||
}
|
||||
```
|
||||
|
||||
## Avantages
|
||||
|
||||
- **Séparation claire** : Chaque fichier a une seule responsabilité
|
||||
- **Pas de code mort** : Utilisation directe des services existants
|
||||
- **Maintenabilité** : Code organisé et facile à comprendre
|
||||
- **Réutilisabilité** : Fonctions modulaires et indépendantes
|
||||
- **Testabilité** : Chaque module peut être testé séparément
|
||||
- **Évolutivité** : Facile d'ajouter de nouvelles fonctionnalités
|
||||
- **Architecture logique** : L'authentification est dans les services d'auth
|
||||
- **Séparation client/serveur** : Pas de confusion entre les deux environnements
|
||||
- **Noms cohérents** : AuthService pour le serveur, AuthClient pour le client
|
||||
- **Imports directs** : Plus de wrapper inutile, appel direct des services
|
||||
- **Simplicité** : Architecture claire et directe
|
||||
Reference in New Issue
Block a user