Vue d’ensemble
La feature Tools est le cœur de Kit’Asso : un catalogue d’outils numériques adaptés aux besoins des associations. Statistiques :- 35+ outils référencés
- 4 tiers de pricing (Gratuit, Freemium, Payant, Entreprise)
- Système de catégorisation par domaine
- Comparaison côte à côte (max 2 outils)
- Favoris avec localStorage
Architecture technique
Composants principaux
API Layer (GraphQL)
Toutes les opérations passent parapiCall() / apiCallVoid() + nhost.graphql.request() :
Fonctionnalités détaillées
1. Recherche avancée
Implémentation :src/hooks/useToolFilters.ts
- Debounce de 300ms pour la recherche texte
- Filtrage multi-critères (pricing + catégorie)
- Combinaison ET des filtres
- Performance optimisée avec useMemo
2. Grille virtualisée
Composant :VirtualizedToolsGrid.tsx
Utilise react-window pour le rendu performant. Seuls les éléments visibles dans le viewport sont rendus.
Configuration :
3. Mode comparaison
Route :/compare
Logique : src/hooks/useToolComparison.ts
- Sélection max : 2 outils
- Affichage côte à côte des caractéristiques (pricing, catégorie, features, description, liens)
4. Système de favoris
Hook :src/hooks/useFavorites.ts
Stockage : LocalStorage (clé : kitasso_favorites)
5. Upload de logos
Backend : Nhost StorageBase de données
Table tools
Relations via GraphQL
Catégorie (Many-to-One) :tool_features) :
Permissions Hasura
- public : SELECT autorisé sur toutes les lignes
- admin : SELECT, INSERT, UPDATE, DELETE autorisés
Types TypeScript
Bonnes pratiques
✅ À faire
❌ À éviter
Performance
Métriques cibles :- Temps de chargement initial : < 2s
- Temps de recherche : < 100ms
- FPS scroll : 60
- Mémoire utilisée : < 50MB
- Virtualisation avec react-window
- Debounce sur recherche (300ms)
- Memoization avec React.memo
- Lazy loading des images
- Code splitting du modal admin
Ressources
Workflows
Parcours guidés étape par étape
Tool Packs
Collections curées d’outils
API Layer
Architecture API GraphQL
Testing
Écrire des tests pour vos features