Open Source

Fork it. Extend it.
Ship it.

Un OS campus complet — React 19, Node.js, MongoDB, 19 conteneurs Docker. 196K lignes de code. Framework extensible avec modules config-driven.

Construit par 1 développeur + Claude AI en 81 jours. Le code est open-source. Contribuez, forkez, adaptez à votre campus.

Quick Start

De zéro à opérationnel

5 etapes. 10 minutes. Zero config manuelle.

1
Cloner et initialiser
Terminal
git clone [email protected]:EpitechAfrik/Zeno.git
cd epitech-school-app
make init

Copie les .env, build les images Docker, demarre tous les services.

2
Extension VS Code
Terminal
code --install-extension .vscode/extensions/zeno-admin/zeno-admin-0.1.0.vsix

4 panneaux : Services Docker, MongoDB Explorer, Redis Explorer, Quick Actions.

3
Verifier la stack
Terminal
make status

Tous les services doivent etre running (epitech-app, api, mongo, redis, traefik, minio).

4
Lancer le dev
Terminal
npm run dev

Frontend sur http://localhost:5173/app/ — hot reload actif.

5
Premier module
Terminal
claude /new-module mon-module

Claude génère le dataset config, les pages, les routes. En prod dans la journée.

Claude Code

16 agents spécialisés

Chaque commande active un agent AI qui connait le codebase, le stack, et les conventions.

/fullstack

Donne-moi un nom de module, je te rends les pages, le store, les routes et le dataset config.

/fullstack FULL
/backend

Route, modele, test, Swagger — je livre les 4 ensemble, jamais separement.

/backend BACK
/designer

Pas de HTML brut dans mes pages. Chaque pixel passe par le design system.

/designer UX
/devops

Un git push, et c'est en prod. Docker, CI/CD, health check — je gère.

/devops OPS
/qa

42 tests, 0 fail, coverage 87%. Rien ne passe sans moi.

/qa QA
/cybersec

Pas de .env dans git. Pas de route sans auth. Je veille.

/cybersec SEC

Developpement

9 agents
/architect ARCH Architecture, contrats API, modèles de données
/backend BACK Routes Express, modeles Mongoose, tests, Swagger
/fullstack FULL Pages React, composants, store, routing
/designer UX Design system, audits UX, accessibilite
/devops OPS Docker, CI/CD, déploiement, monitoring
/cybersec SEC Audits sécurité, OWASP, vulnérabilités
/qa QA Tests Vitest, detection bugs, quality gates
/pm PM Issues GitHub, milestones, roadmap, sprints
/marketer MKT Landing page, release notes, copywriting

Orchestrateurs

5 commandes
/team ORCH Coordonne tous les agents pour les taches multi-roles
/new-module START Creation guidee de module fullstack — 3 phases
/debug-module FIX Investigation structuree de bugs — 4 phases
/audit-ux GATE Quality gate obligatoire avant toute PR frontend
/git-push PIPE Pipeline qualite complet avant push

Documentation

2 commandes
/update-docs DOCS Sync docs avec le code apres chaque push
/cost-estimate COST Estimation cout de developpement du codebase
Du code a la prod

Chaque module passe par 8 etapes

Aucun raccourci. Tests, securite, audit UX — tout est automatise avant le push.

"On a besoin d'un module contrats RH" /team Plan + Design "API, modele, test — les 3 ensemble" /backend Build "Pas de HTML brut. Audit UX : PASS ✓" /audit-ux Design "42 tests. 0 fail. Coverage 87%" /qa test Tests "0 vuln critique. Auth OK. CORS OK." /cybersec Securite "CI vert. Deploy SSH. Health check ✓" /git-push Production EN PROD
OWASP A01–A10 Couverture securite
5 couches Defense en profondeur
OAuth 2.0 Microsoft + Google
Permify ReBAC Permissions granulaires
TLS Traefik Let's Encrypt
0 secrets Dans le code source
Architecture

La stack

Chaque brique est open-source. Zéro licence propriétaire.

