Skip to content

Cahier des charges


L’apprentissage moderne fait face à plusieurs défis majeurs :

  • Surcharge informationnelle : les apprenants sont submergés par la quantité de contenus disponibles
  • Manque de temps : créer des supports d’apprentissage efficaces demande un investissement conséquent
  • Méthodes inadaptées : les techniques d’apprentissage traditionnelles ne tirent pas parti des avancées en sciences cognitives
  • Accessibilité limitée : peu d’outils prennent en compte les troubles d’apprentissage (dyslexie, etc.)

Mindlet est né d’un constat simple : transformer n’importe quel contenu pédagogique en exercices interactifs devrait être automatique et instantané.

ÉlémentDétail
FormationMaster 2 Informatique - Développement Full Stack
UniversitéUniversité de Corse Pasquale Paoli
Année2025-2026
ÉquipeMehdi Ghoulam, Anthony Menghi
ApplicationTypePoints fortsPoints faiblesIA générativePrix
AnkiOpen sourcePuissant, répétition espacée, personnalisableInterface datée, courbe d’apprentissage élevéeNonGratuit
QuizletSaaSLarge communauté, multiplateformeIA limitée, pas de génération automatiqueBasiqueFreemium
BrainscapeSaaSFlashcards basées sur les sciences cognitivesContenus limités, payantNon9.99€/mois
KahootSaaSGamification, mode classe engageantOrienté enseignant uniquementNonFreemium
NotionSaaSFlexible, wiki personnelPas de fonctions d’apprentissage actifOuiFreemium
ChatGPTSaaSPuissant, polyvalentPas spécialisé éducation, pas de suiviOuiFreemium

Génération IA automatique

Transformation instantanée de n’importe quel contenu (PDF, audio, vidéo, web) en exercices interactifs grâce à l’IA

10+ formats d'apprentissage

Flashcards, QCM, vrai/faux, associations, textes à trous, mind maps, timelines, jeux interactifs…

Accessibilité native

Support des troubles d’apprentissage : police OpenDyslexic, mode contraste élevé, lecteur d’écran

Import multimodal

PDF, images, audio, vidéo, YouTube, sites web - tout devient source d’apprentissage


Étudiants

Besoin principal : Réviser efficacement pour les examens

  • Transformer leurs cours en exercices
  • Suivre leur progression
  • Apprendre n’importe où (mobile)

Professionnels

Besoin principal : Formation continue

  • Mémoriser des procédures
  • Préparer des certifications
  • Partager des connaissances

Enseignants

Besoin principal : Créer du contenu pédagogique

  • Générer des exercices rapidement
  • Partager avec leurs élèves
  • Suivre la progression de classe
Cas d'utilisation - Mindlet
100%
flowchart TB
    subgraph Acteurs["Acteurs"]
        USER[("Utilisateur")]
        AI[("Service IA")]
    end

    subgraph Import["UC: Importer du contenu"]
        UC1["Importer un document PDF"]
        UC2["Importer une image"]
        UC3["Importer un fichier audio/vidéo"]
        UC4["Importer depuis YouTube"]
        UC5["Importer depuis un site web"]
        UC6["Saisir du texte manuellement"]
    end

    subgraph Learn["UC: Apprendre"]
        UC7["Réviser avec des flashcards"]
        UC8["Passer un quiz QCM"]
        UC9["Jouer à un jeu interactif"]
        UC10["Consulter ses statistiques"]
        UC11["Planifier ses révisions"]
    end

    subgraph Manage["UC: Gérer ses collections"]
        UC12["Créer une collection"]
        UC13["Organiser ses cartes"]
        UC14["Partager une collection"]
        UC15["Explorer la communauté"]
    end

    USER --> Import
    USER --> Learn
    USER --> Manage
    AI -.->|"génère"| UC1
    AI -.->|"génère"| UC2
    AI -.->|"génère"| UC3
    AI -.->|"génère"| UC4
    AI -.->|"génère"| UC5

    style Acteurs fill:#1565c0
    style Import fill:#e65100
    style Learn fill:#2e7d32
    style Manage fill:#ad1457
Pipeline de génération des cartes
100%
flowchart LR
    subgraph Input["Entrée"]
        I1["PDF"]
        I2["Image"]
        I3["Audio"]
        I4["Vidéo"]
        I5["YouTube"]
        I6["Site web"]
    end

    subgraph Process["Traitement IA"]
        P1["Extraction\ndu contenu"]
        P2["Analyse\nsémantique"]
        P3["Génération\nembeddings"]
        P4["Création\ndes cartes"]
    end

    subgraph Output["Sortie"]
        O1["Flashcards"]
        O2["QCM"]
        O3["Vrai/Faux"]
        O4["Associations"]
        O5["etc."]
    end

    Input --> P1
    P1 --> P2
    P2 --> P3
    P3 --> P4
    P4 --> Output

    style Input fill:#ff8f00
    style Process fill:#388e3c
    style Output fill:#1976d2
