QuizZon: Create and play unlimited quizzes free - HarperDb Hackathon

QuizZon: Create and play unlimited quizzes free - HarperDb Hackathon

Quote:

A platform where you create and play quiz unlimited.

Hello Hashnoders!

I'm Rohit Jakhar. Today I launch my first hackathon project QuizZon using HarperDB. Huge thanks to the #HarperDBHackathon for this hackathon and support me to build this amazing project.

Video

What is QuizZon?

QuizZon is an Android App where anyone can create own Quiz and play other's quiz freely. You can challenge your friend for quiz competition and if you are teacher so you can create quiz test for your students.

Problem Solved

I see many good app for multiple choice questions app like programming MCQ, UPSE MCQ etc. but I never seen any app who provide access to create own quiz and other people play that. So i created QuizZon, where you play other quizzes and create own quiz with very easy and simple steps without any premium required.

Insight into App:

QuizZon.gif

  • Authentication Screen

In Authentication Screen, You see two button; one for login and another for signup. If you don't have account so first signup otherwise go for login. 8.png

  • Login Screen

In Login Screen, Enter your credential: Email and Password and enter into app. 9.png

  • Signup Screen

In Sign up Screen, You need to enter few details like email address, name, password and confirm password. After signup, we send an verification link to your email address. 10.png

  • Forget Password Screen

If you forget your password so don't worry. Just click on forget password text and go to forget password. There you can re-set you password using email verification. 11.png

  • Home Screen

After login, you see home screen. Here you find a bottom navigation bar, a list of category, two button: one for join quiz another for create quiz. If you have quiz id so put it in Joint Quiz and direct play quiz. If you want to create own quiz so click on Create Quiz button and create quiz. If you want to browse quiz by Category then select a category from category list and see all quiz related to that category. 1.png

  • Quiz List Screen

When you click on list icon in bottom navigation bar, it open quiz list screen. In Quiz List Screen, you see all quizzes in app. You also see who create that quiz, how many question it have, in which category it belong. 2.png

  • Play Quiz

When you click on start quiz button in quiz list, you start playing quiz. At top you see quiz title, after that you see question statement and four option. Select one option and click on check answer button. You get result immediately that option is right or wrong. 4.png

  • Result Screen

After finishing quiz, you see result screen where you see your result. 5.png

  • Create Quiz Screen

When you click on plus icon in bottom navigation bar, it open create quiz screen. In Create Quiz screen, you can create own quiz. You need to give a Quiz title and choose a category that belong to your quiz. After that press plus icon, it will show a dialog where you can add your question one by one. In dialog, you need to give question statement, four option and write right answer again in answer box. After adding 5 questions, click on Upload Quiz button and it will upload quiz on database. After uploading quiz on database, you get a quiz id for your quiz, you can share it with your friend or student so they directly play quiz. 3.png

  • Profile Screen

In Profile screen, you see your details like name, email and number of total quiz created by you. Below that you see a list of quizzes which created by you. From here you can share these quiz, copy their quiz id or delete that quiz easily. At bottom you see logout button, After pressing it you logout from app and go to Authentic Screen. 6.png

  • About Screen

In About Screen, you read about app, app developer(me) and HarperDB. You also see my social link at bottom. 7.png

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
    • StateFlow - StateFlow is a state-holder observable flow that emits the current and new state updates to its collectors.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
    • DataStore - Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers.
  • Dependency Injection -
    • Hilt-Dagger - Standard library to incorporate Dagger dependency injection into an Android application.
    • Hilt-ViewModel - DI for injecting ViewModel.
  • Backend
    • Firebase
      • Firebase Auth - To support email based authentication.
      • Firebase Crashlytics - To report app crashes
    • HarperDB - HarperDB is a geo-distributed database with hybrid SQL & NoSQL functionality in one powerful tool, accessed via a REST API.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • GSON - A modern JSON library for Kotlin and Java.
  • GSON Converter - A Converter which uses GSON for serialization to and from JSON.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • Progress Button - Progress Button is a android library for handling different types state like active, finished, enabled, disabled and reset with a single line of code.

MAD Score

summary.png

App Features

  • User Authentication Allowing user for login and signup using email based authentication
  • Create Quiz User create own quizzes unlimited freely
  • Play Quiz Play any quizzes at any time without time bounding
  • Join Quiz by Id If you have your friend's or other's quiz id, you can directly play his quizzes

  • Profile See your profile and quizzes created by you, you can delete your quiz

  • Forget Password Allowing user to forget his password using email based verification

Future updates:

  • Add Pagination in data fetching I will add pagination in future so app will more optimized and improve speed.
  • Progress Report for every user I will store every player's result and make a progress report in which he saw his improvement in quiz solving also other person can see each other progress report.

  • Private Quizzes It will be a awesome features. I will also make a private quiz feature in which his/her quiz not listed in public quiz, who have quiz id only he can play that quiz.

  • Time Limited Currently project not have any time limits, he can solve a quiz in minutes, in a hour or in a day. But in future i will add an option for time limit in quiz creation screen.

My Experience with HarperDB

When i listen about this hackathon and learn about HarperDB I think this is another clod database but when i learn about its features and power, I was Amazed!!!. It give a powerful api a single endpoint. Now days, remembering endpoint is a terrible because in a production app, there are huge number of endpoint(In my last project there was 48 endpoints.). And if back-end developer change a minor change in endpoint it crash whole app. In HarperDB, there is no need of endpoint because it have only one end point for whole project. That are the reason why i impressed from HarperDB and I will use HarperDB in my freelance project in future for database.

  • Github

  • QuizZon

Donation 💰

If this project help you reduce time to develop, you can give me a cup of coffee :)

Buy Me A Coffee


Did you find this article valuable?

Support Rohit Jakhar by becoming a sponsor. Any amount is appreciated!