FrontendReact 19.2Vite 7.2Zustand 5.0Tailwind CSS 3.4React Router 7.10Lucide IconsSocket.io ClientReact FlowHTTP / APISocket.ioInfrastructureDocker ComposeTraefik 3NginxDozzleDocuSealBull BoardBackendNode.js 22Express 4.21Mongoose 8BullMQPassport.jsJWTSécuritéPermify (ReBAC)OAuth 2.0 (Google + Microsoft)HelmetRate LimitingCORSDataMongoDB 8Redis 7MinIO S3PostgreSQL (Permify)IntegrationsSarbacaneResendMailchimpWhatsApp Cloud APIGA4 Data APIMetricool
Extensibilite

Ajouter un module = 3 fichiers

Le Dataset Engine, les permissions Permify, le stockage MinIO, les notifications — tout est deja la. Vous ecrivez le metier, Zeno fournit l'infrastructure.

1
Le besoin « On veut gérer les contrats RH »
2
Le config Un fichier dataset.config.js
3
Les pages Detail + Form en JSX
4
Les briques DocuSeal, MinIO, Permify...
En prod Visible par toute l'équipe
Infrastructure incluse
Dataset EngineRecherche + FiltresPermissions PermifyStockage MinIOSignature DocuSealTemplates PDFPortailsExport CSV/PDFNotificationsAPI REST autoChat Socket.ioURL State Hooks
contracts.config.js
export default {
  entity: 'contracts',
  label: 'Contrats',
  icon: 'FileText',
  apiEndpoint: '/api/contracts',
  columns: [
    { key: 'employee', label: 'Employe', type: 'entity', entity: 'users' },
    { key: 'type', label: 'Type', type: 'badge' },
    { key: 'startDate', label: 'Debut', type: 'date' },
    { key: 'status', label: 'Statut', type: 'status' }
  ],
  filters: [
    { key: 'type', label: 'Type', options: ['CDI','CDD','Stage'] },
    { key: 'status', label: 'Statut', options: ['actif','expire','resilie'] }
  ]
}
ContractDetail.jsx
import { useEntityDetail } from '../../hooks/useEntityDetail';
import { Page, PageHeader, Tabs, Tab, TabPanel } from '../../components/ui';

export default function ContractDetail() {
  const { entity, loading } = useEntityDetail('contracts', 'fetchContracts');
  if (loading) return <LoadingState />;
  return (
    <Page>
      <PageHeader title={entity.employee?.name} />
      <Tabs>...</Tabs>
    </Page>
  );
}

Modules construisibles rapidement

Contrats RH ~2-3 jours

Signature DocuSeal, archivage MinIO, historique par employe.

Conges & Absences ~2-3 jours

Workflow de validation, calendrier équipe, soldes temps réel.

Fiches de paie ~2 jours

Upload PDF, consultation portail employe, lien contrat.

Tickets maintenance ~1-2 jours

Kanban par salle/batiment, photos, notifications auto.

Bourses & Aides ~2 jours

Demande → validation → impact echeancier automatique.

Centre de notifications ~3-4 jours

Feed in-app, preferences par canal, dispatch email + push.

Velocite

324 000 lignes en 133 jours

Premier commit le 7 janvier 2026. Rythme moyen : 2 435 lignes/jour.

S2 — 7 jan. Jour 1

Backend MongoDB + OAuth, API Express, tous les modeles, CRM contacts, DocuSeal, Quiz natif, MinIO.

S3 — 12 jan. 49 commits

Portail candidat, pipeline admissions, CRM, 60+ composants UI, portail etudiant, finance.

S4 — 19 jan. Production

Premier déploiement Docker, CI/CD, les premiers candidats s'inscrivent.

S5 — 26 jan. Pedagogie

45 pages pédagogie, 6 systèmes de notation, présences, perdiem, cursus, planning académique.

S6 — 3 fev. 37 commits

Permify ReBAC, Design System 60+ composants, Dataset framework, URL state hooks.

S7 — 10 fev. Framework

Dataset Engine, Finance module, Campus events, Career center, 42 dataset configs.

S8 — 16 fev. 58 commits — pic

Chat Socket.io, Portail parent (10 pages), Retro-planning Gantt/Kanban/Table, Import generique.

S9-10 — 23 fev. Ops

Cleanup, UX polish, Dozzle monitoring, VSCode Zeno Admin extension, CI/CD Node 22.

S11 — 12 mar. 64 commits

Marketing Intelligence (10 pages, GA4, Metricool, UTM, funnels), Scalar API docs (414 routes, 547 ops), Form Builder, Bull Board.

S12 — 18 mar. 18 commits

