Sylvio BENJAMIN
ConformIT
Tous les projets

Web · 2024 · Archivé

ConformIT

ConformIT est une application web full-stack qui aide les organisations à analyser leurs documents d’entreprise (KBIS, bilans, liasses, etc.), à évaluer le risque et à suivre leur conformité dans un module GRC structuré. Le parcours couvre l’authentification, le profil organisationnel, l’applicabilité des contrôles, l’upload et l’analyse de documents, les preuves de conformité, les traitements de risques, les audits et le reporting. L’architecture repose sur Next.js (frontend), FastAPI (API), PostgreSQL/Neon (données) et un stockage fichiers abstrait (local en dev, Cloudflare R2 en production). Firebase a été retiré du runtime au profit d’une auth JWT et d’une base SQL unique.

Next.jsReactTailwind CSSFastAPIPythonSQLAlchemyAlembicPostgreSQLNeonJWTCloudflare R2Chart.jsRechartsPytestGitHub Actions

01 : Contexte

Objectif du projet

Dans le cadre de la SAE 4.01, l’objectif était de concevoir une solution concrète pour des structures qui doivent analyser des documents sensibles et suivre leurs obligations de gouvernance, risque et conformité, sans dépendre d’outils dispersés ou insuffisamment adaptés aux exigences de sécurité. Le projet a débuté en groupe dans le cadre de la SAE, puis je l’ai poursuivi seul jusqu’à une démonstration fonctionnelle.

02 : Problématique

Problème identifié

Les entreprises et cabinets manquent souvent d’un outil unique pour uploader et analyser des documents, obtenir un scoring de risque, capitaliser des preuves de conformité, suivre les traitements ISO 31000 et préparer des audits — le tout avec isolation multi-organisation et authentification robuste.

03 : Solution

Solution mise en œuvre

Plateforme full-stack ConformIT : frontend Next.js, API FastAPI, PostgreSQL (Neon) et migrations Alembic. Fonctionnellement : auth JWT, analyse documentaire avec scoring, module GRC (risques, contrôles, incidents, KRI, conformité), preuves, traitements de risques, audits et reporting. Techniquement : sortie de Firebase runtime, isolation multi-organisation, jobs d’analyse en SQL, stockage via app.storage (local / R2), tests backend et durcissement sécurité (P0–P10 côté applicatif).

04 : Architecture

Schéma technique

  1. 01

    Présentation : Next.js / React

  2. 02

    API / Application : FastAPI (JWT, permissions, routes métier)

  3. 03

    Domaine / Services : Analyse, scoring, GRC, preuves, audits, jobs

  4. 04

    Persistance : SQLAlchemy + Alembic + PostgreSQL (Neon)

  5. 05

    Stockage fichiers : app.storage (local / Cloudflare R2)

  6. 06

    Sécurité transverse : Cookies httpOnly, IDOR, rate limiting, validation

  7. 07

    Infrastructure : Env secrets, CI GitHub Actions, healthchecks

05 : Fonctionnalités

Fonctions principales

Authentification JWT + cookies httpOnly

Upload et scoring de documents (KBIS, bilans, liasses…)

Dashboard GRC (risques, contrôles, incidents, KRI, conformité)

Suivi des analyses via analysis_jobs et findings

Preuves de conformité proposées depuis les findings

Traitements de risques (ISO 31000)

Audits GRC structurés et reporting

Isolation des données par organization_id

Stockage fichiers abstrait (local / Cloudflare R2)

06 : Technologies

Stack utilisée

Frontend

Next.jsReactTailwind CSS

Backend

FastAPIPythonSQLAlchemyAlembic

Données

PostgreSQLNeon

Stockage

Cloudflare R2

Sécurité

JWT

Visualisation

Chart.jsRecharts

Tests et CI

PytestGitHub Actions

07 : Défis techniques

Problème → résultat

La principale difficulté a été la migration hors Firebase (auth, données, schéma) vers une stack JWT + Neon sans casser le pipeline d’analyse. Il a aussi fallu sécuriser l’accès multi-tenant (IDOR), unifier l’état des analyses en SQL, abstraire le stockage fichiers, et distinguer clairement « code prêt pour la prod » et « infra réellement validée » (R2, Neon, secrets).

Résultat

Conception d’une API FastAPI sécurisée, modèle relationnel avec Alembic, auth cookie/JWT, prévention des fuites cross-organisation, découpage en lots (P0–P10), et importance de documenter les décisions techniques. Renforcement de la pratique fullstack Next.js/React et de la culture sécurité (secrets, CORS, rate limiting, stockage objet).

08 : Sécurité

Contrôles concernés

  • Authentification JWT + cookies httpOnly (access / refresh)
  • Isolation multi-organisation (contrôle IDOR sur les routes métier)
  • Secrets hors client (pas de clé API exposée dans le frontend)
  • CORS et secrets obligatoires hors environnement de développement
  • Rate limiting sur login et endpoints sensibles
  • Validation / sanitization des entrées côté API
  • Stockage fichiers isolé par organization_id (app.storage)
  • Rôles serveur (is_platform_admin), non pilotés par le client
  • Suite de tests sécurité (auth, IDOR, headers)

09 : Résultats

Résultats observables

  • Parcours de bout en bout démontrable : connexion → dépôt → analyse → GRC → preuves et audits
  • Architecture unifiée autour de FastAPI et Neon ; Firebase retiré du runtime
  • Modules GRC couvrant conformité, risques, preuves et audits
  • Audit de sécurité documenté et checklist de mise en production rédigée
  • MVP applicatif organisé en lots P0–P10 ; validation de l’infrastructure restant à effectuer

10 : Galerie

Visuels

Cliquez pour voir l’image en entier

Interface d'accueil de l'application web
Interface de téléversement des documents administratifs

11 : Liens