Skip to content

About

Django REST API for educational institution management

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Class Management System

A modern Django REST API for educational institutions to manage students, professors, assignments, and courses with JWT authentication and comprehensive database relationships.

Features

  • Student Management - Enrollment, course tracking, assignment viewing
  • Professor Administration - Course assignments, grade management
  • Assignment System - Creation, submission, and automated grading
  • Course Catalog - Complete course management with enrollment tracking
  • Secure Authentication - JWT-based API access with role-based permissions
  • Flexible Database - PostgreSQL for production, SQLite for development

Tech Stack

  • Backend: Django 5.2.6, Django REST Framework
  • Database: PostgreSQL / SQLite
  • Authentication: JWT (djangorestframework-simplejwt)
  • API: RESTful design with comprehensive endpoints

Quick Start

Installation

git clone https://github.com/yourusername/class-management-system.git
cd class-management-system
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt

Configuration

  1. Copy environment template:

    cp .env.example .env
  2. Edit .env for your database:

    USE_POSTGRES=False  # True for PostgreSQL
    DB_PASSWORD=your_password  # If using PostgreSQL

Setup Database

python manage.py migrate
python manage.py create_sample_data
python manage.py runserver

Access Points:

API Overview

Authentication

POST /api/token/          # Get JWT token
POST /api/token/refresh/  # Refresh token

Core Resources

GET|POST /api/students/      # Student management
GET|POST /api/professors/    # Professor management
GET|POST /api/assignments/   # Assignment management
GET|POST /api/courses/       # Course management

Advanced Operations

GET  /api/students/{id}/assignments/        # Student assignments
POST /api/assignments/{id}/submit/          # Submit assignment
POST /api/assignments/{id}/grade_submission/ # Grade submission

Database Schema

  • Student: Profile, course enrollments, submission tracking
  • Professor: Profile, course assignments, grade management
  • Course: Catalog with enrollment and assignment relationships
  • Assignment: Course-linked assignments with due dates and grading
  • Submission: Student submissions with status and feedback tracking

Testing

Sample Accounts:

  • Admin: admin / admin123
  • Students: student_mansour, student_hasan / testpassword123
  • Professors: prof_ahmed, prof_fatima / testpassword123

Production Setup

  1. Set USE_POSTGRES=True in .env
  2. Configure PostgreSQL database
  3. Update SECRET_KEY and DEBUG=False
  4. Configure ALLOWED_HOSTS for your domain

Project Structure

class_management_system/
├── students/           # Student models, views, serializers
├── professors/         # Professor management
├── assignments/        # Assignment and submission handling
├── class_management_system/  # Project settings
└── requirements.txt    # Python dependencies

Built with Django REST Framework for educational institution management.

About

Django REST API for educational institution management

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages