Wikis and Flow Design Documents - JUCSE49-Mavericks/Smart-Class-Routine-Management-System GitHub Wiki

Smart Class Routine Management System


Team and Title Details

Team Name: JU-Team-Maverics

Title: Smart Class Routine Management System

Team Members:

  • Sadia Hossain (SH)
  • Umma Sumaiya Jahan (UJ)
  • Jannati Tajrimin Mitu (TM)
  • Trisha Sarkar (TS)
  • Akila Nipo (AN)
  • Rubayed All Islam (RAI)

Overview of the Project

The Smart Class Routine Management System (SCRMS) is designed to streamline and enhance the process of creating, managing, and communicating class schedules within universities. The system aims to offer a dynamic and automated approach to routine generation, ensuring optimal resource utilization and minimizing conflicts.


Project Flow Screens and Flow

Project Flow Diagram (Super User)

Project Flow Diagram (Super User)

Project Flow Diagram (Teacher)

Project Flow Diagram (Teacher)


User Interface

Welcome Page of Smart Class Routine Management System (SCRMS)

Welcome Page

Super User Registration

Generate Super User Registration Link

Super User Generation Link Received

Super User Registration Link Received

Super User Dashboard

Super User Dashboard

File Upload

File Upload

Department Dashboard

Department Dashboard

Department Dashboard Cont..

Department Dashboard (Super User)

Department Dashboard Cont..

Department Dashboard

This interface is for Student Login

Student Login

This interface is for Student Dashboard

Student Login

User Interface Image of Changing Chairman

Change-Chairman image

User Interface of Viewing Teacher Profile

View Student Profile Image

User Interface of Updating Teacher Profile

Update Teacher Profile Image

User Interface for staff Login

This is an img

User Interface for Staff Dashboard

This is staff dashboard

User Interface For Session Dashboard

This is an interface for session dashboard

User Interface For Teacher Dashboard(Edit Mode)

This is an interface for teacher dashboard

User Interface for Generating Routine

This is the interface of Super User for uploading files before generating routine

Viewing Routine as a Super User

A Super User can add/edit/delete any schedule.


Viewing Routine(Combined with Public Holidays) as Teacher

This is the how the the teacher's UI will look when he views the routine. The integration of public holidays with the routine is evident here.


Viewing Routine(Combined with Public Holidays) as Teacher

A teacher's UI for viewing calendar also supports showing the list of public holidays.


