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 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

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 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

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