Skip to main content

Vue d’ensemble

Kit’Asso utilise PostgreSQL via Nhost (avec Hasura GraphQL) avec des tables organisées en 4 groupes fonctionnels :

Core

Tools, Categories, Filters

Workflows

Workflows, Workflow Steps

Packs

Tool Packs, Pack Tools

Quiz

Quizzes, Questions, Answers, Recommendations, Responses
Statistiques :
  • 13 tables avec relations complètes
  • Row Level Security (RLS) sur toutes les tables
  • 43 fichiers de migration trackés
  • 2 buckets Storage (tool_logos, site_assets)

Schéma relationnel


Groupe 1 : Core (Outils)

Table tools

Catalogue principal des outils numériques.
Colonnes clés :
  • pricing_tier : Enum strict pour cohérence
  • category_id : Foreign key vers categories
  • logo_url : URL publique depuis Nhost Storage
Indexes :

Table categories

Classification des outils par usage.
Exemples de données :
  • Communication
  • Gestion de projet
  • Site Web
  • Paiements & Dons
  • Automatisation

Table filters

Features et capacités des outils.
Types de filters :
  • filter_type = ‘capability’ → Fonctionnalités (Email Marketing, CRM)
  • filter_type = ‘integration’ → Intégrations (Zapier, Stripe)
  • filter_type = ‘platform’ → Plateformes (Web, Mobile, Desktop)

Table tool_features (Jointure)

Relation Many-to-Many entre tools et filters.
Requête typique :

Groupe 2 : Workflows

Table workflows

Parcours guidés étape par étape.
Colonnes importantes :
  • steps : JSONB avec structure [{ title, description, tool }]
  • status : Seuls les workflows ‘active’ sont visibles publiquement
  • display_order : Ordre d’affichage dans l’interface
Exemple de steps JSONB :

Table workflow_steps

Détails enrichis des étapes de workflow.
Structure enrichie pour pédagogie :
  • detailed_instructions : Liste JSONB d’instructions
  • completion_checklist : Array de tâches à cocher
  • story : Contexte narratif (persona, situation, goal)
  • visuals : Screenshots, diagrammes
  • videos : Tutoriels vidéo
Exemple de story JSONB :

Groupe 3 : Tool Packs

Table tool_packs

Collections curées d’outils par thème.
Colonnes UI :
  • icon : Nom d’icône Lucide (ex: ‘Rocket’, ‘Mail’)
  • color : Couleur thème (blue, green, orange, purple)
  • display_order : Position dans la liste

Table pack_tools (Jointure)

Outils contenus dans chaque pack.
Requête typique :

Groupe 4 : Quiz

Table quizzes

Définitions des quiz diagnostiques.
Slug pour routing :

Table quiz_questions

Questions du quiz.
Types de questions :
  • single : Choix unique (radio)
  • multiple : Choix multiples (checkbox)
  • scale : Échelle 1-5 (slider)

Table quiz_answers

Options de réponse.
Exemple :

Table quiz_recommendations

Logique conditionnelle pour recommandations.
Exemple de condition_logic :
Logique : Si niveau = débutant ET besoin = email
→ Recommander Starter Pack + Mailchimp

Table quiz_responses

Soumissions des utilisateurs.
Exemple de answers JSONB :

Groupe 5 : Assets

Table site_assets

Gestion centralisée des assets.
Usage :
  • Logos de partenaires
  • Images de hero
  • Illustrations
  • Icônes personnalisées

Relations clés

One-to-Many

Many-to-Many


Indexes pour performance


Triggers & Functions

Auto-update updated_at


Migration workflow

Les migrations sont dans hasura/migrations/ avec nomenclature :
Exemples :
Ordre d’exécution : Chronologique strict

Guide migrations

Processus de migration détaillé

Ressources

Schema complet

Documentation détaillée des 13 tables

Row Level Security

Politiques de sécurité

Storage

Buckets et uploads

API Layer

Accès aux données