Module Rendez-vous universels, Portail Partenaire, CI/CD local, Permify Makefile, Traefik dev stack.

S13 — 20 mar. 25 commits

Portail Alumni (OAuth, matching emploi), Carrière Étudiant, QR Check-in événements, offres partenaires, dashboard marketing engagement.

S14 — 27 mar. 27 commits

Architecture multi-portails par sous-domaine, landing pages par portail, login dédié OAuth par portail, Traefik SSL wildcard, rebranding Zeno, iPad-first design system, guided tour driver.js, CSV preview.

S20 — 20 mai cette semaine

Module Campus Communications complet : publipostage Email/WhatsApp, wizard Excel 4 étapes (Upload→Mapping→Compose→Review), sécurité Permify, BullMQ workers, 537 routes API.

Zeno

Ce qu'on a livre cette semaine

Chaque semaine, Zeno évolue. Voici les dernières fonctionnalités déployées — testables en production.

S20 — 20 mai 2026NEW
Campus Communications — publipostage Email/WhatsApp

Module complet de publipostage campus : Dataset des communications, formulaire Audience avec TemplatePicker, détail avec CommunicationLog, sécurité Permify par campus.

Wizard Excel 4 étapes pour publipostage

Upload→Mapping→Compose→Review URL-driven (useURLTab), drag&drop .xlsx/.xls/.csv, détection colonnes, RichTextEditorV2 avec palette de variables, prévisualisation interpolée, envoi BullMQ.

Parser Excel/CSV + endpoint /excel/parse

Nouveau endpoint POST /communications/excel/parse — parsing xlsx/csv côté serveur, normalisation des headers, suggestion de keyColumn, limite 5000 lignes.

S14 — 29 mars 2026RECENT
Architecture multi-portails par sous-domaine

Chaque portail sur son propre sous-domaine (etudiant., parent., candidat., partenaire., alumni., staff.) avec landing page dediee, login OAuth adapte et routing isole. Traefik SSL wildcard.

Rebranding Zeno + iPad-first design

Nouvelle identite visuelle Zeno (mascotte, palette sage green), design system iPad-first, responsive sidebar, parallax guide.

CSV Preview + Guided Tour

Preview macOS-style pour imports CSV, driver.js guided tour pour onboarding utilisateurs, corrections sidebar et routing.

Grades & Attendance polish

Header controls unifies, carry-over promotions, inline grade editing, Zeno theme colors attendance, quick roll call par defaut.

S13 — 20 mars 2026RECENT
Portail Alumni

6e portail — connexion OAuth, dashboard, profil editable, matching offres d'emploi par competences, gestion d'experiences, reseau alumni avec filtre mentors.

Offres d'emploi partenaires

Les partenaires postent des offres depuis leur portail. Workflow de validation staff. Matching automatique avec alumni (skills) et etudiants (competences calculees depuis les notes).

Événements + QR Check-in

Inscription aux événements depuis le portail partenaire. QR code unique par inscription. Page check-in staff avec scanner caméra + check-in manuel. Toujours les deux disponibles.

Carriere Etudiant

Nouvelle page dans le portail etudiant : toggle 'ouvert au stage', competences derivees des notes, offres d'emploi correspondantes avec score de matching.

Dashboard Marketing — Engagement Partenaires

Widget engagement partenaires : taux de présence événements, offres publiées, rendez-vous 30j, méthode de check-in (QR vs manuel).

QR Code local

Composants generiques QRCodeDisplay + QRScanner dans la librairie UI. Remplacement de l'API externe qrserver.com par generation locale (offline). UTM module migre.

S12 — 18 mars 2026RECENT
Module Rendez-vous universels

MeetingSlot avec lifecycle complet, booking par token public, invitations email + WhatsApp, rappels cron. Deploye sur 4 portails.

Portail Partenaire

Authentification dediee (mot de passe + magic link), dashboard, gestion des rendez-vous, profil entreprise.

CI/CD local + Permify

Pipeline make ci-quick, Makefile Permify, Traefik dev stack, tests meeting-slots.

S11 — 12 mars64 commits
Marketing Intelligence

10 pages — GA4 Data API, Metricool (reseaux sociaux), UTM builder, funnels de conversion, personas, journey candidat.

Scalar API Docs

OpenAPI auto-généré — 414 routes, 547 opérations documentées. Thème Zeno.

Form Builder + Automations

