Skip to main content

Vue d’ensemble

Kit’Asso utilise 13 tables PostgreSQL hébergées sur Nhost et exposées via Hasura GraphQL. La base de données est organisée en 4 domaines fonctionnels : le catalogue d’outils, les workflows guidés, les packs curés et le système de quiz avec scoring pondéré V2. Architecture :
  • Core Tables (5) : tools, categories, filters, tool_features, site_assets
  • Workflow Tables (2) : workflows, workflow_steps
  • Pack System (2) : tool_packs, pack_tools
  • Quiz System (5) : quizzes, quiz_questions, quiz_answers, quiz_recommendations, quiz_responses
Accès aux données :
  • GraphQL via Hasura (auto-généré depuis le schéma PostgreSQL)
  • Permissions Hasura par rôle (public/admin) — pas de RLS PostgreSQL
  • API Layer centralisée dans src/api/ avec apiCall() / apiCallVoid()

Core Tables

1. tools

Table principale du catalogue d’outils numériques. Colonnes :
Type TypeScript :
Query GraphQL :

2. categories

Classification des outils par domaine d’activité.
Exemples : Communication, Gestion de projet, Comptabilité, Marketing, Événementiel, Formation

3. filters

Définitions de fonctionnalités et capacités des outils.

4. tool_features (Join Table)

Relation many-to-many entre tools et filters.

5. site_assets

Gestion centralisée des assets du site (logos, images).
Note : Les URLs pointent vers Nhost Storage (https://{subdomain}.storage.{region}.nhost.run/v1/files/{fileId}).

Workflow Tables

6. workflows

Parcours guidés étape par étape pour la transformation numérique.
Query GraphQL (public — uniquement actifs) :

7. workflow_steps

Détails enrichis des étapes de workflow.

Pack System

8. tool_packs

Collections curées d’outils pour des cas d’usage spécifiques.

9. pack_tools (Join Table)

Relation many-to-many entre packs et tools avec ordering.

Quiz System

10. quizzes

quiz_questions

Questions du quiz avec support de branchement conditionnel.
Branchement conditionnel (next_question_rules) :

quiz_answers

Options de réponse avec scoring pondéré V2.
Scoring weights (scoring_weights) :
Les clés supportées sont tool:<id>, category:<name>, et pricing:<tier>.

quiz_recommendations

Règles de recommandation (système legacy V1, remplacé par le scoring V2).

quiz_responses

Soumissions utilisateurs avec analytics.
Query GraphQL pour charger un quiz (V2) :

Relations et Cardinalités

Cascades :
  • Suppression d’un tool → supprime ses tool_features et pack_tools
  • Suppression d’un workflow → supprime ses workflow_steps
  • Suppression d’un quiz → supprime questions, answers, recommendations, responses
  • Suppression d’une category → SET NULL sur tools.category_id

Ressources

Permissions Hasura

Contrôle d’accès par rôle

Storage

Gestion des logos et assets via Nhost Storage

API Layer

Utilisation de l’API pour requêter via GraphQL

Nhost & GraphQL

Architecture backend