<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Akinwumi Michael</title>
    <description>The latest articles on DEV Community by Akinwumi Michael (@9jadevo).</description>
    <link>https://dev.to/9jadevo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2472094%2F8efb02fb-c9b5-4cac-b8d1-cadf75423a56.png</url>
      <title>DEV Community: Akinwumi Michael</title>
      <link>https://dev.to/9jadevo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/9jadevo"/>
    <language>en</language>
    <item>
      <title>I Revived mQuiz: A Gamified Quiz App Built to Make Learning Addictive</title>
      <dc:creator>Akinwumi Michael</dc:creator>
      <pubDate>Sun, 07 Jun 2026 16:01:44 +0000</pubDate>
      <link>https://dev.to/9jadevo/i-revived-mquiz-a-gamified-quiz-app-built-to-make-learning-addictive-2hl9</link>
      <guid>https://dev.to/9jadevo/i-revived-mquiz-a-gamified-quiz-app-built-to-make-learning-addictive-2hl9</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-05-21"&gt;GitHub Finish-Up-A-Thon Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;MQuiz is a gamified mobile quiz app built to make learning, trivia, and exam-style practice more engaging.&lt;/p&gt;

&lt;p&gt;The project started as an older quiz app idea, but it needed a serious rebuild to become something that could feel like a real mobile product. For this challenge, I revived MQuiz by moving it into a new Flutter app, rebuilding the experience with a cleaner structure, and connecting it to a modern backend.&lt;/p&gt;

&lt;p&gt;The new MQuiz app is built around the idea that quizzes should feel more like a game. Instead of only answering questions, users can progress, earn rewards, manage lives, use boosters, compete with others, join leagues, enter contests, and track their performance.&lt;/p&gt;

&lt;p&gt;The current version includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flutter mobile app built in a new &lt;code&gt;apps/mobile/&lt;/code&gt; project&lt;/li&gt;
&lt;li&gt;NestJS API integration&lt;/li&gt;
&lt;li&gt;Firebase authentication&lt;/li&gt;
&lt;li&gt;Google sign-in&lt;/li&gt;
&lt;li&gt;Apple sign-in&lt;/li&gt;
&lt;li&gt;Phone OTP login&lt;/li&gt;
&lt;li&gt;Guest mode&lt;/li&gt;
&lt;li&gt;Profile setup flow&lt;/li&gt;
&lt;li&gt;Game-style home dashboard&lt;/li&gt;
&lt;li&gt;Category and subcategory quiz flow&lt;/li&gt;
&lt;li&gt;Lives system&lt;/li&gt;
&lt;li&gt;Coins system&lt;/li&gt;
&lt;li&gt;XP and stage progress&lt;/li&gt;
&lt;li&gt;Daily challenge card&lt;/li&gt;
&lt;li&gt;Booster system&lt;/li&gt;
&lt;li&gt;Booster store&lt;/li&gt;
&lt;li&gt;Countdown timer during quizzes&lt;/li&gt;
&lt;li&gt;Multiple-choice questions&lt;/li&gt;
&lt;li&gt;Fun &amp;amp; Learn question mode&lt;/li&gt;
&lt;li&gt;Guess the Word question mode&lt;/li&gt;
&lt;li&gt;Image-supported questions&lt;/li&gt;
&lt;li&gt;Quiz result screen&lt;/li&gt;
&lt;li&gt;Share result feature&lt;/li&gt;
&lt;li&gt;Mystery box reward trigger&lt;/li&gt;
&lt;li&gt;Progress map&lt;/li&gt;
&lt;li&gt;Leaderboard&lt;/li&gt;
&lt;li&gt;Profile screen&lt;/li&gt;
&lt;li&gt;Badges display&lt;/li&gt;
&lt;li&gt;Referral code and native share&lt;/li&gt;
&lt;li&gt;Coin history&lt;/li&gt;
&lt;li&gt;Paystack payment flow&lt;/li&gt;
&lt;li&gt;Apple in-app purchase setup&lt;/li&gt;
&lt;li&gt;Live battle mode with Firestore sync&lt;/li&gt;
&lt;li&gt;Battle result screen&lt;/li&gt;
&lt;li&gt;League list, detail, quiz, and leaderboard&lt;/li&gt;
&lt;li&gt;Contest list, detail, quiz, and result flow&lt;/li&gt;
&lt;li&gt;Sponsor banner support&lt;/li&gt;
&lt;li&gt;Active contest banner&lt;/li&gt;
&lt;li&gt;Clean Material 3 design system&lt;/li&gt;
&lt;li&gt;Light and dark theme support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal of MQuiz is to turn learning into a fun, competitive, and repeatable experience for students, quiz lovers, and casual learners.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;APK Download: &lt;a href="https://drive.google.com/file/d/13XaMbem5ay2vblDJFLivpZJlvI6xN-Ie/view?usp=sharing" rel="noopener noreferrer"&gt;Download MQuiz APK&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo Video: &lt;a href="https://youtube.com/shorts/c82B_ziTcdg" rel="noopener noreferrer"&gt;Watch MQuiz Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Repository: &lt;a href="https://github.com/9jaDevo/mquizapp" rel="noopener noreferrer"&gt;View Source Code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Screenshots:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F321os8oy8ltlhbtr4zyy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F321os8oy8ltlhbtr4zyy.png" alt="App Screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e2qw1mdbcubtdb4m2xc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e2qw1mdbcubtdb4m2xc.png" alt="VS Code + GitHub Copilot" width="800" height="439"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Comeback Story
&lt;/h2&gt;

