Android client for Quizzie
This project is a complete online quiz management platform with a plethora of features for teachers and students. It provides all the basic functionalities of a quiz portal like timer, scoring, ranking etc. alongside analysis of results from the students on the teacher dashboard, summary of tests for the student, Login and signup using a Google account for both teacher and student. It provides a smooth user interface for both the teachers and students to create and attempt different kinds of quizzes seamlessly.
Quizzie Android app allows as an extension to the organizer's side of the website to allow them to add questions by capturing it from a book or elsewhere just to make the process of adding questions simpler for teachers
The motivation of this project came from the idea to help teachers and institute administrators create quizzes and tests in an efficient manner. With the popularity of the Internet, it is inevitable to have online quizzes as classroom assessments. In learning, online quizzes may serve two objectives, that is, for self-study or as a formal assessment. The online quiz has its advantages, such as saving the cost of paper printing and reducing the time spent for having assessments in class. However, there are weaknesses. Its primary drawback is the issue of academic dishonesty, especially when students are answering online quiz.
This app is coded natively using MVVM(Model View - View Model) architecture in Kotlin. It is built in Android Studio.
build.gradle
- root gradle config filesettings.gradle
- root gradle settings fileapp
- our only project in this repoapp/build.gradle
- project gradle config fileapp/src
- main project source directoryapp/src/main
- main project flavourapp/src/main/AndroidManifest.xml
- manifest fileapp/src/main/java
- java source directoryapp/src/main/res
- resources directory
- An organizer can create a quiz, add questions to it and publish them
- Organizer can add questions from a book by capturing it from the Android device
- The text recognition module automatically captures the text from the image
- There is no capture button to capture the image. It automatically captures after the text is recognized
- The question can be edited anytime and the changes to the text can be entered manually as well.
- The quiz after it is saved is made available for the students to attend from the website.
- This github repositority can be cloned using "git clone <github_link>" command
- Android Studio has to be installed (Version > 4.0)
- The cloned repo in the local PC should be opened using Android Studio
- Follow the unpacking instructions below to execute the build and run the app
This repository uses secrets that aren't pushed to the version control. However they are needed to build the project. Follow the below steps to obtain the files.
From the project root, execute:
.github/encrypted_secrets/decrypt_secrets.sh SECRET_KEY
If you are not on the development team contact us at amit.ananthkumar@gmail.com to obtain the SECRET_KEY used to unlock the secrets.
It is recommended that you run Gradle with the --daemon
option, as starting
up the tool from scratch often takes at least a few seconds. You can kill the
java process that it leaves running once you are done running your commands.
Tasks work much like Make targets, so you may concatenate them. Tasks are not
re-done if multiple targets in a single command require them. For example,
running assemble install
will not compile the apk twice even though
install
depends on assemble
.
gradle clean
This compiles a debugging apk in build/outputs/apk/
signed with a debug key,
ready to be installed for testing purposes.
gradle assembleDebug
You can also install it on your attached device:
gradle installDebug
This compiles an unsigned release (non-debugging) apk in build/outputs/apk/
.
It's not signed, you must sign it before it can be installed by any users.
gradle assembleRelease
Were you to add automated java tests, you could configure them in your
build.gradle
file and run them within gradle as well.
gradle test
This analyses the code and produces reports containing warnings about your
application in build/outputs/lint/
.
gradle lint
Amit Krishna A | Dinesh B S |