Skip to content

DiceNameIsMy/wis2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

307 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WIS2 - University Information System

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.

Use Case Diagram

Features

The system supports four primary user roles, each with specific permissions and workflows:

🎓 Student

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

👨‍🏫 Lector (Teacher)

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

🛡️ Guarantor (Course Supervisor)

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

🔧 Administrator

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

Tech Stack

Backend

  • Python 3.10+
  • Django 5.2.8 & Django REST Framework
  • PostgreSQL 14+ (via Docker)
  • Authentication: Session-based with CSRF protection

Frontend

  • React 19
  • TypeScript
  • Vite
  • TanStack Query (React Query)
  • Axios

Infrastructure

  • Docker & Docker Compose (Database)
  • Render.com (Deployment target)

Database Schema

The application uses a robust relational database schema designed to handle complex academic relationships.

ERD Diagram

Installation & Setup

Prerequisites

  • Python 3.10+
  • Node.js & npm
  • Docker & Docker Compose (for database)

Steps

  1. Clone the repository:

    git clone https://github.com/DiceNameIsMy/wis2.git
    cd wis2
  2. Set up Python environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    pip install -r backend/requirements.txt
  3. Install Frontend dependencies:

    cd frontend
    npm install
    cd ..
  4. 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
  5. Run the Application: Open two terminal windows:

    Terminal 1 (Backend):

    source .venv/bin/activate
    ./scripts/run_be.sh

    Terminal 2 (Frontend):

    ./scripts/run_fe.sh

    The application will be available at http://localhost:5173.

Test Credentials

The system comes pre-loaded with test accounts for each role:

Role Email Password
Administrator admin@email.com admin
Teacher/Guarantor teacher1@email.com password
Student user1@email.com password

Documentation

For detailed architecture documentation, API endpoints, and legacy project requirements, please refer to:


Developed by Nurdaulet Turar, Ivan Savin, and Oleh Krasovskyi.

About

A full stack web application. A team project at Brno University of Technology

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors