A comprehensive academic management system designed to facilitate university operations including course administration, student enrollment, grading, and scheduling. This project demonstrates a full-stack implementation using modern web technologies and best practices.
The system supports four primary user roles, each with specific permissions and workflows:
- Course Enrollment: Browse available courses and register for terms.
- Schedule Management: View personal schedule and upcoming deadlines.
- Academic Progress: Track grades and course completion status.
- Profile: Manage personal information.
- Grading: Evaluate student performance and assign grades.
- Term Management: Create and manage course terms (lectures, exams).
- Attendance: Track student attendance and participation.
- Reporting: View detailed student performance reports.
- Course Creation: Design new courses and define curriculum structure.
- Staff Management: Assign lectors to courses.
- Enrollment Policies: Approve student registrations and manage course capacity.
- Course Completion: Finalize course results and close grading periods.
- User Management: Create, activate, and manage user accounts and roles.
- System Configuration: Manage global settings and database integrity.
- Facility Management: Define classrooms and resource allocation.
- Course Approval: Review and approve new course proposals.
- Python 3.10+
- Django 5.2.8 & Django REST Framework
- PostgreSQL 14+ (via Docker)
- Authentication: Session-based with CSRF protection
- React 19
- TypeScript
- Vite
- TanStack Query (React Query)
- Axios
- Docker & Docker Compose (Database)
- Render.com (Deployment target)
The application uses a robust relational database schema designed to handle complex academic relationships.
- Python 3.10+
- Node.js & npm
- Docker & Docker Compose (for database)
-
Clone the repository:
git clone https://github.com/DiceNameIsMy/wis2.git cd wis2 -
Set up Python environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -r backend/requirements.txt
-
Install Frontend dependencies:
cd frontend npm install cd ..
-
Initialize Database: Ensure Docker is running, then execute the setup scripts:
chmod +x ./scripts/*.sh ./scripts/run_db.sh # Starts PostgreSQL container ./scripts/load_db.sh # Applies migrations and loads initial data
-
Run the Application: Open two terminal windows:
Terminal 1 (Backend):
source .venv/bin/activate ./scripts/run_be.shTerminal 2 (Frontend):
./scripts/run_fe.sh
The application will be available at
http://localhost:5173.
The system comes pre-loaded with test accounts for each role:
| Role | Password | |
|---|---|---|
| Administrator | admin@email.com |
admin |
| Teacher/Guarantor | teacher1@email.com |
password |
| Student | user1@email.com |
password |
For detailed architecture documentation, API endpoints, and legacy project requirements, please refer to:
Developed by Nurdaulet Turar, Ivan Savin, and Oleh Krasovskyi.