&lt;p&gt;MQuiz was not originally in the shape I wanted it to be.&lt;/p&gt;

&lt;p&gt;The older version was based on an existing CodeCanyon-style app structure. It gave me a starting point, but it was not the clean, scalable, original product I wanted to submit or continue building long-term.&lt;/p&gt;

&lt;p&gt;The old version had several limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The structure was not ideal for a full product rebuild&lt;/li&gt;
&lt;li&gt;The app did not fully represent the experience I wanted for users&lt;/li&gt;
&lt;li&gt;Some features were either incomplete or not connected properly&lt;/li&gt;
&lt;li&gt;The user experience did not feel modern enough&lt;/li&gt;
&lt;li&gt;The codebase needed a cleaner architecture&lt;/li&gt;
&lt;li&gt;The app needed a stronger game-like flow&lt;/li&gt;
&lt;li&gt;It was not ready as a primary mobile product for both Android and iOS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the GitHub Finish-Up-A-Thon Challenge, I decided not to just polish the old app. I used the opportunity to properly revive MQuiz by rebuilding it as a new Flutter mobile app.&lt;/p&gt;

&lt;p&gt;The new app now lives inside &lt;code&gt;apps/mobile/&lt;/code&gt;, while the older &lt;code&gt;lib/&lt;/code&gt; app is being retired. The new Flutter app is now the primary delivery version for both Android and iOS.&lt;/p&gt;

&lt;p&gt;That was the real comeback: MQuiz moved from an unfinished and older-style quiz app into a more complete, modern, game-like mobile experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed
&lt;/h2&gt;

&lt;p&gt;The biggest change was rebuilding the app around a cleaner product experience.&lt;/p&gt;

&lt;p&gt;Instead of only having a basic quiz flow, I rebuilt MQuiz around the kind of features that make users come back:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lives&lt;/li&gt;
&lt;li&gt;Coins&lt;/li&gt;
&lt;li&gt;Boosters&lt;/li&gt;
&lt;li&gt;Streaks&lt;/li&gt;
&lt;li&gt;XP&lt;/li&gt;
&lt;li&gt;Stage progress&lt;/li&gt;
&lt;li&gt;Daily challenges&lt;/li&gt;
&lt;li&gt;Leagues&lt;/li&gt;
&lt;li&gt;Contests&lt;/li&gt;
&lt;li&gt;Leaderboards&lt;/li&gt;
&lt;li&gt;Battles&lt;/li&gt;
&lt;li&gt;Profile stats&lt;/li&gt;
&lt;li&gt;Badges&lt;/li&gt;
&lt;li&gt;Referrals&lt;/li&gt;
&lt;li&gt;Rewards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also connected the app to backend endpoints so the experience can become more server-driven and scalable.&lt;/p&gt;

&lt;p&gt;The new backend integration includes endpoints for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lives&lt;/li&gt;
&lt;li&gt;Boosters&lt;/li&gt;
&lt;li&gt;Progress&lt;/li&gt;
&lt;li&gt;Payments&lt;/li&gt;
&lt;li&gt;Quiz data&lt;/li&gt;
&lt;li&gt;User profile&lt;/li&gt;
&lt;li&gt;Leaderboard&lt;/li&gt;
&lt;li&gt;Leagues&lt;/li&gt;
&lt;li&gt;Contests&lt;/li&gt;
&lt;li&gt;Battle flow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The mobile app now uses a more organized feature-based structure, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auth&lt;/li&gt;
&lt;li&gt;Home&lt;/li&gt;
&lt;li&gt;Quiz&lt;/li&gt;
&lt;li&gt;Progress Map&lt;/li&gt;
&lt;li&gt;Lives&lt;/li&gt;
&lt;li&gt;Boosters&lt;/li&gt;
&lt;li&gt;Battle&lt;/li&gt;
&lt;li&gt;Leaderboard&lt;/li&gt;
&lt;li&gt;Profile&lt;/li&gt;
&lt;li&gt;Store&lt;/li&gt;
&lt;li&gt;Leagues&lt;/li&gt;
&lt;li&gt;Contests&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This made the project easier to maintain and easier to continue after the challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Authentication
&lt;/h3&gt;

