A comprehensive Django-powered school management system with Computer-Based Testing (CBT) capabilities, specifically designed for Nigerian secondary schools (JS1 - SS3).
- Secure Authentication: 10-digit candidate number and password system
- Live Exam Interface: WAEC/JAMB-style CBT experience with countdown timer
- Question Navigation: Previous/Next navigation with question palette
- Auto-Save: Answers automatically saved as students progress
- Mark for Review: Flag questions for later review
- Auto-Submit: Automatic submission when time expires
- Device Tracking: Monitor connected devices during exams
- Comprehensive Analytics: Performance statistics and insights
- Student Management: Add, update, deactivate students with auto-generated IDs
- Subject & Class Management: Full CRUD operations for academic structure
- Assessment Creation: Upload .docx files for questions and answers
- Session Management: Automatic student promotion system
- Finance Tracking: Fee management and payment status
- Results Export: CSV export functionality
- Exam Control: START/PAUSE/STOP live assessments
- Registration ID Authentication: Secure staff login system
- Limited Access: Role-based permissions for teachers
- Class Management: View assigned classes and students
- Multi-Assessment Types: Exams, Tests, and Quizzes
- File Parsing: Automatic .docx question/answer processing
- Grading System: Configurable A-F grading scale
- Session Promotion: Automatic class advancement
- Device Management: PC connection limits and monitoring
- Purple Theme: Professional, modern UI design
- Python 3.8+
- Django 5.2.7
- SQLite (default) or PostgreSQL
- Clone the repository
git clone <repository-url>
cd edumanageng- Install dependencies
pip install django python-docx pillow django-crispy-forms crispy-bootstrap5 django-extensions- Run migrations
python manage.py migrate- Create superuser
python manage.py createsuperuser- Populate test data
python manage.py populate_data- Start development server
python manage.py runserver 0.0.0.0:8000After running populate_data:
- Admin:
admin/admin123 - Staff:
john.doe/staff123 - Students: Use generated student IDs (e.g.,
1234501991) /student001,student002, etc.
- Access Admin Dashboard: Login at
/admin/or navigate to admin dashboard - Manage Students: Add students with auto-generated 10-digit IDs
- Create Subjects: Set up subjects for each class level
- Upload Assessments: Create exams by uploading .docx question/answer files
- Control Exams: Use the START module to manage live assessments
- View Analytics: Monitor performance through the dashboard
- Access CBT Portal: Visit the main URL to see available assessments
- Login: Click on an assessment and enter your 10-digit candidate number and password
- Review Details: Check your information on the pre-exam dashboard
- Take Assessment: Navigate through questions, mark for review, and submit
- Staff Login: Access
/staff-login/with your registration ID and password - View Dashboard: Access limited administrative functions
- Manage Classes: View assigned students and classes
edumanageng/
βββ core/ # Main application
β βββ models.py # Database models
β βββ views.py # View controllers
β βββ urls.py # URL routing
β βββ utils.py # Utility functions
β βββ admin.py # Django admin config
β βββ management/commands/ # Custom management commands
βββ templates/ # HTML templates
β βββ base.html # Base template
β βββ core/student/ # Student templates
β βββ core/admin/ # Admin templates
βββ static/ # Static files (CSS, JS, images)
βββ media/ # User uploads
βββ edumanageng/ # Project settings
- SystemConfiguration: Global system settings
- Class: School classes (JS1-SS3)
- Subject: Academic subjects per class
- Student: Student records with auto-generated IDs
- Staff: Teacher/staff accounts
- Fee: School fee structure
- Exam/Test/Quiz: Assessment definitions
- Question: Individual questions with options
- ExamAttempt/TestAttempt/QuizAttempt: Student attempts
- StudentAnswer: Individual answer records
- ConnectedDevice: Device monitoring
- Purple Theme: Professional color scheme with CSS custom properties
- Responsive Design: Mobile-friendly interface
- Bootstrap 5: Modern component library
- Font Awesome: Comprehensive icon set
- Interactive Elements: Hover effects, animations, and transitions
- Accessibility: WCAG-compliant design patterns
- School Information: Name, code, session dates
- Grading System: Configurable grade boundaries (A-F)
- Student ID Generation: 5-digit school code + sequential numbering
- Exam Settings: PC connection limits, duration settings
Questions.docx Format:
1. What is 2 + 2?
A. 3
B. 4
C. 5
D. 6
2. What is the capital of Nigeria?
A. Lagos
B. Port Harcourt
C. Abuja
D. Kano
Answers.docx Format:
1. B
2. C
- Database: Switch to PostgreSQL for production
- Static Files: Configure proper static file serving
- Security: Update SECRET_KEY and security settings
- HTTPS: Enable SSL/TLS encryption
- Backup: Implement regular database backups
DEBUG=False
SECRET_KEY=your-secret-key
DATABASE_URL=postgresql://user:pass@localhost/dbname
ALLOWED_HOSTS=yourdomain.com- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Check the documentation
- Review the code comments
- Mobile app for students
- Advanced analytics and reporting
- Integration with payment gateways
- Bulk student import/export
- Email notifications
- Advanced question types (essay, matching)
- Plagiarism detection
- Parent portal
- Django framework and community
- Bootstrap for UI components
- Font Awesome for icons
- Nigerian education system requirements
- WAEC/JAMB CBT interface inspiration
EduManageNG - Empowering Nigerian Education Through Technology π³π¬