Uploading Syllabus (Super User's UI)

This is how the super user's UI will look when he uploads a syllabus.


Filtering Syllabus

This is how the teacher's UI will look when he wants to filter syllabus.


View Filtered Syllabus

UI for viewing Filtered Syllabus


Uploading List of Holidays

This is how the Super User's UI will look when he uploads the list of holidays.

Usage

The Smart Class Routine Management System automates timetable creation for educational and corporate settings. Its key features include:

Automated Scheduling

The system uses intelligent algorithms to automatically generate class schedules based on predefined availability and preferences for teachers, rooms, and other resources. This removes the manual burden of creating timetables and ensures that all constraints are met without conflicts, saving time and reducing errors.

Conflict Detection

The system proactively identifies and prevents scheduling conflicts. It checks for overlapping classes, teacher unavailability, room double-booking, and other conflicts. Any detected issues are highlighted, allowing users to resolve them before finalizing the timetable.

Customizable Settings

Users can customize various aspects of the scheduling process, such as defining time intervals between classes, setting up course priorities, and adjusting teacher or room preferences. This flexibility ensures that the generated timetable meets specific institutional requirements while being adaptable to different scenarios.

Real-Time Updates

When changes occur, such as a teacher's sudden unavailability or a room being booked for another event, the system updates the schedule in real-time. This ensures that users always have access to the most current version of the timetable without the need for manual re-adjustments.

Multi-User Access

The system supports multiple user roles with different levels of access. Administrators have full control over scheduling and system settings, teachers can view and adjust their own schedules, and students can view their class timetables. This role-based access ensures that each user only interacts with the parts of the system relevant to them.

Analytics

The system provides detailed analytics to help institutions track the efficiency of their schedules. Reports can show insights such as classroom usage, resource allocation, and conflict occurrences, enabling administrators to make data-driven decisions to optimize scheduling and resource management.


Assets

Key Features by User Role

1. Super User

  • Registration and login.
  • View Department Dashboard.
  • Manage Teachers: Add new teachers, update department chairman.
  • Manage Sessions: Add or update session and exam year.
  • Assign course teachers.
  • Manage room, staff, and student information.
  • Add make-up classes after the semester.
  • Upload syllabus files for each exam year.
  • Upload academic calendar.
  • Generate class routines and integrate them with the university's academic calendar.

2. Teacher

  • Login.
  • Update own profile.
  • **Main Feature**: Manage scheduled classes (confirm class, cancel class, reschedule class).
  • View class routine.
  • View academic calendar
  • Download syllabus and view student information.

3. Student

-View class routine -View academic calendar -View syllabus.

4. Staff

- View class routine -View academic calendar.

5. Exam Committee

- Monitor class progress. - View academic calendar -View syllabus -View class routine.


Database Schema

The schema defines tables for courses, their associated chapters, objectives, learning outcomes, and recommended books. It also outlines tables for holidays and related event details.

Entities Overview

Department

Stores department details like name, description, and contact information.

  • dept_id: INT (Primary Key, Auto Increment) – Unique identifier for the department.
  • Dept_Name: VARCHAR(255) – Name of the department.
  • Descript: TEXT – Description of the department.
  • Phone: VARCHAR(15) – Contact phone number of the department.
  • Fax: VARCHAR(15) – Fax number of the department.
  • Email: VARCHAR(255) – Email of the department.

Teacher

Contains teacher records, including designation, department, and contact details.

  • teacher_id: INT (Primary Key, Auto Increment) – Unique identifier for the teacher.
  • Name: VARCHAR(255) – Full name of the teacher.
  • Designation: ENUM('Professor', 'Associate Professor', 'Assistant Professor', 'Lecturer') – Designation of the teacher.
  • dept_id: INT (Foreign Key) – Reference to Department table.
  • Abvr: VARCHAR(10) – Abbreviation for the teacher’s name.
  • Email: VARCHAR(255) – Email of the teacher.
  • Password: VARCHAR(255) – Encrypted password for login.
  • Phone: VARCHAR(15) – Contact phone number of the teacher.

Staff

Holds staff information such as role, department, and contact details.

  • staff_id: INT (Primary Key, Auto Increment) – Unique identifier for the staff.
  • Name: VARCHAR(255) – Full name of the staff.
  • Role: ENUM('Admin', 'Support') – Role of the staff member.
  • dept_id: INT (Foreign Key) – Reference to Department table.
  • Email: VARCHAR(255) – Email of the staff.
  • Password: VARCHAR(255) – Encrypted password for login.
  • Phone: VARCHAR(15) – Contact phone number of the staff.

Room

Stores information on rooms, such as room number, type, and capacity.

  • room_id: INT (Primary Key, Auto Increment) – Unique identifier for the room.
  • Room_no: VARCHAR(10) – Room number.
  • Room_type: ENUM('Classroom', 'Laboratory', 'Office') – Type of the room.
  • Capacity: INT – Seating capacity of the room.
  • dept_id: INT (Foreign Key) – Reference to Department table.

Session

Defines academic sessions associated with departments.

  • session_id: INT (Primary Key, Auto Increment) – Unique identifier for the session.
  • dept_id: INT (Foreign Key) – Reference to Department table.
  • Session_name: VARCHAR(255) – Name of the session.

ExamYear

Holds details of exam years, including the associated session, level, and semester.

  • exam_year_id: INT (Primary Key, Auto Increment) – Unique identifier for the exam year.
  • session_id: INT (Foreign Key) – Reference to Session table.
  • Education_level: ENUM('Undergraduate', 'Postgraduate') – Education level for the exam year.
  • Exam_year: VARCHAR(4) – Year of the exam.
  • Year: INT – Academic year.
  • Semester: ENUM('Spring', 'Summer', 'Fall') – Semester for the exam year.
  • Start_date: DATE – Starting date of the semester.
  • End_date: DATE – Ending date of the semester.

Student

Contains student records, including session, roll numbers, and contact details.

  • student_id: INT (Primary Key, Auto Increment) – Unique identifier for the student.
  • Name: VARCHAR(255) – Full name of the student.
  • Gender: ENUM('Male', 'Female', 'Other') – Gender of the student.
  • session_id: INT (Foreign Key) – Reference to Session table.
  • Class_roll: VARCHAR(10) – Class roll number of the student.
  • Exam_roll: VARCHAR(10) – Exam roll number of the student.
  • Registration_no: VARCHAR(20) – Registration number of the student.
  • Email: VARCHAR(255) – Email of the student.
  • Password: VARCHAR(255) – Encrypted password for login.
  • Phone: VARCHAR(15) – Contact phone number of the student.

Course

Stores course details such as course code, credit, title, and type.

  • course_id: INT (Primary Key, Auto Increment) – Unique identifier for the course.
  • exam_year_id: INT (Foreign Key) – Reference to ExamYear table.
  • course_code: VARCHAR(10) – Course code.
  • course_credit: INT – Credit hours for the course.
  • course_title: VARCHAR(255) – Title of the course.
  • course_type: ENUM('Theory', 'Lab') – Type of course.
  • contact_hour: INT – Contact hours for the course.
  • rationale: TEXT – The rationale behind the course.

PrerequisiteCourse

Stores prerequisite courses for each course.

  • prc_id: INT (Primary Key, Auto Increment) – Unique identifier for prerequisite course.
  • course_id: INT (Foreign Key) – Reference to Course table.
  • prerequisite: VARCHAR(255) – Prerequisite course title.

CourseChapter

Stores chapters related to a specific course.

  • chapter_id: INT (Primary Key, Auto Increment) – Unique identifier for the chapter.
  • course_id: INT (Foreign Key) – Reference to Course table.
  • chapter: VARCHAR(255) – Chapter title.

CourseObjective

Stores objectives for each course.

  • co_id: INT (Primary Key, Auto Increment) – Unique identifier for the course objective.
  • course_id: INT (Foreign Key) – Reference to Course table.
  • objective: TEXT – Course objectives.

StudentLearningOutcome

Stores the expected learning outcomes for each course.

  • slo_id: INT (Primary Key, Auto Increment) – Unique identifier for the learning outcome.
  • course_id: INT (Foreign Key) – Reference to Course table.
  • outcome: TEXT – Student learning outcomes.

RecommendedBook

Stores recommended books for each course.

  • book_id: INT (Primary Key, Auto Increment) – Unique identifier for the book.
  • course_id: INT (Foreign Key) – Reference to Course table.
  • book_title: VARCHAR(255) – Title of the recommended book.
  • writer: VARCHAR(255) – Author of the book.
  • edition: INT – Edition of the book.
  • publisher: VARCHAR(255) – Publisher of the book.
  • publish_year: VARCHAR(255) – Year of publication.

Holidays

Stores details of holidays, including the event name and duration.

  • holiday_id: INT (Primary Key, Auto Increment) – Unique identifier for the holiday.
  • event_name: VARCHAR(255) – Name of the holiday event.
  • start_date: DATE – Starting date of the holiday.
  • end_date: DATE – Ending date of the holiday.
  • num_days: INT – Number of days for the holiday.

APIs

The Smart Class Routine Management System (SCRMS) exposes several RESTful APIs to handle various operations, including department management, teacher assignment, class routine generation, syllabus upload, and more. Some of the key APIs are listed below:

Department Management

  • GET /departments: Retrieve a list of all departments.

    • Response: JSON array of department objects containing dept_id, Dept_Name, Descript, Phone, Fax, Email.
  • POST /departments: Add a new department.

    • Request Body: JSON object containing Dept_Name, Descript, Phone, Fax, Email.
    • Response: Success message and the newly created dept_id.
  • PUT /departments/{dept_id}: Update department information.

    • Request Body: JSON object containing updated Dept_Name, Descript, Phone, Fax, Email.
    • Response: Success message indicating the department was updated.
  • DELETE /departments/{dept_id}: Delete a department.

    • Response: Success message indicating the department was deleted.

Teacher Management

  • GET /teachers: Retrieve all teachers in a department.

    • Response: JSON array of teacher objects containing teacher_id, Name, Designation, dept_id, Abvr, Email, Phone.
  • POST /teachers: Add a new teacher.

    • Request Body: JSON object containing Name, Designation, dept_id, Abvr, Email, Password, Phone.
    • Response: Success message and the newly created teacher_id.
  • PUT /teachers/{teacher_id}: Update teacher information.

    • Request Body: JSON object containing updated Name, Designation, dept_id, Abvr, Email, Phone.
    • Response: Success message indicating the teacher was updated.
  • DELETE /teachers/{teacher_id}: Remove a teacher.

    • Response: Success message indicating the teacher was removed.

Class Routine Generation

  • POST /routine/generate: Generate the class routine for a department.
  • PUT /routine/update: Update an existing class routine entry for a department, teacher, or specific class.
  • GET /routine/view: View the class routine for a specific teacher or student.
  • POST /routine/makeup: Add a make-up class to the routine.

Syllabus

  • POST /syllabus/upload: Upload a syllabus XML file for an exam year.
  • GET /syllabus/download/{exam_year_id}: Download the syllabus for a specific exam year.
  • GET /syllabus/filter: Teachers can filter the syllabus according to the chosen course and specific fields selected.

User Manual

A comprehensive user manual is available in the /manual directory. It provides step-by-step instructions for setting up and using the system, including installation guides, configuration tips, and troubleshooting advice. The manual is designed to be user-friendly, allowing both technical and non-technical users to get started quickly.

Screenshots

The system includes a set of screenshots that showcase its user interface and features. These screenshots help illustrate how the platform looks in use, including views for timetable creation, conflict resolution, and analytics dashboards. They are available in the assets folder for reference.

Tests

Unit and integration tests are included in the /tests directory. These tests ensure that the system’s components function as expected and can be run to validate any changes made during development. Running these tests helps maintain the system's reliability and prevent regressions.

Deployment Guide

A detailed deployment guide is provided in the /deployment directory. It outlines how to deploy the Smart Class Routine Management System in various environments, such as local machines, cloud platforms, or Docker containers. The guide includes instructions for setting up dependencies, configuring environment variables, and ensuring the system runs smoothly in production.