&lt;p&gt;MQuiz supports multiple ways for users to get started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google sign-in&lt;/li&gt;
&lt;li&gt;Apple sign-in&lt;/li&gt;
&lt;li&gt;Phone OTP&lt;/li&gt;
&lt;li&gt;Guest mode&lt;/li&gt;
&lt;li&gt;First-time profile setup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes onboarding easier because users can choose the sign-in method that works best for them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Game-Like Home Dashboard
&lt;/h3&gt;

&lt;p&gt;The home screen was rebuilt to feel more like a mobile game dashboard.&lt;/p&gt;

&lt;p&gt;It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Greeting header&lt;/li&gt;
&lt;li&gt;Coins counter&lt;/li&gt;
&lt;li&gt;Lives counter&lt;/li&gt;
&lt;li&gt;XP progress&lt;/li&gt;
&lt;li&gt;Stage label&lt;/li&gt;
&lt;li&gt;Category grid&lt;/li&gt;
&lt;li&gt;Daily challenge card&lt;/li&gt;
&lt;li&gt;Active contest banner&lt;/li&gt;
&lt;li&gt;Sponsor banner&lt;/li&gt;
&lt;li&gt;Battle call-to-action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to make the app feel exciting from the first screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quiz Experience
&lt;/h3&gt;

&lt;p&gt;The quiz feature supports different question experiences, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard multiple choice&lt;/li&gt;
&lt;li&gt;Image-supported questions&lt;/li&gt;
&lt;li&gt;Fun &amp;amp; Learn mode&lt;/li&gt;
&lt;li&gt;Guess the Word mode&lt;/li&gt;
&lt;li&gt;Countdown timer&lt;/li&gt;
&lt;li&gt;Booster usage&lt;/li&gt;
&lt;li&gt;Result summary&lt;/li&gt;
&lt;li&gt;Score&lt;/li&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;li&gt;Coins earned&lt;/li&gt;
&lt;li&gt;Share result option&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The quiz experience is designed to be simple enough for casual users but structured enough to support future exam practice and competitive learning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lives and Boosters
&lt;/h3&gt;

&lt;p&gt;To make the app more engaging, MQuiz includes a lives system and boosters.&lt;/p&gt;

&lt;p&gt;Users can lose lives, restore lives, use coins, and access boosters during gameplay.&lt;/p&gt;

&lt;p&gt;Boosters include features such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add more time&lt;/li&gt;
&lt;li&gt;Skip question&lt;/li&gt;
&lt;li&gt;50/50 support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes the quiz experience more strategic and less flat.&lt;/p&gt;

&lt;h3&gt;
  
  
  Battle Mode
&lt;/h3&gt;

&lt;p&gt;One of the biggest additions is live battle mode.&lt;/p&gt;

&lt;p&gt;The battle feature uses Firestore sync so users can enter a competitive quiz experience with another player.&lt;/p&gt;

&lt;p&gt;The battle flow includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Find opponent screen&lt;/li&gt;
&lt;li&gt;Matchmaking state&lt;/li&gt;
&lt;li&gt;Live battle screen&lt;/li&gt;
&lt;li&gt;Real-time opponent progress&lt;/li&gt;
&lt;li&gt;Quit guard&lt;/li&gt;
&lt;li&gt;Auto-advance timer&lt;/li&gt;
&lt;li&gt;Battle result screen&lt;/li&gt;
&lt;li&gt;Win, lose, or draw result display&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This feature helps MQuiz move beyond a normal quiz app into a more competitive game-based learning platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Leagues and Contests
&lt;/h3&gt;

&lt;p&gt;MQuiz now supports leagues and contests.&lt;/p&gt;

