A modern Django REST API for educational institutions to manage students, professors, assignments, and courses with JWT authentication and comprehensive database relationships.
- 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
- Backend: Django 5.2.6, Django REST Framework
- Database: PostgreSQL / SQLite
- Authentication: JWT (djangorestframework-simplejwt)
- API: RESTful design with comprehensive endpoints
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-
Copy environment template:
cp .env.example .env
-
Edit
.envfor your database:USE_POSTGRES=False # True for PostgreSQL DB_PASSWORD=your_password # If using PostgreSQL
python manage.py migrate
python manage.py create_sample_data
python manage.py runserverAccess Points:
- API Base: http://127.0.0.1:8000/api/
- Admin Panel: http://127.0.0.1:8000/admin/
- Credentials: admin / admin123
POST /api/token/ # Get JWT token
POST /api/token/refresh/ # Refresh tokenGET|POST /api/students/ # Student management
GET|POST /api/professors/ # Professor management
GET|POST /api/assignments/ # Assignment management
GET|POST /api/courses/ # Course managementGET /api/students/{id}/assignments/ # Student assignments
POST /api/assignments/{id}/submit/ # Submit assignment
POST /api/assignments/{id}/grade_submission/ # Grade submission- 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
Sample Accounts:
- Admin: admin / admin123
- Students: student_mansour, student_hasan / testpassword123
- Professors: prof_ahmed, prof_fatima / testpassword123
- Set
USE_POSTGRES=Truein.env - Configure PostgreSQL database
- Update
SECRET_KEYandDEBUG=False - Configure
ALLOWED_HOSTSfor your domain
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.