Quizzy! is a Flask-based quiz platform designed to help educators create, manage, and administer quizzes to their students. The platform includes features such as user authentication, quiz management, question randomization, progress tracking, and more.
- User Authentication: Secure login and registration with admin and student roles.
- Admin Panel: Admins can create, edit, and delete quizzes. They can also manage users and view user attempts.
- Quiz Management: Create quizzes by uploading CSV files, edit quiz questions, and delete quizzes.
- Question Randomization: Each quiz presents questions in a random order.
- Progress Tracking: Users can save their progress and resume quizzes later.
- Responsive Design: Mobile-friendly layout.
docker run -p 80:80 neeranjan/quizzy-app
- Python 3.8+
- Docker (optional, for containerized deployment)
CSVs containing questions/images/answers can be imported into the platform. The CSV should be formatted as such:
Question | 1 | 2 | 3 | 4 | 5 | Answer | Image |
---|---|---|---|---|---|---|---|
Your Question | Option 1 | Option 2 | Option 3 | Option 4 | Option 5 | Correct Answer | Image in img src tag format |
- Options can be left blank if needed
Registration Code: A registration code is required for new/any users to register. This code can be (should be) regenerated via the admin panel and is stored in registration_code.txt. This code will also be printed out on the terminal upon initial run.
note: you have to manually create an account named admin
with this initial token to activate the administrator account
-
Clone the repository:
sh git clone https://github.com/ItsNee/quizzy cd quizzy
-
Create and activate a virtual environment:
sh Copy code python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the dependencies:
sh Copy code pip install -r requirements.txt
-
Run the application:
python app.py
-
Access the application at:
http://127.0.0.1
/quizzy
│
├── app.py
├── models.py
├── requirements.txt
├── Dockerfile
├── /templates
│ ├── base.html
│ ├── index.html
│ ├── login.html
│ ├── register.html
│ ├── quizzes.html
│ ├── admin.html
│ ├── quiz_question.html
│ ├── quiz_summary.html
│ └── past_attempts.html
├── /static
│ ├── favicon.ico
│ └── style.css
└── /images
├── login.png
├── register.png
├── adminPanel.png
├── importQuiz.png
├── quizzes.png
├── quizQuestion.png
├── quizSummary.png
└── quizAttempts.png
- Register a New User: Navigate to the registration page and enter the required information along with the registration code provided by the admin.
- Login: Use your credentials to log in.
- Admin Panel: Admin users can access the admin panel to manage quizzes and users. (dont forget to regen the registration code)
- Take a Quiz: Start a quiz, answer questions, save progress, and resume later if needed.
- View Past Attempts: Users can view their past quiz attempts and scores.
This project is licensed under the MIT License
Acknowledgements Flask SQLAlchemy Bootstrap Docker
- Flask
- SQLAlchemy
- Bootstrap
- Docker