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 (Teacher)
User Interface
Welcome Page of Smart Class Routine Management System (SCRMS)
Super User Registration
Super User Generation Link Received
Super User Dashboard
File Upload
Department Dashboard
Department Dashboard Cont..
Department Dashboard Cont..
This interface is for Student Login
This interface is for Student Dashboard
User Interface Image of Changing Chairman
User Interface of Viewing Teacher Profile
User Interface of Updating Teacher Profile
User Interface for staff Login
User Interface for Staff Dashboard
User Interface For Session Dashboard
User Interface For Teacher Dashboard(Edit Mode)
User Interface for Generating Routine
Viewing Routine as a Super User
Viewing Routine(Combined with Public Holidays) as Teacher
Viewing Routine(Combined with Public Holidays) as Teacher
Uploading Syllabus (Super User's UI)
Filtering Syllabus
View Filtered Syllabus
Uploading 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 toDepartment
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 toDepartment
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 toDepartment
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 toDepartment
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 toSession
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 toSession
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 toExamYear
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 toCourse
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 toCourse
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 toCourse
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 toCourse
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 toCourse
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
.
- Response: JSON array of department objects containing
-
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
.
- Request Body: JSON object containing
-
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.
- Request Body: JSON object containing 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
.
- Response: JSON array of teacher objects containing
-
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
.
- Request Body: JSON object containing
-
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.
- Request Body: JSON object containing 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.