&lt;p&gt;The league feature includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Active league list&lt;/li&gt;
&lt;li&gt;League detail screen&lt;/li&gt;
&lt;li&gt;Join league flow&lt;/li&gt;
&lt;li&gt;Daily league quiz&lt;/li&gt;
&lt;li&gt;League quiz result&lt;/li&gt;
&lt;li&gt;League leaderboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The contest feature includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Contest list&lt;/li&gt;
&lt;li&gt;Contest detail&lt;/li&gt;
&lt;li&gt;Prize banner&lt;/li&gt;
&lt;li&gt;Live contest status&lt;/li&gt;
&lt;li&gt;Contest quiz&lt;/li&gt;
&lt;li&gt;Contest result&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features are important because they give users a reason to return regularly and compete for progress.&lt;/p&gt;

&lt;h3&gt;
  
  
  Profile and Progress
&lt;/h3&gt;

&lt;p&gt;The profile and progress features help users track their growth.&lt;/p&gt;

&lt;p&gt;Users can view:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quiz stats&lt;/li&gt;
&lt;li&gt;Accuracy&lt;/li&gt;
&lt;li&gt;Streak&lt;/li&gt;
&lt;li&gt;Badges&lt;/li&gt;
&lt;li&gt;Referral code&lt;/li&gt;
&lt;li&gt;Coin history&lt;/li&gt;
&lt;li&gt;Stage progress&lt;/li&gt;
&lt;li&gt;Locked and unlocked stages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helps turn quiz activity into a visible learning journey.&lt;/p&gt;

&lt;h3&gt;
  
  
  Store and Payments
&lt;/h3&gt;

&lt;p&gt;MQuiz includes a store flow for coin packs and payments.&lt;/p&gt;

&lt;p&gt;The app supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Coin pack listing&lt;/li&gt;
&lt;li&gt;Paystack payment initialization&lt;/li&gt;
&lt;li&gt;Paystack verification&lt;/li&gt;
&lt;li&gt;Apple in-app purchase setup&lt;/li&gt;
&lt;li&gt;Server-authoritative payment verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a foundation for monetization while keeping payment handling more secure.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience with GitHub Copilot
&lt;/h2&gt;

&lt;p&gt;GitHub Copilot helped me move faster while reviving MQuiz.&lt;/p&gt;

&lt;p&gt;Because this was not a small one-screen app, I had to work across many areas: Flutter UI, Cubit state management, API services, Firebase auth, Firestore battles, payment flows, routing, models, and feature-based architecture.&lt;/p&gt;

&lt;p&gt;Copilot helped me most when I used it as a coding assistant for focused tasks instead of asking it to build the entire app at once.&lt;/p&gt;

&lt;p&gt;I used GitHub Copilot to help with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactoring Flutter screens&lt;/li&gt;
&lt;li&gt;Creating reusable widgets&lt;/li&gt;
&lt;li&gt;Improving Cubit state flows&lt;/li&gt;
&lt;li&gt;Writing model classes&lt;/li&gt;
&lt;li&gt;Cleaning up API service methods&lt;/li&gt;
&lt;li&gt;Improving feature folder structure&lt;/li&gt;
&lt;li&gt;Debugging routing issues&lt;/li&gt;
&lt;li&gt;Building UI states for loading, success, and error flows&lt;/li&gt;
&lt;li&gt;Creating quiz interaction logic&lt;/li&gt;
&lt;li&gt;Improving battle flow structure&lt;/li&gt;
&lt;li&gt;Reducing repetitive code&lt;/li&gt;
&lt;li&gt;Reviewing implementation patterns&lt;/li&gt;
&lt;li&gt;Speeding up boilerplate work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of the most useful prompts were specific prompts such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Refactor this Flutter screen into smaller reusable widgets.”&lt;/li&gt;
&lt;li&gt;“Create a Cubit state structure for this feature.”&lt;/li&gt;
&lt;li&gt;“Help me clean this quiz flow so the timer and answer selection are easier to manage.”&lt;/li&gt;
&lt;li&gt;“Create a model class with Firestore serialization.”&lt;/li&gt;
&lt;li&gt;“Improve this UI so loading, empty, and error states are handled clearly.”&lt;/li&gt;
&lt;li&gt;“Help me structure this feature so it follows the same pattern as the rest of the app.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Copilot helped me finish faster, but I still had to guide the product direction, review the code, test the flows, and make sure the app matched the MQuiz vision.&lt;/p&gt;

