The Interactive Quiz Application is a web-based platform that provides users with a fun and interactive way to test their knowledge on various topics. Users can register, log in, and take quizzes, track their scores, and view quiz results. Teachers can manage quizzes, including creating, editing, and deleting quizzes.
- User Registration & Authentication: Secure user registration and login using hashed passwords and session management via
flask-login. - Quiz Participation: Users can take quizzes, see their scores immediately, and review the correct answers after completion.
- Quiz Management for Teachers: Teachers can create, edit, and delete quizzes, manage questions, and track students' progress.
- Score Tracking: The system allows users to track their progress over multiple quiz attempts.
- Responsive Design: The application is optimized for all screen sizes, providing a smooth experience on desktops, tablets, and mobile devices.
- Backend: Python, Flask
- Frontend: HTML, Flask-WTForms
- Database: MySQL, SQLAlchemy ORM
- Security: Flask-Bcrypt for password hashing, CSRF protection via Flask-WTF
- Login Management: Flask-Login for user session management
git clone https://github.com/yourusername/Interactive-Quiz-App.gitcd Interactive-Quiz-Apppip install -r requirements.txt- If you use docker you can create continer
docker run -d --name quiz_app -e MYSQL_ROOT_PASSWORD=303 -e MYSQL_DATABASE=quiz -p 3306:3306 mysql- Configure your database connection in
src/models/__init__.py:
db = DB("mysql+mysqlconnector://root:303@localhost/quiz") // if you use docker do not change it
db = DB("mysql+mysqlconnector://<user>:<password>@localhost/<database_name>")- Create tables
python setup_database.pypython run.py- Register: Sign up for a new account using the registration page.
- Login: Access your account using your registered credentials.
- Participate in Quizzes: Start answering questions from available quizzes.
- Score & Review: View your score after completing a quiz and track your progress over time.
- Teacher Features: If registered as a teacher, you can add, edit, or delete quizzes and track the progress of your students.
We welcome contributions! To contribute:
- Fork the repository.
- Create a new branch with your feature or bug fix.
- Submit a pull request to the main repository.
Please ensure your code follows best practices and includes sufficient documentation and test cases.
- Khaled Alshaer
- Ahmed Arafa