IDExigencePrioritéStatut
EF01Importer des documents PDF et en extraire le texteHauteFait
EF02Importer des images et appliquer l’OCR (mistral-ocr-latest)HauteFait
EF03Importer des fichiers audio et les transcrire (voxtral-mini-latest)HauteFait
EF04Importer des vidéos YouTube et extraire la transcriptionMoyenneFait
EF05Importer depuis un site web (crawling + conversion markdown)MoyenneFait
EF06Importer des fichiers vidéo (extraction audio puis transcription)MoyenneFait
EF07Saisir du texte manuellementHauteFait
IDExigencePrioritéStatut
EF08Générer automatiquement des flashcards (question/réponse)HauteFait
EF09Générer automatiquement des QCM avec distracteurs intelligentsHauteFait
EF10Générer automatiquement des vrai/faux avec explicationHauteFait
EF11Générer des associations (match pair terme/définition)HauteFait
EF12Générer des cartes texte libre (réponse ouverte)MoyenneFait
EF13Générer des cartes slider (estimation numérique)MoyenneFait
EF14Générer des cartes drag & drop (catégorisation)MoyenneFait
EF15Générer des cartes ranking (classement par ordre)MoyenneFait
EF16Générer des cartes geo guess (localisation sur carte)BasseFait
IDExigencePrioritéStatut
EF17Système de répétition espacée pour les flashcardsHauteFait
EF18Sessions de révision interactivesHauteFait
EF19Jeux interactifs et gamificationMoyenneFait
EF20Statistiques d’apprentissage (progression, scores)MoyenneFait
IDExigencePrioritéStatut
EF21Créer et organiser des collectionsHauteFait
EF22Éditer et supprimer des cartes manuellementHauteFait
EF23Recherche sémantique dans les contenus (embeddings Qdrant)MoyenneFait
IDExigencePrioritéStatut
EF24Partager des collections avec la communautéMoyenneEn cours
EF25Explorer les collections publiquesMoyennePlanifié
EF26Rejoindre des groupes d’étudeBassePlanifié
EF27Messagerie entre apprenantsBassePlanifié
IDExigencePrioritéStatut
EF28Support VoiceOver/TalkBack (lecteurs d’écran)HauteFait
EF29Police OpenDyslexic pour la dyslexieHauteFait
EF30Mode contraste élevé pour malvoyantsMoyenneFait
EF31Respect des préférences système (taille texte, animations réduites)MoyenneFait
IDExigencePrioritéStatut
EF32Authentification JWT (Laravel Sanctum)HauteFait
EF33Vérification email obligatoireHauteFait
EF34Chiffrement des données sensibles (AES-256)HauteFait
EF35Rate limiting API (60 req/min)HautePlanifié

Gantt - Planning des versions Mindlet
100%
gantt
    title Planning des versions Mindlet
    dateFormat YYYY-MM
    axisFormat %b %Y

    section V0 - Minimal
    Architecture de base          :done, v0-1, 2025-09, 1M
    Import texte et PDF           :done, v0-2, 2025-10, 1M
    Génération flashcards         :done, v0-3, 2025-10, 1M
    Authentification              :done, v0-4, 2025-10, 1M

    section V1 - Acceptable
    Import multimodal complet     :done, v1-1, 2025-11, 1M
    9 types de cartes             :done, v1-2, 2025-11, 2M
    Répétition espacée            :done, v1-3, 2025-11, 1M
    Gestion des collections       :done, v1-4, 2025-11, 1M
    Beta publique                 :done, v1-5, 2025-12, 1M

    section V2 - Optimal
    Partage communautaire         :active, v2-1, 2026-01, 2M
    Exploration communauté        :v2-2, 2026-02, 2M
    Groupes d'étude               :v2-3, 2026-03, 1M

    section V3 - Dream
    Mode B2B entreprises          :v3-1, 2026-04, 3M
    API publique développeurs     :v3-2, 2026-06, 2M
    Mode hors-ligne               :v3-3, 2026-07, 2M
Terminé

Objectif : Prouver la faisabilité technique du concept

FonctionnalitéResponsableStatut
Architecture microservicesMehdiFait
Import texte brutAnthonyFait
Import PDF avec extractionAnthonyFait
Génération flashcards basiqueAnthonyFait
Interface mobile basiqueMehdiFait
Authentification JWTMehdiFait

Livrable : Prototype fonctionnel démontrant la génération de flashcards à partir d’un PDF

DomaineMehdi GhoulamAnthony Menghi
Frontend React NativePrincipalSupport
Backend LaravelPrincipalSupport
Service IASupportPrincipal
DevOps / KubernetesPrincipalSupport
Base de donnéesPrincipalSupport
TestsPartagéPartagé
DocumentationPartagéPartagé

