A command-line based quiz management system for programming education, built with Python. This system allows teachers to create and manage quizzes, while students can take quizzes and track their progress.
- 
User Authentication
- Separate login systems for teachers and students
 - Secure password management
 - Role-based access control
 
 - 
Teacher Features
- Create and manage quizzes
 - Add questions with multiple choice options
 - Generate unique quiz codes
 - View student performance and statistics
 - Manage question bank
 
 - 
Student Features
- Take quizzes using unique quiz codes
 - View quiz results and performance
 - Track progress over time
 
 - 
Database Management
- MySQL database integration
 - Data initialization and management tools
 - Data viewing and clearing capabilities
 
 
- Python 3.x
 - MySQL Server
 - Required Python packages (listed in requirements.txt)
 
- 
Clone the repository:
git clone https://github.com/Daksh-Maahor/ProgrammingQuiz.git cd ProgrammingQuiz - 
Create a virtual environment (recommended):
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
 - 
Install required packages:
pip install -r text-mode/requirements.txt
 - 
Set up the database:
- Create a MySQL database
 - Configure your database credentials in a 
.envfile - Run the initialization script:
python text-mode/init_sql.py
 
 
text-mode/main_module.py- Main entry pointquiz_module.py- Quiz management functionalitystudents_module.py- Student-related operationsteachers_module.py- Teacher-related operationscommon_login_module.py- Authentication systeminit_sql.py- Database initializationview_data.py- Data viewing utilitiesadd_questions.py- Question managementclear_data_module.py- Data management utilitiesgenerate_qcodes.py- Quiz code generation
- 
Start the application:
python text-mode/main_module.py
 - 
Follow the on-screen prompts to:
- Log in as a teacher or student
 - Create or take quizzes
 - Manage questions and view results
 
 
- python-dotenv==1.1.0
 - mysql-connector-python==9.3.0
 - colorama==0.4.6
 - termcolor==2.4.0
 - prettytable==3.16.0
 
The project has potential for expansion to include a GUI-based version alongside the current text-mode implementation. A gui-mode/ folder could be added to the project structure to house a graphical user interface that provides the same functionality as the text mode but with a modern, user-friendly interface.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.