12 types de champs, drag & drop, logique conditionnelle, React Flow. 9 actions, 8 triggers, BullMQ.

S8 — 16 fev.58 commits — pic
Chat temps reel

Socket.io — messagerie interne entre staff, étudiants et parents. Conversations par équipe.

Portail parent complet

10 sous-pages : notes, assiduite, EDT, documents, paiements, messagerie, rendez-vous.

Retro-planning + Import generique

Gestion de projets Gantt/Kanban/Table. Import CSV/JSON pour toutes les entites.

S6 — 3 fev.37 commits
Permify (ReBAC)

Authorization service Zanzibar-inspired. Permissions par équipe, rôles, droits granulaires.

Design System

60+ composants UI, Dataset framework config-driven, URL state hooks, barrel imports.

S4 — 19 jan.EN PRODUCTION
Premier deploiement

Docker CI/CD, pipeline admissions Kanban, portail candidat. Les premiers candidats s'inscrivent.

S2 — 7 jan.Jour 1
Backend MongoDB + OAuth

API Express, tous les modeles, CRM contacts, DocuSeal, Quiz natif, MinIO, OAuth Google + Microsoft.

Ce qu'on construit ensuite

done
Moteur de triggers + Automations

9 actions, 8 triggers, BullMQ, Form Builder, Surveys — tout déployé en production.

done
Module Rendez-vous universels + Portail Partenaire

MeetingSlot, booking par token, invitations, notifications email + WhatsApp, rappels cron, portail partenaire avec auth dédiée — tout déployé.

done
Scoring decrochage

Dashboard decrochage avec alertes VERT/ORANGE/ROUGE, filtres par promotion, actions rapides (appel, email, WhatsApp). Route /dropout-scoring — en production.

2j
Dashboard completion onboarding

Taux de completion en temps reel : docs signes, comptes actives, formulaires remplis.

done
Pipeline Partners B2B

Dataset partenaires, fiche detail, formulaire, portail avec auth dediee — en production.

1.5j
Champs prescripteur + referralCode

Tracking prescripteurs et parrainage sur le modele Candidate.

done
Check-in digital événements

QR code scan + check-in manuel — toujours les deux disponibles. Scanner camera (html5-qrcode), toggle par nom, barre de progression temps reel. Deploye.

done
Stats par événement + Marketing Dashboard

Taux de présence, méthode de check-in (QR vs manuel), offres partenaires, rendez-vous 30j — widget engagement partenaires intégré au dashboard marketing.

done
Portail Alumni (OAuth)

6e portail — connexion Microsoft/Google, dashboard, profil editable, matching offres d'emploi, gestion d'experiences, reseau alumni avec filtre mentors. 11 tests.

done
Carriere Etudiant + Matching Competences

Page carriere dans le portail etudiant : toggle recherche de stage, competences calculees depuis les notes, offres correspondantes. Matching alumni + etudiants pour les partenaires.

1-2j
Integration SMS API Afrique

Connexion a un fournisseur SMS local pour envoi automatise.

1j
Backend projets étudiants

Model Mongoose + route CRUD + entity apiStore pour les projets étudiants. Les pages frontend existent déjà (Dataset, Détail, Form) — il manque seulement le backend et la persistance.

3-5j
Gestion multi-pays / multi-sites

Architecture multi-pays pour un groupe scolaire : config par site (devise, langue, fuseau horaire, réglementation), consolidation groupe, dashboards comparatifs inter-sites.

2-3j
Sync Zeno → Outlook Calendar

Push one-way des événements Zeno (cours, RDV, événements campus) vers Outlook via Microsoft Graph API. Catégorie 'Zeno' dédiée dans le calendrier utilisateur. Zeno ne lit pas le calendrier — il écrit uniquement.

Open Source

Contribuer a Zeno

3 facons de participer — que vous soyez etudiant, alumni ou dev dans une autre ecole.

Etudiant Epitech

Contribue a l'outil que tu utilises chaque jour. Prends un ticket du backlog, code un module, ameliore l'UX.

Voir le backlog →
Alumni développeur

Ajoute un module en 2-3 jours grace au framework Dataset. Architecture documentee, tests en place.

Guide onboarding →
Autre ecole / campus

Forkez Zeno et adaptez-le a votre campus. Le code est open-source, la stack est standard.

Fork sur GitHub →
Documentation

Documentation