Skip to content

A web-based platform that allows users to answer multiple-choice questions

Notifications You must be signed in to change notification settings

mi7773/quizitnow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuizItNow

Sample quiz

Table of contents

Overview

The QuizItNow Application is a web-based platform that allows users to answer multiple-choice questions, receive feedback, and view their scores. This project leverages Python (Flask), HTML, CSS, and Bootstrap to provide an engaging and interactive user experience. It is designed to reinforce Python programming skills and web development basics.

Features

  • Authentication System: Secure user login and session management.
  • Quiz System: Multiple-choice questions with scoring and time limits.
  • Responsive Design: Optimized for use on desktop and mobile devices.
  • User Accounts: Stores quiz results for each user.
  • Extendable Questions: Easily add new sets of quiz questions.
  • REST API: Expose quiz questions via a REST API.

Tech Stack

  • Backend: Python (Flask)
  • Frontend: HTML, CSS, Bootstrap
  • Database: SQLite (for storing user data and quiz results)

Installation

Prerequisites

  • Python
  • Virtual environment tool (venv)
  • A database system (SQLite)

Steps

  1. Clone the repository:
git clone https://github.com/mi7773/quizitnow.git
cd quizitnow
  1. Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Set up the database:
python create_db.py
python add_sample_data.py

The add_sample_data.py script will:

  • create two users:
    • An admin user with the username mi7773 and the password password
    • A regular user with the username alice99 and the password password
  • Create Sample Quiz with sample questions.
  1. Run the application:
python run.py
  1. Open the application in your browser at http://127.0.0.1:5000/

Usage

  1. Register an account or log in with existing credentials.
  2. Start a quiz by selecting one
  3. Answer questions within the allotted time and receive feedback.
  4. View your score and progress on the dashboard.
  5. (Admin Only) Add new quizzes.

Milestones

  1. Auth System/Session Management
  • Secure user authentication and session handling.
  1. Storage of Quiz Results
  • Store user scores and quiz data in a database.
  1. Responsive Design
  • Ensure compatibility across devices and screen sizes.
  1. Bonus Features
  • Add functionality to add new quiz question sets.
  • Expose quiz questions through a REST API for integration with other applications.

Project Structure

quizitnow/
├── README.md			# Project documentation.
├── add_sample_data.py		# Script to populate the database with sample data for testing and development.
├── app
│   ├── __init__.py		# Initializes the Flask app and integrates various components.
│   ├── assets			# Folder including images for the README.
│   ├── config.py		# Configuration settings for the application (e.g., database URI, environment).
│   ├── error_handlers.py	# Custom error handling logic for the application.
│   ├── extensions.py		# Extensions and libraries initialized for use in the app (e.g., Flask-SQLAlchemy).
│   ├── models			# Database models.
│   ├── routes			# Application routes.
│   ├── static			# Static files (CSS, images).
│   └── templates		# HTML templates.
├── create_db.py		# Script to create and initialize the database schema.
├── requirements.txt		# Python dependencies.
├── run.py			# Entry point to run the Flask application.
└── tests			# Test cases.

Contributing

  1. Fork the repository.
  2. Create a new branch:
git checkout -b feature-name
  1. Make your changes and commit them:
git commit -m "Add feature-name"
  1. Push to your fork and submit a pull request.

Licensing

You are welcome to explore, modify, and share this project freely! While it's not mandatory, acknowledging the original creators is appreciated.

App links

Authors links

About

A web-based platform that allows users to answer multiple-choice questions

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published