A Python-based command-line application designed to automate the grading process and provide personalized feedback to students at Emene High School, Enugu State, Nigeria.
This system addresses the challenges faced by overcrowded classrooms (up to 100 students per class) by:
- Automating objective question grading (multiple choice, true/false)
- Providing instant feedback to students
- Tracking student performance over time
- Reducing teacher administrative burden
- Enabling personalized learning experiences
- Assignment Creation: Create assignments with objective and subjective questions
- Automated Grading: Automatic grading for multiple choice and true/false questions
- Student Management: View all registered students and their performance
- Progress Tracking: Generate detailed reports and analytics
- Submission Review: Review and grade student submissions
- Assignment Viewing: Browse available assignments
- Assignment Submission: Submit answers with immediate objective feedback
- Grade Tracking: View grades and detailed feedback
- Performance Analysis: Track performance trends and improvements
- Assignment Preview: View assignment details before attempting
- Python 3.6 or higher
- SQLite (included with Python)
- Command-line interface (Terminal/Command Prompt)
-
Clone the repository:
git clone https://github.com/pchukwuka/Grading_System.git cd smart-grading-system -
Ensure Python 3.6+ is installed:
python --version
-
Run the application:
python main.py
- Open your terminal/command prompt
- Navigate to the project directory
- Run the main application:
python main.py
- Follow the on-screen prompts to select your role (Teacher/Student)
- Use the provided default accounts for testing
- The student login credetials are provided by the teacher
- Username:
Kevin, Password:password123(Mr. Kevin) - Username:
Peace, Password:password123(Mrs.Peace)
smart-grading-system/
├── main.py # Application entry point
├── auth.py # Authentication and input validation
├── database.py # Database operations and management
├── teacher.py # Teacher-specific functionality
├── student.py # Student-specific functionality
├── requirements.txt # Project dependencies
├── README.md # Project documentation
└── smart_grading.db # SQLite database (created automatically)
- Login with teacher credentials
- Create Assignment - Add questions (objective/subjective)
- View Assignments - Monitor created assignments
- Grade & Review - Check student submissions
- Generate Reports - Analyze class performance
- Login with student credentials provided by the teacher
- View Assignments - Browse available assignments
- Submit Answers - Complete and submit assignments
- Check Grades - View scores and feedback
- Track Progress - Monitor performance trends
The system uses SQLite with the following main tables:
- users - Teacher and student accounts
- assignments - Assignment information
- questions - Individual questions within assignments
- submissions - Student assignment submissions
- answers - Individual question responses
- Objective Questions: Instantly graded upon submission
- Multiple Choice: A, B, C, D options with single correct answer
- True/False: Binary choice questions
- Scoring: Immediate point calculation and feedback
- Instant Results: Immediate feedback for objective questions
- Detailed Reports: Question-by-question breakdown
- Performance Trends: Track improvement over time
- Personalized Messages: Contextual feedback based on performance
- Individual Reports: Detailed student performance analysis
- Class Summaries: Overall class performance metrics
- Assignment Statistics: Question-level difficulty analysis
- Trend Analysis: Performance improvement tracking
- Python 3.6+: Main programming language
- SQLite: Lightweight database for data storage
- JSON: Data serialization for complex structures
- Command Line Interface: Terminal-based user interaction
- Input validation for all user entries
- Database connection error management
- Graceful handling of invalid operations
- User-friendly error messages
- Password-protected user accounts
- Role-based access control
- Input sanitization
- Session management
- Advanced Analytics: Machine learning for performance prediction
- File Uploads: Support for document and image submissions
- Real-time Notifications: Instant updates for new assignments
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is developed for educational purposes at African Leadership College Of Higher Education(ALCHE)
This project is part of Peer Learning Project (PLP) 2. It demonstrates:
- Application Development: Full-stack Python application
- Database Integration: SQLite database design and implementation
- Problem Solving: Addressing real-world educational challenges
- Team Collaboration: Git-based version control and teamwork
Smart Grading and Feedback System - Improving education one grade at a time.