Documentation Développeur

Intégrez les procédures administratives belges dans vos applications avec notre API et nos outils.

API REST

Endpoints Principaux

GET /api/workflows

Liste toutes les procédures disponibles

GET /api/workflows/:id

Détails d'une procédure spécifique

POST /api/eligibility/check

Vérifier l'éligibilité à une prestation

POST /api/conversion/legal-text

Simplifier un texte légal en langage clair

Exemple d'Intégration

// Récupérer les données d'une procédure
const response = await fetch('/api/workflows/ris');
const procedure = await response.json();

// Initialiser la machine d'état
const machine = createMachine({
  id: procedure.id,
  initial: procedure.initial,
  states: procedure.states,
  // ...
});

State Machines avec XState

Toutes les procédures sont implémentées comme des machines d'état XState, garantissant des transitions prévisibles et une logique d'éligibilité robuste.

Structure d'une Machine

  • États: Chaque étape du processus administratif
  • Événements: Actions qui déclenchent des transitions
  • Guards: Conditions pour les transitions
  • Actions: Effets de bord lors des transitions
133
Machines disponibles
2799
États totaux
1280
Événements totaux

Moteur de Règles

Les règles d'éligibilité sont définies en JSON et évaluées dynamiquement par json-rules-engine.

Format des Règles

{
  "conditions": {
    "all": [
      { "fact": "age", "operator": "greaterThanInclusive", "value": 18 },
      { "fact": "residence", "operator": "equal", "value": "BE" },
      { "fact": "income", "operator": "lessThan", "value": 1450 }
    ]
  },
  "event": {
    "type": "eligible",
    "params": { "benefit": "RIS" }
  }
}

Types de Conditions

Conditions Simples

  • Âge minimum/maximum
  • Résidence en Belgique
  • Seuils de revenus
  • Situation familiale

Conditions Complexes

  • Combinaisons AND/OR
  • Règles temporelles
  • Calculs dynamiques
  • Dépendances entre prestations

Guide d'Installation

# Clone the repository
git clone https://github.com/vanmarkic/PAA.git
cd PAA

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env

# Start Docker services (PostgreSQL, Redis)
npm run docker:up

# Run migrations
npm run migration:run

# Start development server
npm run dev:api

# API available at http://localhost:3000

Ressources