School Management System with Django

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!

Current Features

  • 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.

Contributing

We welcome contributions! To get started, check out the TODO.md file for tasks.

Requirements

Ensure you have the following installed:

Installation

  1. Clone the repository:

    git clone https://github.com/schnehowebking/eduplus_lms.git
    
  2. Create and activate a Python virtual environment:

    pip install -r requirements.txt
  3. 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]
  4. Apply migrations:

    python manage.py migrate
  5. Create a superuser:

    python manage.py createsuperuser
  6. Start the development server:

    python manage.py runserver
  7. Ensure your Redis server is running:

    redis-server
  8. Start the Celery worker:

    celery -A config.celery worker -l INFO
  9. Access the application at: http://127.0.0.1:8000

References

Connect with Me

linkedin github stackoverflow facebook

Support

schnehowebking

Show your support by starring this project!