- Overview
- Features
- Tech Stack
- Installation
- Usage
- Milestones
- Project Structure
- Contributing
- Licensing
- App links
- Authors links
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.
- 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.
- Backend: Python (Flask)
- Frontend: HTML, CSS, Bootstrap
- Database: SQLite (for storing user data and quiz results)
- Python
- Virtual environment tool (venv)
- A database system (SQLite)
- Clone the repository:
git clone https://github.com/mi7773/quizitnow.git
cd quizitnow
- Create a virtual environment and activate it:
python -m venv venv
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- 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 passwordpassword
- A regular user with the username
alice99
and the passwordpassword
- An admin user with the username
- Create Sample Quiz with sample questions.
- Run the application:
python run.py
- Open the application in your browser at
http://127.0.0.1:5000/
- Register an account or log in with existing credentials.
- Start a quiz by selecting one
- Answer questions within the allotted time and receive feedback.
- View your score and progress on the dashboard.
- (Admin Only) Add new quizzes.
- Auth System/Session Management
- Secure user authentication and session handling.
- Storage of Quiz Results
- Store user scores and quiz data in a database.
- Responsive Design
- Ensure compatibility across devices and screen sizes.
- Bonus Features
- Add functionality to add new quiz question sets.
- Expose quiz questions through a REST API for integration with other applications.
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.
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Make your changes and commit them:
git commit -m "Add feature-name"
- Push to your fork and submit a pull request.
You are welcome to explore, modify, and share this project freely! While it's not mandatory, acknowledging the original creators is appreciated.