GeoQuiz
Application mobile multiplateforme de quiz sur la géographie accompagnée d'une application web d'administration
Projet personnel (automne 2019 - présent)
Le but de GeoQuiz est de proposer une application mobile de quiz sur la géographie. Pour cela, deux applications ont été réalisées :
- l'application cliente Android et iOS permettant de jouer aux différents quiz avec une difficulté croissante au fur et à mesure des parties ;
- l'application web permettant de gérer la base de données des questions et des langues supportées.
Quatre thèmes sont actuellement proposés avec des questions pouvant prendre différentes formes : avec du texte, avec des images ou avec des marqueurs sur une carte. La progression de l'utilisateur est sauvegardée pour lui permettre de connaître son niveau et de se comparer aux autres joueurs (le leaderboard est en cours de développement).
- Github (application mobile) https://github.com/Romain-Guillot/GeoQuiz-ClientApp
- Githhub (application web d'administration) https://github.com/Romain-Guillot/GeoQuiz-AdminApp
- Play Store https://play.google.com/store/apps/details?id=com.develob.geoquiz
Technologies
-
L'application mobile et l'application web sont développées avec Flutter, le framework open source de développement d'applications mutliplateformes créé par Google.
-
Firebase a été utilisé pour gérer les données de l'application et pour collecter les rapports de bugs. La base de données de question et des données utilisateurs est gérée avec Cloud Firestore, une base de données NoSQL orientée documents. Les fichiers sont stockés sur Cloud Storage (photos de drapeaux ou de monuments par exemple). Les rapports de bugs sont collectés et analysés avec Crashlytics.
-
La base de données de questions est sauvegardée localement sur l'appareil de l'utilisateur avec SQLite. Leurs progressions personnelles sont également stockées avec SQLite.
-
Les pipelines de CI/CD sont orchestrés avec Travis CI, en particulier pour les tests, la génération automatique de screenshots et la publication sur le Play Store.
-
Un environnement de développement a été créé avec une image Docker contenant toutes les dépendances utilisées pour le développement des deux applications. L'environnement de déploiement pour l'application web est aussi géré avec Docker.
-
La qualité du code des applications est analysée avec SonarQube.