&lt;p&gt;The main lesson was that Copilot is strongest when the developer already has a clear goal. It helped me move from unfinished work to a more complete product by speeding up the repetitive and structural parts of development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Mobile App
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Flutter&lt;/li&gt;
&lt;li&gt;Dart&lt;/li&gt;
&lt;li&gt;GoRouter&lt;/li&gt;
&lt;li&gt;Flutter Bloc / Cubit&lt;/li&gt;
&lt;li&gt;Equatable&lt;/li&gt;
&lt;li&gt;Dio&lt;/li&gt;
&lt;li&gt;Material 3&lt;/li&gt;
&lt;li&gt;SharedPreferences&lt;/li&gt;
&lt;li&gt;Share Plus&lt;/li&gt;
&lt;li&gt;URL Launcher&lt;/li&gt;
&lt;li&gt;In-App Purchase&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend and Services
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;NestJS API&lt;/li&gt;
&lt;li&gt;Firebase Authentication&lt;/li&gt;
&lt;li&gt;Firebase Firestore&lt;/li&gt;
&lt;li&gt;Paystack&lt;/li&gt;
&lt;li&gt;Apple In-App Purchase&lt;/li&gt;
&lt;li&gt;Firebase configuration for Android and iOS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Development Support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;GitHub Copilot&lt;/li&gt;
&lt;li&gt;Flutter Analyze&lt;/li&gt;
&lt;li&gt;Feature-based architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quality and Status
&lt;/h2&gt;

&lt;p&gt;The new Flutter app has been organized as the primary mobile delivery version.&lt;/p&gt;

&lt;p&gt;Important progress includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New Flutter project created&lt;/li&gt;
&lt;li&gt;Android and iOS bundle ID set to &lt;code&gt;com.togafrica.mquiz&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Firebase files added for Android and iOS&lt;/li&gt;
&lt;li&gt;GoRouter configured&lt;/li&gt;
&lt;li&gt;API client connected to the NestJS backend&lt;/li&gt;
&lt;li&gt;Design system implemented&lt;/li&gt;
&lt;li&gt;App icon added&lt;/li&gt;
&lt;li&gt;Splash screen implemented&lt;/li&gt;
&lt;li&gt;Authentication screens implemented&lt;/li&gt;
&lt;li&gt;Home dashboard implemented&lt;/li&gt;
&lt;li&gt;Quiz flow implemented&lt;/li&gt;
&lt;li&gt;Lives, boosters, progress, leaderboard, profile, store, leagues, contests, and battle features implemented&lt;/li&gt;
&lt;li&gt;Firestore rules added for battle room access&lt;/li&gt;
&lt;li&gt;Flutter analysis completed with no issues found in the new code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some remaining production tasks are still outside the scope of this challenge submission, such as final App Store assets, TestFlight testing, and final store submission preparation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me that reviving a project is sometimes more valuable than starting a new one.&lt;/p&gt;

&lt;p&gt;MQuiz already had a vision, but it needed better execution. The challenge pushed me to turn it into a cleaner, more scalable, and more complete mobile app.&lt;/p&gt;

&lt;p&gt;I also learned that gamification is not just about adding points. It is about designing a reason for users to continue.&lt;/p&gt;

&lt;p&gt;For MQuiz, features like lives, boosters, leagues, contests, battles, leaderboards, and progress maps make the quiz experience feel more alive.&lt;/p&gt;

&lt;p&gt;The biggest technical lesson was the importance of structure. Once the app was separated into clear features, it became easier to build, debug, and improve.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;Next, I plan to continue improving MQuiz with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real device testing&lt;/li&gt;
&lt;li&gt;More automated tests&lt;/li&gt;
&lt;li&gt;Final app store assets&lt;/li&gt;
&lt;li&gt;Privacy policy page&lt;/li&gt;
&lt;li&gt;App Store Connect setup&lt;/li&gt;
&lt;li&gt;Google Play release preparation&lt;/li&gt;
&lt;li&gt;AI-powered question generation&lt;/li&gt;
&lt;li&gt;Wrong-answer explanations&lt;/li&gt;
&lt;li&gt;Exam prep mode for WAEC, JAMB, and NECO&lt;/li&gt;
&lt;li&gt;Audio question support&lt;/li&gt;
&lt;li&gt;Math question support&lt;/li&gt;
&lt;li&gt;More original illustrations and lifeline icons&lt;/li&gt;
&lt;li&gt;Stronger analytics&lt;/li&gt;
&lt;li&gt;School/classroom challenge mode&lt;/li&gt;
&lt;li&gt;More contest formats&lt;/li&gt;
&lt;li&gt;More league seasons&lt;/li&gt;
&lt;li&gt;Better reward balancing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MQuiz started as an unfinished quiz app, but it is now moving toward a full gamified learning and trivia platform.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>ai</category>
      <category>flutter</category>
    </item>
  </channel>
</rss>
