Principes de conception
Kit’Asso repose sur 3 piliers architecturaux :1. Feature-Based Structure
Organisation par domaine métier plutôt que par type technique.- Isolation des fonctionnalités
- Facilite le travail en équipe
- Suppression/ajout de features sans impact
En savoir plus
Guide détaillé de l’approche feature-based
2. API Layer découplée via GraphQL
Séparation stricte entre les composants UI et l’accès aux données :- Composants → utilisent des Custom Hooks (useAppData, useToolFilters…)
- Hooks → appellent l’API Layer (
src/api/) - API Layer → communique avec Nhost/Hasura via GraphQL
- Hasura → traduit en SQL vers PostgreSQL
3. Patterns standardisés
Modals
Container / Form / Preview / Hook
Forms
React Hook Form + Zod
Icons
getIcon() via src/utils/icons.ts
Voir tous les patterns
Documentation complète des patterns
Schéma visuel
Structure de dossiers
src/api/ - API Layer GraphQL
src/api/ - API Layer GraphQL
Centralise toutes les interactions avec Nhost/Hasura :
client.ts: singleton Nhostbase.ts: wrappers apiCall/apiCallVoid + ApiError- Un fichier par domaine (tools, workflows, packs, quiz)
src/features/ - Domaines métier
src/features/ - Domaines métier
Chaque feature contient ses modals avec le pattern Container/Form/Preview/Hook :
index.tsx: orchestrationFeatureForm.tsx: formulaire d’éditionFeaturePreview.tsx: aperçu détailléuseFeatureModal.ts: logique métier
src/hooks/ - Custom Hooks
src/hooks/ - Custom Hooks
Logique métier réutilisable :
useAppData: charge toutes les donnéesuseToolFilters: search + filtres + catégoriesuseFavorites: gestion localStorageuseSmoothScroll: navigation single-page
src/lib/ - Services
src/lib/ - Services
Configuration des services tiers :
- Auth context (Nhost Auth)
- Storage helpers (Nhost Storage)
- Error tracking (Sentry)
Navigation recommandée
Comprendre l'approche feature-based
Explorer le backend Nhost
Découvrir l'API Layer
Principes directeurs
Modularité
Chaque feature peut être activée/désactivée indépendamment
Testabilité
La logique métier est découplée du framework
Type Safety
TypeScript strict + validation Zod partout
Performance
Code splitting, lazy loading, virtualisation