Lien du projet

FlowRank

Application web de tri et de classification automatique de mails par IA
Contexte

FlowRank est un projet réalisé en équipe dans le cadre de ma formation au CNAM. Le constat de départ : une boîte mail se remplit plus vite qu'on ne la trie, et les newsletters, notifications et messages importants finissent mélangés.

FlowRank se connecte à un compte Gmail et classe automatiquement les mails entrants par IA, afin de faire ressortir ce qui mérite vraiment l'attention de l'utilisateur dans un tableau de bord dédié.

Fonctionnement
  1. L'utilisateur crée un compte puis lie sa boîte Gmail via OAuth Google.
  2. Un planificateur (APScheduler) récupère périodiquement les nouveaux mails via l'API Gmail : les corps HTML sont décodés et convertis en texte exploitable.
  3. Un second job classe les mails non étiquetés avec un modèle de classification de texte Hugging Face (Transformers), entraîné pour le tri de mails.
  4. Le tableau de bord présente les mails triés par catégorie à l'utilisateur.
Défis à relever
  • Intégrer l'API Gmail proprement : OAuth, pagination, décodage MIME / base64 / quoted-printable des corps de mails.
  • Rendre le classifieur interchangeable : le sorter est chargé dynamiquement par configuration, ce qui permet de changer de modèle ou de stratégie sans toucher au reste du backend.
  • Travailler en équipe sur un monorepo front / back avec des environnements Docker reproductibles.
Fonctionnalités principales
  • Création de compte et authentification (JWT, bcrypt).
  • Liaison d'un compte Gmail via OAuth Google.
  • Récupération et classification automatiques des mails à intervalle régulier, sans action de l'utilisateur.
  • Tableau de bord de consultation des mails triés.
Technologies utilisées

Le backend est une API FastAPI (Python) avec SQLAlchemy et PostgreSQL, la classification s'appuie sur Transformers / PyTorch avec un modèle hébergé sur le Hub Hugging Face. Le frontend est en React 19 avec TypeScript, Tailwind CSS 4 et Vite, servi par Nginx. L'ensemble est orchestré avec Docker Compose (environnements dev et prod séparés).