Contrainte académiqueSolution MindletConformité
Infrastructure à base de conteneursKubernetes managé (OVHcloud)Conforme
Backend en microservices ou APILaravel API + Service IA séparéConforme
Une ou plusieurs bases de donnéesPostgreSQL + Qdrant + RedisConforme
Frontend responsive ou application nativeReact Native (iOS + Android)Conforme
Service basé sur l’IA (optionnel)LangGraph + Mistral AIConforme
Architecture - Contraintes techniques
100%
flowchart TB
    subgraph Frontend["Application Native"]
        RN["React Native\n(Expo)"]
        RN2["iOS + Android"]
    end

    subgraph Backend["Backend Microservices"]
        API["Laravel API\n(RESTful)"]
        IA["Service IA\n(LangGraph)"]
    end

    subgraph Data["Bases de données multiples"]
        PG["PostgreSQL\n(Relationnel)"]
        QD["Qdrant\n(Vectoriel)"]
        RD["Redis\n(Cache)"]
    end

    subgraph Infra["Infrastructure Conteneurs"]
        K8S["Kubernetes\n(OVHcloud)"]
        LB["Load Balancer"]
    end

    RN --> RN2
    RN2 <-->|"HTTPS/JSON"| LB
    LB --> API
    API <-->|"HTTP"| IA
    API --> PG
    API --> RD
    IA --> QD

    K8S --> API
    K8S --> IA

    style Frontend fill:#1565c0
    style Backend fill:#e65100
    style Data fill:#2e7d32
    style Infra fill:#ad1457

Contrainte : Infrastructure à base de conteneurs

Solution :

  • Orchestration : Kubernetes managé (OVHcloud)
  • Containerisation : Docker pour tous les services
  • CI/CD : GitHub Actions
  • Monitoring : Prometheus + Grafana
  • Load Balancing : OVHcloud Cloud Load Balancer

Avantages :

  • Scalabilité horizontale automatique
  • Haute disponibilité
  • Déploiements sans interruption
ContrainteMesure
RGPDHébergement 100% européen (OVHcloud, Hetzner)
ChiffrementTLS 1.3 pour toutes les communications
Données sensiblesAES-256 pour les données au repos
Mots de passeHachage bcrypt
ConsentementCollecte explicite et minimale

RôlePersonneCompétencesAllocation
Développeur Full StackMehdi GhoulamReact Native, Laravel, Kubernetes, DevOps100%
Ingénieur IAAnthony MenghiLangGraph, Python, Mistral AI, LangChain100%
Encadrant universitaireUniversité de CorseSuivi pédagogique, validation académiquePonctuel
Mentor PEPITERéseau PEPITEAccompagnement entrepreneurialPonctuel
RessourceDescriptionStatut
MacBook Pro x2Machines de développementDisponible
iPhone (test)Tests iOS natifsDisponible
Smartphone Android (test)Tests Android natifsDisponible
Casques audioTests fonctionnalités audioDisponible
ServiceFournisseurUsageCoût mensuel estimé
KubernetesOVHcloudOrchestration conteneurs~100€
Stockage S3HetznerFichiers utilisateurs~20€
PostgreSQLNeonBase relationnelleGratuit (dev)
QdrantQdrant CloudBase vectorielleGratuit (dev)
RedisUpstashCache et queuesGratuit (dev)
CDNCloudflareDistribution statiqueGratuit
DomaineOVHmindlet.app~15€/an

Coût total estimé : ~150€/mois en phase de développement

LogicielLicenceCoût
React Native / ExpoMITGratuit
LaravelMITGratuit
LangGraph / LangChainApache 2.0Gratuit
Mistral AI APIPayante~50€/mois
PostgreSQLPostgreSQL LicenseGratuit
RedisBSDGratuit
GitHubFreemiumGratuit (education)
FigmaFreemiumGratuit (education)
VS CodeMITGratuit
Type de donnéesSourceUsageVolume estimé
Contenus pédagogiquesUtilisateursGénération de cartesVariable
Embeddings vectorielsMistral AIRecherche sémantique~1GB/10k docs
Métriques d’apprentissageApplicationPersonnalisation, stats~100MB/1k users
Logs et monitoringInfrastructureDebugging, optimisation~1GB/mois

Projet validé

Lauréats nationaux PEPITE France (30 finalistes sur 1000+ candidats)

Contraintes respectées

Infrastructure conteneurs, microservices, multi-BDD, app native, IA

Équipe soudée

Développement collaboratif avec répartition claire des responsabilités

V1 livrée

Beta publique opérationnelle depuis décembre 2025


Cahier des charges - Mindlet - Version 1.0 - Janvier 2026