Application Android de Quiz Géographique Interactive
Une expérience ludique de reconnaissance de drapeaux avec 7 modes de jeu, gamification complète et synchronisation temps réel.
FlagGuesseur est une application mobile native développée en Kotlin avec Jetpack Compose, proposant un quiz interactif de reconnaissance de drapeaux nationaux couvrant 70+ pays répartis en 7 catégories géographiques.
Parfait pour :
- 🎓 Apprendre la géographie de façon ludique
- 👥 Affronter des adversaires en duel temps réel
- 🏆 Grimper les classements mondiaux
- 🎮 Profiter de 7 modes de jeu distincts
Découvrez l'application en action : modes de jeu, duel temps réel, système de couronnes et bien plus ! 🎮
- Classique : Mode standard (3 vies, 15s/question)
- Survie : Timer accéléré (1 vie, points doublés)
- Contre-la-montre : 60s partagées
- Capitales : Identifie la capitale du pays
- Zen : Apprentissage sans stress
- Vocal : Prononce le nom du pays 🎤
- Duel : 1v1 temps réel 🔴
- Couronnes : Monnaie in-app (Indice 50♛, Revive 200-1000♛)
- 6 Niveaux : Novice → Maître des Nations
- Classement mondial : Top 100 temps réel Supabase
- Notifications : Alertes au nouveau record
- Supabase : Leaderboard + Mode duel (polling 2s)
- Room : Cache local SQLite (mode hors-ligne)
- Remote-First + Fallback : Données toujours disponibles
- Thème Atlas Nocturne (sombre, élégant, premium)
- Glassmorphism avec animations fluides
- 60 FPS constant avec Compose
| Catégorie | Tech |
|---|---|
| Langage | Kotlin 2.x |
| UI | Jetpack Compose + Material Design 3 |
| Architecture | MVVM + Repository Pattern |
| Base Locale | Room 2.x (SQLite) |
| Base Cloud | Supabase (PostgreSQL) |
| Réseau | Retrofit 2 + OkHttp 4 |
| Images | Coil 2 (SVG support) |
| Voix | Android SpeechRecognizer |
| Animations | Lottie + Compose Animations |
| Minimum SDK | API 24 (Android 7.0) |
| Target SDK | API 35 (Android 15) |
- Android Studio 2023.1+
- JDK 17+
- Gradle 8.x
-
Clone le dépôt \\�ash git clone https://github.com/Wvssim/FlagGuesseur.git cd FlagGuesseur \\
-
Configure les clés API (\local.properties) \\properties SUPABASE_URL=https://[project-id].supabase.co SUPABASE_ANON_KEY=eyJhbGci... OPENROUTER_API_KEY=sk-or-... \\
-
Build et run \\�ash ./gradlew installDebug \\
- Sélectionne un mode de jeu
- Choisis un continent
- Réponds aux questions
- Gagne des couronnes 🏆
- Consulte le classement mondial
- Vocal : Prononce le pays (SpeechRecognizer)
- Duel : Affronte un adversaire en temps réel
- Indice : Déverrouille avec 50 couronnes
Écran d'accueil — Sélection mode et catégorie
Mode Classique — Quiz avec drapeau et options
Mode Vocal — Reconnaissance de parole 🎤
Mode Duel — Affrontement 1v1 en temps réel
Écran Résultats — Score et couronnes gagnées
\
UI (Compose) → ViewModel → Repository → Data (Room/Supabase/Seed)
\\
- Tentative Supabase → Questions fraîches
- Succès → Cache Room + Retour
- Erreur réseau → Cache Room
- Cache vide → SeedData embarquées
- Lignes de code : ~8,000+ Kotlin
- Composants Compose : 40+
- Modes de jeu : 7
- Pays couverts : 70+
- Catégories : 7
Rapport complet en PDF avec architecture MVVM, diagrammes UML, spécifications techniques et démonstration.
📥 Télécharger le rapport PDF (Architecture, cas d'usage, implémentation, perspectives)
Les contributions sont bienvenues !
- Fork le projet
- Crée une branche : \git checkout -b feature/ma-feature\
- Commit : \git commit -am 'Ajoute ma feature'\
- Push et ouvre une Pull Request
Auteur : Wassim Lazim
Email : Wasssimlazim7@gmail.com
⭐ N'hésite pas à mettre une star !




