← Retour au portfolio
Établissements scolaires en Guinée

FIINOR

Plateforme scolaire multi-tenant configurable : backend Django/DRF, PWA école, site public et flotte de boîtiers appliance. Environ 228 000 lignes de Python, 78 000 lignes de TS/TSX et 199 fichiers de tests.

Type de client
Établissements scolaires en Guinée
Périmètre
Backend Django/DRF, PWA école, site public, flotte de boîtiers appliance
Volume
~228 000 lignes Python · ~78 000 lignes TS/TSX · 199 fichiers de tests
Stack technique
Django 5.2, DRF, PostgreSQL, Redis, Celery, Channels/Daphne, Next.js 15/React 19, Serwist, S3/R2, JWT + TOTP, Prometheus/OpenTelemetry/Loki
FIINOR

Multi-tenant strict

L'organisation cliente est déduite du compte authentifié et jamais d'un en-tête, avec des permissions au niveau objet sur une hiérarchie d'unités (niveau → classe) à héritage et scope descendant.

Entièrement paramétrable

Le système est entièrement paramétrable par établissement — catégories, plans de frais, barèmes, moteur de formules de notation (DSL propre avec alias en français), périodes hiérarchiques et bulletins agrégés — sans aucune liste métier codée en dur.

Architecture hors-ligne à vie

Sur boîtier appliance déployé chez le client : réplique locale chiffrée, licence signée RS256 avec horloge inviolable aux coupures de courant, journal de synchronisation idempotent et reprenable avec accusé de réception Merkle. Aucun secret ne réside sur le poste client, qui relaie systématiquement vers le backend en ligne. Verrouillage du poste en mode kiosque (aucun accès shell ni compte système pour le client final).

Périmètre fonctionnel

Pédagogie, chaîne financière complète (plans → échéances → transactions → allocations), gestion d'abonnements et quotas par taille d'école, médias, notifications, parrainage, module de révision de type EdTech (cours/quiz/examens), portails dédiés élève / enseignant / parent / finance / opérations.

Cycle commercial complet

Essai gratuit, paiement mobile via LengoPay/CinetPay, renouvellement in-app, lease de licence avec période de grâce.

Django 5.2DRFPostgreSQLRedisCeleryChannels / DaphneNext.js 15React 19SerwistS3 / R2JWT + TOTPPrometheusOpenTelemetryLoki
FIINOR — diagramme / capture