A comprehensive School Management System (SMS) built with the Django web framework. Whether you're developing an SMS for an educational institution or looking to enhance your skills and portfolio, this project is a perfect starting point.
Let's collaborate and enhance this project together!
- Dashboard: Displays school demographics and analytics; accessible only to admins.
- News and Events: Available to all users.
- Student Management: Admins can add, update, and delete student records.
- Lecturer Management: Admins can add, update, and delete lecturer records.
- Course Enrollment: Students can add or drop courses.
- Score Submission: Lecturers can submit scores for attendance, midterm exams, final exams, and assignments.
- Automatic Calculations: The system calculates total, average, points, and grades for students.
- Grade Comments: Provides comments such as "pass," "fail," or "pass with a warning."
- Assessment and Grade Pages: Students can view their assessment results and grades.
- Academic Management: Manages sessions/years and semesters, grouping assessments and grades accordingly.
- Content Upload: Supports video and documentation uploads for each course.
- PDF Generation: Generates PDFs for student registration slips and grade results.
- Access Control: Implements page access restrictions.
- Quiz Management:
- Stores quiz results under each user.
- Randomizes question order.
- Allows viewing of previous quiz scores on the category page.
- Shows correct answers after each question or all at once at the end.
- Supports resuming incomplete quizzes for logged-in users.
- Limits quizzes to one attempt per user.
- Categorizes questions and monitors success rates by category.
- Provides explanations for question results.
- Sets pass marks.
- Supports multiple choice, true/false, and essay question types.
- Displays custom messages for pass or fail outcomes.
- Adds custom permissions (view_sittings) to view quiz results from users.
- Includes a marking page for completed quizzes, filterable by quiz or user.
We welcome contributions! To get started, check out the TODO.md
file for tasks.
Ensure you have the following installed:
-
Clone the repository:
git clone https://github.com/schnehowebking/eduplus_lms.git
-
Create and activate a Python virtual environment:
pip install -r requirements.txt
-
Create a
.env
file in the root directory and add the following variables:# Database configuration DB_NAME=[YOUR_DB_NAME] DB_USER=[YOUR_DB_USER] DB_PASSWORD=[YOUR_DB_PASSWORD] DB_HOST=localhost DB_PORT=[YOUR_POSTGRES_PORT (default is 5432)] # Email configuration EMAIL_FROM_ADDRESS="EduPlus <youremail@example.com>" EMAIL_HOST_USER=[YOUR_EMAIL] EMAIL_HOST_PASSWORD=[YOUR_EMAIL_PASSWORD] # Other DEBUG=True SECRET_KEY=[YOUR_SECRET_KEY]
-
Apply migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Start the development server:
python manage.py runserver
-
Ensure your Redis server is running:
redis-server
-
Start the Celery worker:
celery -A config.celery worker -l INFO
-
Access the application at: http://127.0.0.1:8000
- Quiz functionalities adapted from: django_quiz