Skip to content

A quiz website for organizing online quizzes and tests. It's build using Python/Django and Bootstrap4 frameworks. 🤖

License

Notifications You must be signed in to change notification settings

akashgiricse/lets-quiz

Repository files navigation

Let's Quiz

This is an online quiz organizing website project, developed using Python's web framework Django.
For front-end designing I have used Twitter's front-end library Bootstrap4.

GitHub release GitHub issues GitHub forks GitHub stars GitHub license Open Source Love svg1

Current Features

Site access features:

  • User must be logged in to access the Quiz.
  • For signup user is required to give username, first name, last name, e-mail address and password.
  • For login the user will be required to enter username and password only.

Features of the quiz:

  • All questions are multiple choice question.
  • Each question is displayed only once per user.
  • Questions are displayed randomly for every user.
  • If the user by-mistake presses refresh or go back to the previous page, there will be a new question for the user and the question he/she was on will be marked as attempted.
  • A message will be displayed after every attempted question whether the answer was correct or incorrect.

Leaderboard features:

  • Leaderboard is a shorted list according to the score obtained by the users.
  • If two users are having same score, the user who has signed up earlier will have good ranking than the one who joined late.
  • Leaderboard is open to all. No login required.

Administrative features:

  • Only admin can add questions.
  • Admin can add questions and modify them until they are not marked as Has been published?
  • Once a question has been published, it can neither be modified nor can be accessed. Admin can only see a list of questions.
  • Admin can search questions by question text or choice text.
  • Admin can filter questions based on whether the questions have been published or not.

Getting started with development

Dependencies:

  • Python 3.6.x
  • Django 1.11.x
  • Ubuntu 17.04 or later or Linux Mint 18.2 or later

1. Clone this repository

git clone https://github.com/akashgiricse/lets-quiz.git
cd lets_quiz

2. Install Pipenv

3. Create the virtualenv

## run following command from `lets_quiz` directory
pipenv shell

4. Install python packages

pip install -r requirements.txt

5. Setup the database

TODO - Add instructions for this when I start using MySQL database.

6. Run database migrations

cd lets_quiz
python manage.py migrate

7. Create superuser

python manage.py createsuperuser

8. Run development server

python manage.py runserver

Contribute

Contributors

Support

License

MIT License

Copyright (c) 2022 Akash Giri.