Quizzy is a web application that allows you and your friends to make and use interactive quizzes. Have fun goofing around or studying! โจ
You must have python installed to run this application.
Firstly, clone the repository (alternatively you can download and extract the repo):
git clone https://github.com/aritra-codes/quizzy.git
Then, change directories into the newly cloned repository:
cd quizzy
Then, using pip, install the application dependencies:
pip3 install -r requirements.txt
To run the application, you first need to apply the migrations:
python3 manage.py migrate
Run the server:
python3 manage.py runserver
This project was inspired by the website Quizizz, a quiz website. This idea is completely different from other projects in the CS50W course. The basic idea of my website to provide users with a way to easily access and create quizzes. It can be used in many ways, such as a leisure activity or a serious tool to study. I made this website because I wanted to test out my web development skills and see if I can make more complex websites.
I started working on this project by making the create quiz form, which allows users to create their very own quizzes. After finishing this, I worked on the home page which displays all the quizzes in the database which have their visibility set to public. At the same, I also worked on the stylish navbar, and the login and register pages. This allowed me start working on the page that displays the quiz itself and gives feedback to the user depending on the answers they put in. When the user presses the submit button in this page, it seamlessly grades the questions and shows the user which questions they have gotten right and which they have gotten wrong. I finally finished off my making the my quizzes and favourites page, which are self-explanatory.
My website utilises several Django models to keep track of different quizzes, questions and users. It also uses Javascript to allow for the seamless usage of like and favourite buttons. The Javascript also plays a crucial role in submitting the forms that allow the users to create their own quizzes.
My website is also mobile responsive due to the usage of Bootstrap, an amazing CSS/JS library. This has allowed me to introduce responsiveness to all the HTML elements such as the navbar and create quiz form. As a result of the usage of Bootstrap, elements in my website also size and position in a way that they adjust to the width and height of the user's screen.
Quizzy on a desktop Quizzy on a mobile device.
โโโ capstone -> core application
โ โโโ asgi.py -> asgi configuration
โ โโโ settings.py -> project settings
โ โโโ urls.py -> global urls mapping
โ โโโ wsgi.py -> wsgi configuration
โโโ quizzy -> main application that contains the website
โ โโโ migrations
โ โ โโโ 0001_initial.py -> initial database migration
โ โโโ static
โ โ โโโ quizzy
โ โ โโโ create-quiz.js ->
โ โ โโโ interactive-buttons.js -> functionality for like and favourite buttons
โ โ โโโ navbar.js -> selecting a navbar link depending on the pathname
โ โ โโโ quiz.js -> functionality for submitting and getting feedback from a quiz
โ โ โโโ quizzy-logo.png -> quizzy logo image
โ โ โโโ quizzy-screenshot.png -> quizzy desktop screenshot image
โ โ โโโ quizzy-screenshot-mobile.png -> quizzy mobile screenshot image
โ โโโ templates
โ โ โโโ quizzy
โ โ โโโ index.html -> index/home page
โ โ โโโ layout.html -> page layout for all other pages
โ โ โโโ quizzes-layout.html -> page layout for quiz listing pages
โ โ โโโ quiz.html -> page layout for a quiz
โ โ โโโ favourites.html -> favourite quizzes page
โ โ โโโ my-quizzes.html -> my quizzes page
โ โ โโโ create-quiz.html -> create quiz page
โ โ โโโ error-403.html -> error 403 page
โ โ โโโ error-404.html -> error 404 page
โ โ โโโ login.html -> login page
โ โ โโโ register.html -> register page
โ โโโ admin.py -> admin page configuration
โ โโโ apps.py -> apps configuration
โ โโโ models.py -> app models
โ โโโ urls.py -> website urls mapping
โ โโโ views.py -> website views and api endpoints
โโโ manage.py -> core app commands
โโโ README.md -> instructions
โโโ requirements.txt -> project dependencies
10 directories, 49 files