Retour aux projets
DockerPHPSymfonySQLiteCI-CDHTML/CSS

SAE 3.01 - Quizhub, application d'apprentissage

QuizHub est une plateforme éducative accessible hors ligne (PWA) qui allie apprentissage interactif, dimension sociale et gamification. L'outil permet aux utilisateurs de créer et de partager des quiz, des flashcards ou des leçons avec une visibilité personnalisable, tout en interagissant avec la communauté via des défis entre amis et un système d'évaluation. Enfin, pour encourager la régularité, l'application valorise l'assiduité grâce à un historique détaillé, un suivi des scores et un système de séries quotidiennes (*streaks*).

Début10 septembre 2025
Fin4 mars 2026
RôleDéveloppeur
Thumbnail

Fonctionnalités Principales

Création et gestion complète de supports pédagogiques personnalisés, incluant des quiz, des flashcards et des leçons interactives.
Accessibilité continue garantie grâce à un fonctionnement hors ligne basé sur la technologie PWA (Progressive Web App).
Suivi de l'assiduité et de l'engagement des utilisateurs via un historique de progression et un système de jours consécutifs (streak).
Intégration de fonctionnalités collaboratives permettant de gérer un réseau de contacts et d'organiser des défis de connaissances.
Mise en place d'un système d'évaluation interactif offrant à la communauté la possibilité de noter et de réagir aux contenus partagés.
Exportation simplifiée des supports d'apprentissage grâce à un outil de conversion directe des leçons au format PDF.

Stack Technique

Environnement
Docker
Back-end
PHPSymfony
Base de données
SQLite
Autres
CI-CD
Front-end
HTML/CSS
Défis

Avec l'intégration continue mise en place sur GitLab CI, chaque nouvelle version déployée entraînait la recréation du conteneur Docker. Le problème principal était que cette opération risquait d'écraser systématiquement le fichier de la base de données SQLite, ce qui aurait provoqué la perte de toutes les informations des utilisateurs (comptes, scores, quiz créés).

Solutions

L'approche retenue a consisté à configurer un volume persistant au niveau de Docker, permettant d'isoler le fichier de la base de données du cycle de vie du conteneur. Pour sécuriser le tout, le script d'initialisation (entrypoint.sh) a été modifié afin d'inclure une condition : il vérifie d'abord si la base existe et ne lance l'installation que si elle est absente, garantissant ainsi la conservation des données à chaque mise à jour.

Compétences Universitaires Appliquées

CE1.01

Réaliser en respectant les besoins décrits par le client.

CE1.03

Réaliser en appliquant les principes algorithmiques.

CE1.04

Réaliser en veillant à la qualité du code et à sa documentation.

CE1.06

Réaliser en choisissant les ressources techniques appropriées

CE5.01

Conduire en communiquant efficacement avec les différents acteurs d'un projet.

CE5.04

Conduire en adoptant une démarche proactive, créative et critique.

CE6.01

Collaborer en inscrivant sa demarche au sein d'une equipe pluridisciplinaire.

CE6.04

Collaborer en developpant une communication efficace et collaborative.

CE4.01

Gérer en respectant les réglementations sur le respect de la vie privée et la protection des données personnelles.

CE4.02

Gérer en respectant les enjeux économiques, sociétaux et écologiques de l'utilisation du stockage de données, ainsi que les différentes infrastructures (data centers, cloud, etc.).

CE4.03

Gérer en s'appuyant sur des bases mathématiques.

CE4.05

Gérer en assurant la cohérence et la qualité.

CE3.01

Administrer en sécurisant le système d'information.

CE3.02

Administrer en offrant une qualité de service optimale.

CE3.03

Administrer en appliquant les normes en vigueur et les bonnes pratiques architecturales et de sécurité.

CE3.04

Administrer en assurant la continuité d'activité.