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.
Site access features:
- Quiz can be accessed only if the user is logged in.
- For signup user is required to give username, first name, last name, e-mail and password.
- For login the user will be required to enter username and password only.
Features of the quiz:
- Every question is multiple choice question.
- Every question is displayed only once per user.
- Questions are displayed randomly for every user.
- If the user 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 counted as attempted.
- A message is displayed after every attempted question whether the answer was correct or incorrect.
- Leaderboard is a shorted list according to the score obtained by the user.
- If two users have same score, the user who has signed up earlier will have good ranking than the one who joines late.
- Leaderboard is open to all. No login required.
- 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 modify 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
- 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
3. Create the virtualenv
## run following command from `lets_quiz` directory mkvirtualenv lets_quiz -a "$(pwd)" -p python3.6
4. Install python packages
## Activate the virtualenv which you created on the last step workon lets_quiz cd .. 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
- If you are having issues, please let me know. I have a mailing list located at: email@example.com
Copyright (c) 2018 Akash Giri.