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*).

Fonctionnalités Principales
Stack Technique
Environnement
Back-end
Base de données
Autres
Front-end
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é.