GithubHelp home page GithubHelp logo

quizzy's Introduction

Quizzy

This is my entry for the final project (capstone) of the CS50W course ๐Ÿ’ป.

!! Not continuing work on this project (for now) !!

Quizzy is a web application that allows you and your friends to make and use interactive quizzes. Have fun goofing around or studying! โœจ



Installation

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


Usage

Run the server:

python3 manage.py runserver


Distinctiveness and Complexity

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.

A screenshot of Quizzy on a desktop

Quizzy on a desktop

A screenshot of Quizzy on a mobile device

Quizzy on a mobile device

File structure description

.
โ”œโ”€โ”€ 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

quizzy's People

Contributors

aritra-codes avatar

Stargazers

Lewis M avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.