Data Engineering2024-2025

Plateforme Iliad

Plateforme analytics enterprise centralisant 5 sources de données pour le pilotage pédagogique de la Wild Code School.

PrefectDBTDuckDBMongoDBAngularFlaskKafkaRedisDocker

Contexte & Objectifs

Plateforme Iliad est une application analytics enterprise conçue pour centraliser et exploiter les données pédagogiques de la Wild Code School. Elle fournit une vue consolidée des KPIs pour le pilotage data-driven des formations. Problématiques adressées : - Formateurs : Pas de visibilité temps réel sur la progression et satisfaction des apprenants - Managers pédagogiques : Détection tardive des quêtes problématiques et des décrocheurs - Direction : Absence de métriques consolidées pour les décisions stratégiques Fonctionnalités clés : - Suivi de l'avancement des quêtes Odyssey (progression, taux de complétion) - Analyse des notes et avis des apprenants sur chaque quête - Taux de réussite aux certifications par équipe et formateur - Feedbacks hebdomadaires des formateurs (Notion) - Centralisation des problèmes signalés via Slack - Métriques de satisfaction (NPS, sondages) Cas d'usage : 1. Responsables pédagogiques — Identifier les quêtes nécessitant des ajustements 2. Formateurs — Suivre les retours et améliorer les sessions en continu 3. Direction — KPIs consolidés pour les décisions stratégiques
5
Sources intégrées
8
Tables de faits
9
Tables dimensions
3
Cas d'usage
Dashboard Progression Globale
Dashboard principal : KPIs temps réel (complétion, présence, certifications) et graphiques par expédition

Architecture Data

Modèle de données en étoile (star schema) optimisé pour l'analyse OLAP, avec séparation claire entre dimensions et faits. Tables de dimensions : - dim_expedition — Informations sur les expéditions et parcours - dim_quests — Détails des quêtes et niveaux de difficulté - dim_crews — Équipes et organisation - dim_users — Utilisateurs (apprenants, formateurs) - dim_surveys — Configuration des sondages - dim_missions — Missions et objectifs - dim_async_cohort — Cohortes asynchrones - dim_async_courses — Cours asynchrones - dim_survey_questions — Questions des sondages Tables de faits : - fact_adventures — Progression dans les quêtes - fact_journeys — Parcours et accomplissements - fact_certif — Résultats des certifications - fact_surveys_response — Réponses aux sondages et évaluations - fact_absence — Suivi des absences - fact_corrections — Corrections et commentaires - fact_completions — Taux de complétion - fact_async_progressions — Progression asynchrone Stockage hybride : - DuckDB/MotherDuck — Analyse OLAP, requêtes analytiques complexes - MongoDB — Données non structurées (Slack, Notion) - Redis — Cache et gestion de sessions - PostgreSQL — Source Odyssey (données brutes)
Star
Schéma
DuckDB
Base analytics
Redis
Cache
MotherDuck
Cloud
Modèle de données
Star schema : 9 tables de dimensions, 8 tables de faits

Intégrations & Pipelines

5 sources de données hétérogènes intégrées via des pipelines ETL robustes et orchestrés. Pipeline Odyssey (PostgreSQL → DuckDB) : - Extraction des données de progression des apprenants - Transformations DBT pour le modèle analytique - Synchronisation automatique vers MotherDuck (cloud) - Métriques de complétion et taux de réussite Intégration Slack : - Capture automatique des messages et threads - Suivi des problèmes signalés et résolutions - Commandes bot (/history, /help, /stats) - Architecture découplée avec NATS JetStream Intégration Notion : - Synchronisation bidirectionnelle des feedbacks hebdomadaires - Cache Redis pour performance optimale - Détection automatique des modifications Intégration HubSpot : - Sync CRM (contacts, entreprises, tickets) - Import des réponses aux sondages - Export des insights vers le CRM Pipeline Certifications (Google Drive) : - Extraction des résultats depuis Google Drive - Matching intelligent utilisateurs - Suivi des taux de réussite par formateur/équipe
5
Sources
DBT
ETL
NATS
Messaging
Temps réel
Sync
Architecture système
Architecture data : 5 sources (HubSpot, Google Drive, Odyssey, Slack, Notion), ETL Prefect/DBT vers MotherDuck, événements Slack/Notion via Kafka vers MongoDB

Stack Technique

Architecture full-stack moderne avec séparation frontend/backend et infrastructure containerisée. Frontend (Angular 18+) : - TypeScript 5.4+ avec architecture modulaire - Tailwind CSS + Angular Material pour le styling - Chart.js avec ng2-charts pour les visualisations - RxJS pour la gestion d'état réactive - Algorithme de recherche intelligent (contexte-aware) Backend (Python/Flask) : - API REST avec authentification JWT + refresh tokens - RBAC (Role-Based Access Control) - Cache Redis avec invalidation intelligente - Validation et sécurité des entrées Data Engineering : - DBT pour les transformations (dev/prod targets) - Prefect pour l'orchestration des workflows - DuckDB local / MotherDuck cloud - Kafka/NATS pour le messaging asynchrone Langages utilisés : - Python 3.8+ (backend, ETL, orchestration) - TypeScript 5.4+ (frontend Angular) - SQL (modèles DBT) Infrastructure : - Docker + Docker Compose multi-services - GitHub Actions CI/CD automatisé - Nginx reverse proxy - Let's Encrypt SSL avec renouvellement auto
Angular 18
Frontend
Flask
Backend
3
Langages
8+
Services
Liste des élèves
1 / 2
Vue Students : alertes, progression quêtes obligatoires/optionnelles, dernière activité

Orchestration & DevOps

Infrastructure de production avec orchestration Prefect, CI/CD automatisé et monitoring intégré. Orchestration Prefect : - API micro-services (port 8000) pour déclenchement manuel - Vérification de fraîcheur des sources DBT - Gestion des déploiements et IDs de flow - Endpoints : /health, /run/<service> - Monitoring des exécutions et reprise sur erreur CI/CD GitHub Actions : - Pipeline automatisé : lint, tests, build, déploiement - Déploiements zero-downtime - Gestion multi-environnements (dev, staging, prod) - SSL automatique avec Let's Encrypt + cron renewal Services Docker : - Frontend (Nginx + Angular static) - Backend API (Flask) - MongoDB (users, Slack messages) - Redis (cache) - Prefect (orchestration) - NATS (message broker) - Certbot (SSL) Fonctionnalités avancées : - Recherche intelligente context-aware (dates, noms, lieux) - JWT avec refresh automatique - Cache avec statistiques et health monitoring - Logs structurés et alertes
Prefect
Workflows
GitHub Actions
CI/CD
8+
Containers
Auto-renew
SSL
  _____  _____ _____
 |  __ \|  __ \_   _|
 | |__) | |__) || |
 |  _  /|  ___/ | |
 | | \ \| |    _| |_
 |_|  \_\_|   |_____|

Auto-hébergé sur Raspberry Pi 5

~/links

$ echo "Fait avec passion"

© 2026 Abdel Touati