0% found this document useful (0 votes)
94 views382 pages

3813 FA24SE078 GFA69 FA24SE078 LamHuuKhanhPhuong Report7 Final Project Report

The document outlines a capstone project by FPT University focused on developing a software system for timetable scheduling in high schools. It includes project management plans, software requirements, design specifications, testing documentation, and user guides. The project aims to address existing limitations in current systems and provide a comprehensive solution for educational institutions.

Uploaded by

Reinir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
94 views382 pages

3813 FA24SE078 GFA69 FA24SE078 LamHuuKhanhPhuong Report7 Final Project Report

The document outlines a capstone project by FPT University focused on developing a software system for timetable scheduling in high schools. It includes project management plans, software requirements, design specifications, testing documentation, and user guides. The project aims to address existing limitations in current systems and provide a comprehensive solution for educational institutions.

Uploaded by

Reinir
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 382

MINISTRY OF EDUCATION AND TRAINING

FPT UNIVERSITY

Capstone Project Document

Building A Software System to Support Timetable


Scheduling for High Schools

GFA24SE69
Nguyễn Hà Thanh Mai - Team Leader - SE171497
Lương Hoàng Anh - Team Member- SE170179
Group Members
Nguyễn Chiến Thắng - Team Member - SE161774
Nguyễn Thành Long - Team Member - SE161734

Supervisor Lâm Hữu Khánh Phương


Capstone Project
FA24SE078
code

- Ho Chi Minh, 12/2024 -

1
Table of Contents
Acknowledgement .................................................................................................................................. 1
Definition and Acronyms ........................................................................................................................ 1
I. Project Introduction ............................................................................................................................. 2
1. Overview ......................................................................................................................................... 2
1.1 Project Information ................................................................................................................... 2
1.2 Project Team ............................................................................................................................. 2
2. Product Background........................................................................................................................ 2
3. Existing Systems .............................................................................................................................. 2
3.1 VietSchool - Timetable Management ....................................................................................... 2
3.2 Skolaris - Timetable Optimization ............................................................................................. 3
4. Business Opportunity ...................................................................................................................... 5
5. Software Product Vision ................................................................................................................. 5
6. Project Scope & Limitations ............................................................................................................ 5
6.1 Major Features .......................................................................................................................... 5
6.2 Limitations & Exclusions ........................................................................................................... 6
II. Project Management Plan .................................................................................................................. 6
1. Overview ......................................................................................................................................... 6
1.1 Scope & Estimation ................................................................................................................... 6
1.2 Project Objectives ..................................................................................................................... 9
1.3 Project Risks .............................................................................................................................. 9
2. Management Approach ................................................................................................................ 10
2.1 Project Process ........................................................................................................................ 10
2.2 Quality Management .............................................................................................................. 11
2.3 Training Plan............................................................................................................................ 11
3. Project Deliverables ...................................................................................................................... 11
4. Responsibility Assignments ........................................................................................................... 12
5. Project Communications ............................................................................................................... 13
6. Configuration Management .......................................................................................................... 13
6.1 Document Management ......................................................................................................... 13
6.2 Source Code Management...................................................................................................... 14
6.3 Tools & Infrastructures ........................................................................................................... 14
III. Software Requirement Specification ............................................................................................... 14
1. Product Overview ......................................................................................................................... 14
2. User Requirements ....................................................................................................................... 15
2.1 Actors ...................................................................................................................................... 15

2
2.2 Use Cases ................................................................................................................................ 16
2.2.1 Diagram(s) ........................................................................................................................ 16
2.2.2 Descriptions ..................................................................................................................... 16
3. Functional Requirements ............................................................................................................ 155
3.1 System Functional Overview ................................................................................................. 155
3.1.1.1 <Teacher> Teacher Application Screen Flow .............................................................. 155
3.1.1.2 <Teacher Head Department> Teacher Head Department Application Screen Flow .. 156
3.1.1.3 <School Manager> School Manager Application Screen Flow ................................... 156
3.1.1.4 <System Admin> System Admin Application Screen Flow.......................................... 158
3.2 Screen Descriptions............................................................................................................... 158
3.2.1.1 <Teacher, Teacher Head Department> Web Application Screen Details ................... 158
3.2.1.2 <School Manager> Web Application Screen Details ................................................... 159
3.2.1.3 <Admin> Web Application Screen Details .................................................................. 160
3.3 Screen Authorization............................................................................................................ 161
3.4 Non-Screen Functions ........................................................................................................... 161
3.5 Entity Relationship Diagram ................................................................................................. 162
4. Non-Functional Requirements .................................................................................................... 162
4.1 External Interfaces ................................................................................................................ 162
4.2 Quality Attributes.................................................................................................................. 163
4.2.1 Usability.......................................................................................................................... 163
4.2.2 Reliability........................................................................................................................ 163
4.2.3 Performance................................................................................................................... 163
4.2.4 Security .......................................................................................................................... 163
5. Requirement Appendix ............................................................................................................... 163
5.1 Business Rules ....................................................................................................................... 163
5.2 Common Requirements ........................................................................................................ 166
5.3 Application Messages List ..................................................................................................... 166
IV. Software Design Description ......................................................................................................... 169
1. System Design ............................................................................................................................. 169
1.1 System Architecture .............................................................................................................. 169
1.2 Package Diagram ................................................................................................................... 169
2. Database Design.......................................................................................................................... 174
3. Detailed Design ........................................................................................................................... 177
3.1 Login Feature ........................................................................................................................ 177
3.1.1 Login Class Diagram ....................................................................................................... 177
3.1.2 Login Activity Diagram ................................................................................................... 178

3
3.2 SignUp Feature ...................................................................................................................... 179
3.2.1 SignUp Class Diagram ................................................................................................. 179
3.2.2 SignUp Activity Diagram............................................................................................. 180
3.2.3 SignUp Sequence Diagram ........................................................................................ 181
3.3 Create Teacher ...................................................................................................................... 181
3.3.1 Create Teacher Class Diagram ................................................................................... 181
3.3.2 Create Teacher Activity Diagram ............................................................................... 182
3.3.3 Create Teacher Sequence Diagram ............................................................................ 183
3.4 GetTeacherAssignmentDetail ............................................................................................... 184
3.3.1 GetTeacherAssignmentDetail Class Diagram ............................................................. 184
3.3.2 GetTeacherAssignmentDetail Activity Diagram ......................................................... 184
3.3.3 GetTeacherAssignmentDetail Sequence Diagram ..................................................... 185
3.5 AssignTeacherDepartmentHead ........................................................................................... 185
3.5.1 AssignTeacherDepartmentHead Class Diagram ........................................................ 185
3.5.2 AssignTeacherDepartmentHead Activity Diagram .................................................... 186
3.5.3 AssignTeacherDepartmentHead Sequence Diagram ................................................. 186
3.6 Add Teachable Subject .......................................................................................................... 187
3.6.1 AddTeachableSubject Class Diagram ......................................................................... 187
3.6.2 AddTeachableSubject Activity Diagram ..................................................................... 187
3.6.3 AddTeachableSubject Sequence Diagram ................................................................. 188
3.7 Get Teacher ........................................................................................................................... 188
3.7.1 GetTeacher Class Diagram ......................................................................................... 188
3.7.2 GetTeacher Activity Diagram ..................................................................................... 188
3.7.3 GetTeacher Sequence Diagram.................................................................................. 188
3.8 Update Teacher..................................................................................................................... 189
3.8.1 UpdateTeacher Class Diagram ................................................................................... 189
3.8.2 UpdateTeacher Activity Diagram ............................................................................... 190
3.8.3 UpdateTeacher Sequence Diagram ........................................................................... 190
3.9 Create Curriculum ................................................................................................................. 191
3.9.1 Create Curriculum Class Diagram .............................................................................. 191
3.9.2 Create Curriculum Activity Diagram .......................................................................... 192
3.9.3 Create Curriculum Sequence Diagram ....................................................................... 193
3.10 Get Curriculum .................................................................................................................... 194
3.10.1 Get Curriculum Class Diagram ................................................................................. 194
3.10.2 Get Curriculum Activity Diagram ............................................................................. 194
3.10.3 Get Curriculum Sequence Diagram .......................................................................... 195

4
3.11 Assign Student Class To Class Group................................................................................... 195
3.11.1 Assign Student Class To Class Group Class Diagram ................................................ 195
3.11.2 Assign Student Class To Class Group Activity Diagram ............................................ 196
3.11.3 Assign Student Class To Class Group Sequence Diagram ........................................ 196
3.12 AssignCurriculumToClassGroup .......................................................................................... 197
3.12.1 AssignCurriculumToClassGroup Class Diagram ....................................................... 197
3.12.2 AssignCurriculumToClassGroup Activity Diagram ................................................... 198
3.12.3 AssignCurriculumToClassGroup Sequence Diagram ................................................ 198
3.13 Add Student Class Group .................................................................................................... 199
3.13.1 AddStudentClassGroup Class Diagram .................................................................... 199
3.13.2 AddStudentClassGroup Activity Diagram ................................................................ 200
3.13.3 AddStudentClassGroup Sequence Diagram ............................................................. 201
3.14 Get Teacher Assignment ..................................................................................................... 201
3.14.1 Get Teacher Assignment Class Diagram .................................................................. 201
3.14.2 Get Teacher Assignment Activity Diagram .............................................................. 202
3.14.3 Get Teacher Assignment Sequence Diagram ........................................................... 202
3.15 Auto Assign Teachers .......................................................................................................... 203
3.15.1 Auto Assign Teachers Class Diagram........................................................................ 203
3.15.2 Auto Assign Teachers Activity Diagram ................................................................... 204
3.15.3 Auto Assign Teachers Sequence Diagram ................................................................ 205
3.16 Assign Teacher For Assignments ......................................................................................... 206
3.16.1 Assign Teacher For Assignments Class Diagram ...................................................... 207
3.16.2 Assign Teacher For Assignments Activity Diagram .................................................. 208
3.16.3 Assign Teacher For Assignments Sequence Diagram............................................... 208
3.17 Create Student Class ........................................................................................................... 208
3.17.1 Create Student Class Class Diagram......................................................................... 208
3.17.2 Create Student Class Activity Diagram..................................................................... 209
3.17.3 Create Student Class Sequence Diagram ................................................................. 210
3.18 Update Student Class .......................................................................................................... 210
3.18.1 Update Student Class Class Diagram ....................................................................... 210
3.18.2 Update Student Class Activity Diagram ................................................................... 211
3.18.3 Update Student Class Sequence Diagram ................................................................ 212
3.19 Assign Homeroom Teacher To Classes ............................................................................... 213
3.19.1 Assign Homeroom Teacher To Classes Class Diagram ............................................. 213
3.19.2 Assign Homeroom Teacher To Classes Activity Diagram ......................................... 214
3.19.3 Assign Homeroom Teacher To Classes Sequence Diagram ..................................... 215

5
3.20 Get Class Combination ........................................................................................................ 216
3.20.1 Get Class Combination Class Diagram ..................................................................... 216
3.20.2 Get Class Combination Activity Diagram ................................................................. 216
3.20.3 Get Class Combination Sequence Diagram .............................................................. 217
3.21 Get Teacher Assignment Of Class ....................................................................................... 217
3.21.1 Get Teacher Assignment Of Class Class Diagram ..................................................... 217
3.21.2 Get Teacher Assignment Of Class Activity Diagram ................................................. 218
3.21.3 Get Teacher Assignment Of Class Sequence Diagram ............................................. 219
3.22 GetStudentClasses .............................................................................................................. 219
3.22.1 GetStudentClasses Class Diagram ............................................................................ 219
3.22.2 GetStudentClasses Activity Diagram ........................................................................ 220
3.22.3 GetStudentClasses Sequence Diagram .................................................................... 220
3.23 View Subject ....................................................................................................................... 221
3.23.1 ViewSubject Class Diagram ...................................................................................... 221
3.23.2 ViewSubject Activity Diagram .................................................................................. 221
3.23.3 ViewSubject Sequence Diagram .............................................................................. 222
3.24 Create Room Subject .......................................................................................................... 223
3.24.1 CreateRoomSubject Class Diagram .......................................................................... 223
3.24.2 CreateRoomSubject Activity Diagram ...................................................................... 224
3.24.3 CreateRoomSubject Sequence Diagram .................................................................. 225
3.25 Add Room In progress ......................................................................................................... 225
3.25.1 AddRoom Class Diagram .......................................................................................... 225
3.25.2 AddRoom Activity Diagram ...................................................................................... 226
3.25.3 AddRoom Sequence Diagram .................................................................................. 227
3.26 View Room .......................................................................................................................... 228
3.26.1 ViewRoom Class Diagram ........................................................................................ 228
3.26.2 ViewRoom Activity Diagram .................................................................................... 229
3.26.3 ViewRoom Sequence Diagram ................................................................................. 230
3.27 View Buildings ..................................................................................................................... 231
3.27.1 View Class Diagram .................................................................................................. 231
3.27.2 View Building Activity Diagram ................................................................................ 231
3.27.3 View Building Sequence Diagram ............................................................................ 232
3.28 Add Buildings ...................................................................................................................... 232
3.28.1 AddBuildings Class Diagram ..................................................................................... 232
3.28.2 AddBuildings Activity Diagram ................................................................................. 233
3.28.3 AddBuildings Sequence Diagram ............................................................................. 234

6
3.29 Update Buildings ................................................................................................................. 234
3.29.1 UpdateBuildings Class Diagram ............................................................................... 234
3.29.2 UpdateBuildings Activity Diagram ........................................................................... 235
3.29.3 UpdateBuildings Sequence Diagram ........................................................................ 236
3.30 Generate Timetable ............................................................................................................ 237
3.30.1 GenerateTimetable Class Diagram........................................................................... 237
3.30.2 GenerateTimetable Activity Diagram ...................................................................... 238
3.30.3 GenerateTimetable Sequence Diagram ................................................................... 239
V. Software Testing Documentation ................................................................................................... 239
1. Scope of Testing .......................................................................................................................... 239
2. Test Strategy ............................................................................................................................... 239
2.1 Testing Types......................................................................................................................... 239
2.2 Test Levels ............................................................................................................................. 240
3. Test Plan ...................................................................................................................................... 240
3.1 Human Resources ................................................................................................................. 240
3.2 Test Environment .................................................................................................................. 240
3.3 Test Milestones ..................................................................................................................... 241
4. Test Cases and Test Report ......................................................................................................... 241
VI. Release Package & User Guides..................................................................................................... 241
1. Deliverable Package .................................................................................................................... 241
1.1 Source Codes and Documents .............................................................................................. 241
1.2 Known Issues, Limitations & Restrictions ............................................................................. 242
2. Installation Guides ...................................................................................................................... 242
2.1 System Requirements ........................................................................................................... 242
2.1.1 Web application ............................................................................................................. 242
2.1.2 Software requirement ................................................................................................ 242
2.2 Setup file ............................................................................................................................... 242
2.3 Installation Instruction .......................................................................................................... 243
2.3.1 Setup Running Environment .......................................................................................... 243
2.3.1.1 Setup Database ........................................................................................................... 243
2.3.1.2 Setup Database ........................................................................................................... 243
2.3.1.3 Setup NodeJS .............................................................................................................. 243
2.3.1.4 Setup Pnpm ................................................................................................................. 243
2.3.1.5 Setup IDE .................................................................................................................... 243
2.3.2 Setup Backend API ......................................................................................................... 244
2.3.4 Setup Frontend Web Module ........................................................................................ 246

7
3. User Manual ................................................................................................................................ 249
3.1 Terms and Definitions ........................................................................................................... 249
3.2 System Requirement ............................................................................................................. 250
3.2.1 Hardware Requirement ................................................................................................. 250
3.2.2 Software Requirement ................................................................................................... 250
3.3 Application Usage ................................................................................................................. 250
3.3.2. Guest Flow .................................................................................................................... 250
3.3.2.1. Homepage .............................................................................................................. 250
3.3.2.2. Timetable Page ...................................................................................................... 250
3.3.2.3. Community Page .................................................................................................... 251
3.3.2.6. Contact Page .......................................................................................................... 251
3.3.3. Authentication Flow ...................................................................................................... 252
3.3.3.1 Sign in ...................................................................................................................... 252
3.3.3.2 Sign up ..................................................................................................................... 253
3.3.3.3 Log out .................................................................................................................... 254
3.3.4. School Manager Flow .................................................................................................... 255
3.3.4.1. View Published Timetable...................................................................................... 255
3.3.4.2. View Published Class Timetable ............................................................................. 256
3.3.4.3. View Published Room Usage.................................................................................. 256
3.3.4.4. Update Published Timetable.................................................................................. 257
3.3.4.5. Generate new Timetable ....................................................................................... 257
3.3.4.6. Update Draft Timetable ......................................................................................... 257
3.3.4.7. View Class management ........................................................................................ 257
3.3.4.8. Edit Class information ............................................................................................ 260
3.3.4.9. Delete Class information ........................................................................................ 262
3.3.4.10. Create Class information...................................................................................... 264
3.3.4.11. View Combined Class ........................................................................................... 266
3.3.4.12. Create Combined Class ........................................................................................ 267
3.3.4.13. Update Combined Class ....................................................................................... 269
3.3.4.14. Delete Combined Class ........................................................................................ 271
3.3.4.15. View Class Group ................................................................................................. 273
3.3.4.16. Create Class Group ............................................................................................... 275
3.3.4.17. Update Class Group ............................................................................................. 277
3.3.4.18. Add applied classes .............................................................................................. 279
3.3.4.19. Delete Class Group ............................................................................................... 281
3.3.4.20. Apply Curriculum to Class Group ......................................................................... 282

8
3.3.4.21. View Teacher information ................................................................................... 284
3.3.4.22. Create Teacher ..................................................................................................... 286
3.3.4.23. Update Teacher information ............................................................................... 288
3.3.4.24. Delete Teacher ..................................................................................................... 291
3.3.4.25. View Teacher specialized subjects ....................................................................... 292
3.3.4.26. Add Teacher specialized subjects ........................................................................ 294
3.3.4.27. Remove Teacher specialized subjects .................................................................. 296
3.3.4.28. View Subject......................................................................................................... 299
3.3.4.29. View Curriculum information .............................................................................. 300
3.3.4.30. Create Curriculum ................................................................................................ 302
3.3.4.31. Update Curriculum information........................................................................... 304
3.3.4.32. Delete Curriculum ................................................................................................ 306
3.3.4.33. View Curriculum’s lessons ................................................................................... 308
3.3.4.34. Update Curriculum’s lessons ............................................................................... 310
3.3.4.35. View Department ................................................................................................. 312
3.3.4.36. Create Department .............................................................................................. 314
3.3.4.37. Update Department ............................................................................................. 316
3.3.4.38. Delete Department .............................................................................................. 318
3.3.4.39. Update Department Head Teachers .................................................................... 320
3.3.4.40. View Room ........................................................................................................... 323
3.3.4.41. Create Room ........................................................................................................ 324
3.3.4.42. Update Room ....................................................................................................... 326
3.3.4.43. Delete Room ........................................................................................................ 328
3.3.4.44. View Building ....................................................................................................... 330
3.3.4.45. Create Building ..................................................................................................... 331
3.3.4.46. Update Building.................................................................................................... 333
3.3.4.47. Delete Building ..................................................................................................... 335
3.3.4.48. View Requests ...................................................................................................... 336
3.3.4.49. Process Requests ................................................................................................. 337
3.3.5. Admin Flow ................................................................................................................... 337
3.3.5.1. View Dashboard ..................................................................................................... 337
3.3.5.2. View Users.............................................................................................................. 338
3.3.5.3. Process account registration requests ................................................................... 339
3.3.5.4. Disable accounts .................................................................................................... 342
3.3.5.5. Recover accounts ................................................................................................... 344
3.3.5.6. View Schools .......................................................................................................... 347

9
3.3.5.7. View Subject........................................................................................................... 348
3.3.5.8. Create Subject ........................................................................................................ 349
3.3.5.9. Update Subject....................................................................................................... 351
3.3.5.10. Delete Subject ...................................................................................................... 354
3.3.5.11. View Region ......................................................................................................... 355
3.3.5.12. Update Region ..................................................................................................... 357
3.3.5.13. View School Year .................................................................................................. 360
3.3.5.14. Create School Year ............................................................................................... 361
3.3.5.15. Update School Year .............................................................................................. 362
3.3.5.16. Publish School Year .............................................................................................. 365
3.3.5.17. Revoke School Year .............................................................................................. 367
3.3.6. Teacher Flow ................................................................................................................. 370
3.3.6.1 View proposed teaching schedule .......................................................................... 370
3.3.6.2 View the published teacher timetable.................................................................... 371
3.3.6.3 Send application...................................................................................................... 371

10
Acknowledgement
We would like to begin by expressing our deepest gratitude to our supervisor, Mr. Lâm Hữu Khánh
Phương, for his invaluable guidance throughout this project. His insightful suggestions and
recommendations have greatly enhanced the quality of our work.

As we complete this capstone project, we extend our heartfelt appreciation to the lecturers at FPT
University, who shared their knowledge and expertise with us, providing a strong foundation as we
navigated our academic journey.

A special note of thanks goes to Mr. Lâm Hữu Khánh Phương once again, our direct supervisor, for
his extensive support in various aspects of the project, including technology, business, and
documentation. Lastly, we want to express our sincere gratitude to our family and friends, whose
encouragement and support have been invaluable during this journey.

We acknowledge that, as students with limited experience and exposure to certain technologies
used in the project, mistakes were unavoidable. We hope for understanding and forgiveness for any
errors or shortcomings. Thank you all for your unwavering support and encouragement.

Definition and Acronyms


Acronym Definition

PWM Psychology website

AWS Amazon Web Services

BA Business Analysis

BR Business Rule

ERD Entity Relationship Diagram

GUI Graphical User Interface

PM Project Manager

SDD Software Design Description

SPMP Software Project Management Plan

SRS Software Requirement Specification

UAT User Acceptance Test

UC Use Case

API Application Program Interface

1
I. Project Introduction
1. Overview
1.1 Project Information
● Project name: Building A Software System to Support Timetable Scheduling for High Schools
● Project code: FA24SE078
● Group name: GFA24SE69
● Software type: Web Application

1.2 Project Team


a. Supervisors

Full Name Role Email Mobile

Lâm Hữu Khánh Phương Lecturer [email protected] 0778081279


b. Team members

Full Name Role Email Mobile

Leader [email protected] 0981408958


Nguyễn Hà Thanh Mai

Lương Hoàng Anh Member [email protected] 0977545450

Nguyễn Thành Long Member [email protected] 0389142366

Nguyễn Chiến Thắng Member [email protected] 0948007371

2. Product Background
In Vietnam, high schools face significant challenges in creating effective and efficient schedules due to
complex requirements, such as balancing student subject choices, teacher availability, classroom
capacity, and compliance with educational standards. Existing solutions like Skolaris, Tes Timetable,
and VietSchool have provided valuable tools to streamline scheduling. However, these systems are
often difficult to install, upgrade, and customize, and their reliance on the client’s computer limits
computational power and performance. They also struggle with conflict resolution, resource
optimization, and adapting to different educational contexts.

These limitations have led to the recognition that a new, more flexible, and efficient scheduling
software is needed—one that can better accommodate diverse educational environments and
requirements while providing improved performance and user experience. This project idea has been
raised to address these gaps and enhance the overall scheduling process for high schools.

3. Existing Systems
3.1 VietSchool - Timetable Management
Brief Description:

+ VietSchool is a comprehensive educational management system designed for schools and


educational institutions in Vietnam. The Timetable Management System is a key component
of VietSchool, providing a centralized platform for creating, managing, and optimizing class
schedules.

2
Link: https://truonghocviet.vn/

System Actors

+ School administrators: Responsible for creating and managing the overall school timetable,
assigning teachers to classes, and allocating resources.
+ Teachers: View their assigned classes, teaching hours, and room allocations.
+ Students: Access their class schedules, view their timetable, and receive notifications about
changes.

Features

+ Timetable creation: A user-friendly interface for creating class schedules based on various
constraints, such as teacher availability, room capacity, and curriculum requirements.
+ Class assignment: Automated or manual assignment of teachers to classes based on their
qualifications, preferences, and workload.
+ Room allocation: Assignment of classrooms to classes based on their size, equipment, and
availability.
+ Conflict resolution: Detection and resolution of scheduling conflicts, such as overlapping class
times or teacher assignments.
+ Timetable optimization: Algorithms for optimizing the timetable to minimize conflicts,
maximize teacher satisfaction, and ensure efficient use of resources.
+ Notification system: Real-time notifications to teachers and students about changes to the
timetable.
+ Integration with other systems: Integration with other modules of VietSchool, such as student
information system, attendance tracking, and grading system.

Pros

+ Centralized management: Provides a centralized platform for managing the entire school
timetable, improving efficiency and reducing errors.
+ Flexibility: Allows for customization of the timetable based on specific school requirements
and constraints.
+ Automation: Reduces manual workload by automating tasks such as class assignment and
room allocation.
+ Integration: Seamlessly integrates with other educational management systems, providing a
comprehensive solution.

Cons

+ Complexity: Can be complex to set up and manage for schools with large numbers of classes
and teachers.
+ Dependency: Relies on accurate data input and maintenance of other systems, such as student
information and teacher availability.
+ Cost: May require a significant investment for schools to purchase and implement the system.

3.2 Skolaris - Timetable Optimization


Brief Description:

+ Skolaris is a modern school management platform that provides a robust timetable


management system, catering to schools and educational institutions worldwide. The
Timetable Management System in Skolaris allows schools to create, manage, and optimize

3
class schedules efficiently, helping schools automate scheduling tasks and ensuring seamless
operations in academic management.

Link: https://skolaris.net/

System Actors

+ School administrators: Responsible for creating and managing the overall school timetable,
assigning teachers to classes, and allocating resources.
+ Teachers: View their schedules, teaching hours, and classroom assignments, and receive real-
time updates.
+ Students: Access their class schedules, view their timetable, and receive notifications about
changes.

Features

+ Timetable Creation: Intuitive user interface that allows school administrators to create
timetables based on teacher availability, classroom capacity, and curriculum needs.
+ Teacher Assignment: Assign teachers to classes automatically or manually, considering their
qualifications, subject expertise, and workload balance.
+ Room Allocation: Allocate classrooms based on class size, equipment needs, and availability
to avoid scheduling conflicts.
+ Conflict Resolution: Detects scheduling conflicts, including double-booking of rooms or
teachers, and suggests solutions for resolving them.
+ Timetable Optimization: Utilizes algorithms to streamline the timetable, reducing clashes,
improving teacher satisfaction, and optimizing resource utilization.
+ Notifications: Sends real-time notifications to teachers and students regarding updates or
changes in their schedules.
+ Integration with Other Systems: Seamlessly integrates with other Skolaris modules like
attendance tracking, grading systems, and student information systems.

Pros

+ User-friendly Interface: The interface is designed to be intuitive, making it easier for school
administrators to create and manage schedules without technical difficulties.
+ Customizable: Offers flexibility in creating timetables based on the unique requirements of the
school and its curriculum.
+ Automation: Reduces the need for manual input by automating teacher and room
assignments based on preset rules and constraints.
+ Scalability: Scalable to cater to educational institutions of different sizes, from small schools
to large educational organizations.
+ Integration: Connects with other systems like attendance, grading, and student information,
providing a comprehensive educational management solution.

Cons

+ Initial Setup: The system can be complex to set up initially, especially for larger institutions
with many variables.
+ Data Accuracy: Relies on accurate data input related to teacher availability, class sizes, and
room resources, which requires regular maintenance.
+ Learning Curve: Some users may experience a steep learning curve in mastering all the
features of the system.

4
+ Cost: This could involve a high cost for implementation, especially for schools with limited
budgets or smaller institutions.

4. Business Opportunity
The process of scheduling timetables for high schools is complex and time-consuming. It involves
aligning the availability of teachers, subjects, classrooms, and resources. Current methods, such as
manual scheduling or outdated systems, often lead to inefficiencies, human errors, and
misallocation of resources. Schedulify offers a chance to update this process by providing a
simplified, automated solution designed specifically for the needs of high schools. High schools can
reduce scheduling time, minimize timetable conflicts, and improve resource management. The
system ensures the optimal utilization of classrooms, teachers, and other school resources,
facilitating improved management of school facilities and personnel.

5. Software Product Vision


Schedulify is a comprehensive solution designed to revolutionize timetable management for high
schools. Schedulify addresses complex constraints such as room availability, teacher preferences,
and subject grouping while ensuring smooth coordination among administrators, department
heads, and teachers by streamlining the creation and management of timetables. Tailored
specifically for high schools, Schedulify provides the flexibility to adapt to various educational
frameworks and scheduling requirements. The software enhances communication and
collaboration among school personnel, fostering a more efficient and organized scheduling process.
Ultimately, Schedulify aims to create a well-structured educational environment where time and
resources are optimized, benefiting educators and students.

6. Project Scope & Limitations


6.1 Major Features
FE-01: Allows the creation and management of timetables.
FE-02: Detects and resolves scheduling conflicts, such as overlapping class times or teacher
assignments.
FE-03: Provides a system for managing different user roles, such as Admin, School Managers,
Teacher Department Head, and Teachers, each with specific access and control levels.
FE-04: Create, view, modify, delete, and archive rooms.
FE-05: Create, view, modify, delete, and archive teachers.
FE-06: Create, view, modify, delete, and archive school infrastructure.
FE-07: Manage user accounts, including creating, modifying, and deleting accounts to control
access and permissions within the system
FE-08: Configure system settings to align with specific school policies, such as scheduling rules,
school hours, and term dates.
FE-09: Define and manage the curriculum, including subjects, courses, and academic
requirements.
FE-10: Create, view, modify, delete, and archive student classes.
FE-10: Adjust and manage teacher availability.
FE-11: Publish updated timetables and export them in various formats for distribution across
the school.

5
FE-12: View and manage schedules at various levels, including class schedules, subject
schedules, and individual schedules.
FE-13: Handle requests for changes in schedules or assignments, ensuring flexibility and
responsiveness in the scheduling process.
6.2 Limitations & Exclusions
LI-01: The software is specifically designed for high school environments and may not fully
accommodate other educational levels like universities or primary schools.
LI-02: The system will not include features for managing student-related data and relevant
functions.
LI-03: The current version of the software will not include a mobile application for timetable
management; it will be web-based only.

II. Project Management Plan


1. Overview
1.1 Scope & Estimation

Est. Effort
Complexit
# WBS Item (man-
y
days)
1 Initiation 17

1.1 Project Planning (ideas, market research, scope evaluation, …) Simple 2

1.2 Identify constraints applying to the system Medium 6

1.3 Identify business cases and business rules Simple 5

1.4 Deliver Report 1 – Project Introduction Medium 4

2 Planning 30

2.1 Research project methodology Medium 6

2.2 Deliver Report 2 – Project Management Plan Medium 4

2.3 Breakdown Work and Sprint Structure Simple 2

2.4 Design User Interface (UI) Prototypes Medium 15

2.5 Build a Risk Management Plan Simple 2

2.6 Identify Project Resources Simple 1

3 Analysis 21

3.1 Build Technical Prototype Medium 7

3.2 Design Database Medium 7

3.3 Deliver Report 3 – System Requirement Specification Medium 7

6
4 Training 10

4.1 Learn backend, and frontend languages and frameworks Medium 10

5. Implementation 98

5.1 Common functions 13

5.1.1 Homepage page Simple 2

5.1.2 About Us page Simple 1

5.1.3 Login (with Google Gmail and password) Simple 2

5.1.4 Register function & UI Simple 2

5.1.5 Logout function & UI Simple 2

5.1.6 Reset password function & UI Simple 4

5.2 Admin’s functions 29

5.2.1 Manage school information 7

5.2.1-1 View school information Simple 2

5.2.1-2 Update the school’s license Simple 2

5.2.1-3 Inactive school Simple 3

5.2.2 Manage constraints 4

5.2.2-1 View constraint’s information Simple 2

5.2.2-2 Update constraint information Simple 2

5.2.3 Manage user accounts 4

5.2.3-1 View list of existing account information Simple 2

5.2.3-2 Delete account Simple 2

5.2.4 Manage curriculum 6

5.2.4-1 View the current default curriculum Simple 2

5.2.4-2 Update curriculum & Policies Medium 4

5.2.5 Manage security, data integrity, and privacy policies 6

5.2.5-1 View policy documents Simple 2

5.2.5-2 Update the policy’s content Medium 4

5.3 School Manager’s functions 26

5.3.1 Manage school information and entities 9

5.3.1-1 View school information Simple 2

7
5.3.1-2 Update the school’s license Simple 4

5.3.1-3 Update data related to teachers, rooms, subjects, ... Simple 3

5.3.2 Manage the school’s schedule 17

5.3.2-1 Adjust constraints for subjects, teacher, … Medium 4

5.3.2-2 Generate/drop timetables Complex 7

5.3.2-3 Publish/update timetables Simple 3

5.3.2-4 Export school/class schedule Simple 3

5.4 Department Head teacher’s functions 14

5.4.1 View class schedule Simple 2

5.4.2 View the schedule of specific teachers Simple 2

5.4.3 Manage teachers within the Department Simple 4

5.4.4 Export department/class schedule Simple 3

5.4.5 Request for changes between teachers in the Department Simple 3

5.5 Teacher’s functions 16

5.5.1 View class/subject schedule Simple 2

5.5.2 View the schedule of specific teacher Simple 2

5.5.3 Export class/teacher schedule Simple 4

5.5.4 Export schedules into multiple formats Simple 4

5.5.5 Submit forms for absence and feedback Simple 2

5.5.6 Register for labs and practice rooms Simple 2

6 Testing 36

6.1 Implement Unit testing Complex 12

6.2 Implement Performance testing Complex 12

6.3 Create Test document Complex 12

7 Integration 7

7.1 Deploy product on a server Medium 2

7.2 Evaluate the product’s actual performance Medium 5

Total Estimated Effort (man-days) 211

8
1.2 Project Objectives

Test No. of % of
# Testing Stage Notes
Coverage Defects Defect
1 Reviewing 100% 20 45%

2 Unit Test 80% 9 20.5%

3 Integration Test 80% 9 20.5%

4 System Test 80% 3 7%

5 Acceptance Test 80% 3 7%

1.3 Project Risks

Possibilit
# Risk Description Impact Response Plans
y
The project
plan is
massively Re-scope the project, schedule the
Member drops
1 impacted and High project plan, and schedule
out of the project
possibly lead overtime work.
to a time
crunch
A project The project Organise emergency meetings to
schedule is not cannot be clarify the schedule, and schedule
2 Medium
thoroughly completed on overtime work to keep up with the
followed time plan
Users cannot
The server does access web Prepare backup servers, and
not operate applications or contact the people in charge to
3 Medium
during the APIs, data bring the server back to online
expected uptime changes are status when it is down
not saved
Team
members are
The application of
unable to Provide appropriate member
new technologies
debug, training for new technologies,
potentially leads
4 features Medium consider switching to other
to insufficient
cannot be common technologies before
community
implemented implementing main features
support
as per the
initial design
New Team
Reallocate resources to adapt to
5 requirements are members do Medium
new requirements or scope
added to the not have

9
project and the enough time
project's scope to meet the
project
deadline.
Causing the
project to go
Misunderstanding off track and
Discuss requirements carefully with
6 Of business logic having to High
PO.
or requirement redefine
requirements
from scratch.
Make the Create rules and penalties for
The team doesn't project members of the team. Tracking the
7 Medium
meet the deadline progress progress day by day. Work
slowly. overtime to complete tasks.

2. Management Approach
2.1 Project Process

The project will follow the Agile development process using Scrum. The reason for adopting this
approach is to ensure flexibility, continuous feedback, and regular delivery of working software. This
approach allows the team to adapt to changes and maintain a clear focus on delivering value to the
stakeholders throughout the project lifecycle:

● Sprints: Development will occur in two-week sprints, providing regular intervals for feedback
and course correction.
● Daily Standups: Short daily meetings help maintain team alignment and quickly address any
roadblocks.
● Sprint Planning & Retrospective: Sprint planning ensures that the team has a clear goal for
each sprint, while retrospectives provide opportunities to improve the process continually.
● User Stories: Defining features as user stories with acceptance criteria helps focus on
delivering functionality that meets user needs and expectations.

10
● Sprint Review: Reviewing completed work with stakeholders at the end of each sprint
ensures that the project is on track and that any necessary adjustments can be made
promptly.

2.2 Quality Management


To maintain a high level of quality throughout the project, the following practices will be applied:

● Making and following the coding rules, and coding conventions.


● All code will go through peer reviews to ensure it adheres to project coding standards and
performs efficiently.
● Holding daily meetings to follow the project’s tasks and support each other.
● Defect Prevention: all defects need to be fixed before the system can be completed.
● Reviewing: system functions must follow the original convention.
● Unit Testing: all functions must work properly.
● Integration Testing: functions should be well coordinated and error-free.
● System Testing: the functions of the system must be smooth, error-free

2.3 Training Plan


Training Area Participants When, Duration Waiver Criteria
Notion All members Week 1, 1 day Mandatory
Week 1–2, 7
ASP.NET 8 Web API LongNT, ThangNC Mandatory
days
Week 1–2, 7
NextJS, TypeScript MaiNHT, AnhLH Mandatory
days

Git, GitHub All members Week 2, 1 day Mandatory


PostgreSQL All members Week 2, 1 day Mandatory

3. Project Deliverables
# Deliverable Due Date Notes
Project Provide an overview of the project: background,
1 09/09/2024
Introduction objective, and scope.
Outline project schedule and milestones. A risk
Project
2 15/09/2024 management plan and communication plan are
Management Plan
also included
SoftwareRequirem
Detail the functional & non-functional
3 entSpecification 25/09/2024
requirements and use case description
(SRS)
Software
Include architectural design, database design,
4 DesignDocument 03/10/2024
and app prototype
(SDD)
Product Release Launch the first official usable product to collect
5 12/10/2024
1(MVP) feedback

11
Launch the 1.1 version of the product, with
6 Product Release 2 05/11/2024 added functionalities compared to the first
version
Launch the 1.2 version of the product, with
7 Product Release 3 28/11/2024 added functionalities compared to the second
version
Software
Detail the result of different types of testing:
8 TestDocument 03/12/2024
UT, IT, AT
(STD)
Provide clear instructions on how to use the
Software
9 04/12/2024 developed software, with concise language and
UserGuides
illustrated screenshots and diagrams
Final Project Includes all the previous project documents,
10 07/12/2024
Report source code, and thesis presentation slide

4. Responsibility Assignments
D~Do; R~Review; S~Support; I~Informed; <blank>- Omitted
M A L T
a n o h
i h n a
Responsibility N L g n
H H N g
T T N
C

Project Planning & Tracking S D D R


Prepare Project Introduction Document D D D D
Prepare SRS Document (Overview Part) R D S S
Prepare SRS Document (User Requirements) D D D D
Prepare SDD D D R D
Draw Use Case Diagram R S D D
Prepare Test documents Report R S D D
Prepare User Guides S D D R
Design Database R D D S
Collect Administrative Unit Data S R D D
Code Backend I I D D
Code Web Application D D I I
Prepare Final Report(combining previous documents and
S D R D
presentation slide)

12
5. Project Communications
When, Type, Tool,
Communication Item Who/ Target Purpose
Frequency Method(s)
Review work status
based on the weekly
All team 21:00 Online, via
Daily Meeting report and given tasks,
members every day Discord
plan tasks for the
following week
Online, via
Role and task All team Assign roles and tasks for
Discord &
assignment meeting members each team member
Notion
Review work status
All team based on the weekly Every
Weekly Meeting Online, via
members, report and given tasks, Friday at
With Supervisor Google
supervisor plan tasks for the 20:15
following week
All team
Meeting with Clarify user Offline at
members,
supervisor and requirements, roles & - - FPT
supervisors,
University Staff project scope University
staff
Ask and answer
When a
All team questions that require Online, via
member
Q&A conversation members, the supervisor to answer Zalo,
has small
supervisor but do not require an Google
questions
emergency meeting
Team members work out
Unscheduled All team When Online, via
a solution to a particular
meeting members necessary Discord
issue
Resolve urgent problems
When a
All team that potentially affect
Emergency member Online, via
members, the project schedule
meetings has urgent Google
supervisor negatively if not solved
questions
immediately
Starting
Perform live project one month
demos and testing, before the
All team Offline at
rehearse final presentatio
Offline meeting members, FPT
presentations, and find n, conduct
supervisor University
and address newly arisen as
issues. frequently
as required

6. Configuration Management
6.1 Document Management
● All project-related documents will be stored on Google Drive, allowing for shared access,
version control, and backups.

13
● Each document will have a version number (e.g., v1.0, v1.1) and a change log section to track
updates.
● Documents will follow a standardized naming convention, such as Project_Plan_v1.0.docx.
● Only designated team members will have editing permissions.
● The team leader assigns and describes tasks through Facebook & Discords. All Documents
will be submitted to management tools to keep track of changes. The team leader then
collects them all to submit to the mentor.

6.2 Source Code Management


● The project’s source code will be hosted on GitHub.
● The team leader assigns and describes tasks through Notion, Facebook & Discords. All source
code will be pushed to Github for version control. The team leader then pulls it back to run
on the deployment environment.
● Follow the rules of the team when using Git:
○ A feature-branching model will be used. Each new feature will be developed in its
branch (e.g., feature/login), and merged into the development branch after a
successful code review.
○ Commit messages will follow the Conventional Commits format.
○ Fetch, review, and resolve conflicts when merging usually.

6.3 Tools & Infrastructures


Category Tools / Infrastructure
Technology ReactJS (FrontEnd), .NET Core (BackEnd)
Database PostgreSQL
IDEs/Editors Visual Studio Code, Visual Studio
Diagramming Lucid, DrawIO
Documentation MS Office, Google Docs/Sheets/Slides
Version Control GitHub (Source Codes), Google Drive (Documents)
Deployment server Vercel, Azure
Project management Notion
UI/UX Design Figma
Communication tools Discord, Facebook, Messenger, Google Meet, Zalo
Test tools Postman, NUnit

III. Software Requirement Specification


1. Product Overview
The Schedulify System is a new software system that replaces the current manual and generates a
timetable for high school. Schedulify is based on an integrated automated timetable for high schools.

The context diagram below illustrates the external entities and system interfaces for release 1.0.

14
2. User Requirements
2.1 Actors
# Actor Description
As a system administrator, including user access control, managing
1 System Admin
schools, system configuration, and resolving issues.

Responsible for managing the internal school content and is primarily


2 School Manager
responsible for creating the timetable.

Teacher Head A prime teacher can manage other teachers within a specific
3
Department department.

A teacher of one specific school can view and export data related to the
4 Teacher
subject and timetable.

Unauthenticated users with limited system access, typically with


5 Guest
restricted functionality or temporary access for specific purposes.

6 System Handler Sending notifications

15
2.2 Use Cases
2.2.1 Diagram(s)

2.2.2 Descriptions
ID Use Case Actors Use Case Description

Allows a user to access the system by


01 Login
providing valid credentials.

Guest Terminates the user session and logs


02 Logout
them out of the system.

Displays the user's details, such as


03 View Profile Information
name, role, and contact information.

Allows an admin to add a new subject to


04 Add Subject System Admin
the system

16
Allows an admin to modify the details of
05 Update Subject
an existing subject in the system

Allows an admin to remove an existing


06 Delete Subject
subject from the system

Allows an admin to add a new school to


07 Add New School
the system
Modifies existing school information,
08 Update School Information such as contact details or administrative
data.
Deactivates a school, making it inactive
09 Inactive School
in the system without deleting its data.

View School and Region Displays detailed information about the


10
Details school and region detail

Add a new area to the system to classify


11 Add Regional Data
schools. (which DOET)
Updates information on existing regions
12 Update Regional Data in the system. (update information of
DOET)
Assigns a school to a specific DOET for
13 Assign School to Region
administrative and scheduling purposes.

View Schools and Regional Displays detailed information about the


14
Reports school and region
Allows an admin to review and approve
15 Approve Registration Request or reject account creation requests
submitted by users.
Admin views a list of all subjects within
16 View Subject the system in a year, and associated
information.
Admin views a list of all school manager
17 View account information accounts within the system, and
associated information.
Allows an admin to create a new school
18 Add New School Year
year in the system

Allows an admin to modify the details of


19 Update School Year
an existing school year in the system
Allows an admin to officially publish a
20 Public School Year school year, making it active and visible
to users within the system
Allows users to submit requests about
21 Submit Request Form Teacher the system or issues about timetable
encountered to the School Manager.

17
Teachers submit forms for planned
22 Submit Absence Form
absences.

Exports the timetable of a specific class


23 Export Class Schedule
they teach.

24 Export Teacher Schedule Exports the timetable of this teacher.

Displays the schedule for a selected


25 View Class Schedule
class.

Shows the individual schedule of a


26 View Teacher Schedule
teacher.

Displays a list of all teachers within a


27 View Teacher List
department or school.

Shows detailed information about a


28 View Teacher Details
teacher.

29 Update Teacher Information Allows modification of teacher details.

Teacher
Shows the schedule for an entire
30 View Department Schedule Department
department.
Head
Displays the schedule for a selected
31 View Class Schedule
class.

Generates and exports schedules


32 Export Department Schedule
specific to a department.

33 Export Class Schedule Exports the timetable of a specific class.

System
34 Push Notification Push notification to the user.
Handler

Allow the school manager to view an


35 View Teacher Reports
overview of data for all teachers
Allows the School Manager to bulk
School import teacher information into the
36 Import Teacher File
Manager system by uploading a file, typically in
CSV or Excel format.
Assign new Teacher Adds a new Teacher Department Head
37
Department Head to the system with relevant permissions.

18
Exports schedule specific to a
38 View Teacher Schedule
department.

Adds a new teacher account to the


39 Add New Teacher
system.

40 Update Teacher Information Allows modification of teacher details.

Deactivates a teacher's account,


41 Inactive Teacher preventing them from accessing the
system.
Allows the School Manager to add
42 Assign Subjects to the Teacher
subjects that teachers can teach

Allows the School Manager to create


43 Add Curriculum
and add a new curriculum for the school

Manages teacher absences and adjusts


44 Handle Teacher Absences
schedules accordingly

Allows editing of specific values related


45 Edit Constraint Data
to constraints.

Displays a list of constraints applied to


46 View constraint
the system.

Automatically generates a timetable for


47 Generate Timetable
the school.

Allows the School Manager to view the


48 View timetable
detailed timetables for the school

49 Publish Schedule Publishes the final schedule.

Modifies an existing timetable as


50 Update Timetable
necessary.
Allows the School Manager to manually
51 Manual adjust period adjust individual periods within the
timetable

52 Export Schedule Exports the schedule to CSV format.

53 Import Room File Uploads room data from a file.

Adds a new room or facility to the


54 Add New Room
school’s infrastructure.

19
Updates the details of an existing room,
55 Update Room Information
like capacity.

56 Delete Room Inactive a room from the system.

Displays a list of rooms applied to the


57 View room details
school.

Allows the School Manager to modify


58 Update Curriculum
the details of an existing curriculum

Allows the School Manager to remove


59 Delete Curriculum
an existing curriculum from the system.
Allows the School Manager to view
60 View Curriculum details of the existing curriculums in the
system
Allows the School Manager to add
61 Add curriculum detail detailed information to an existing
curriculum
Allows the School Manager to modify
62 Update Curriculum detail
the details of an existing curriculum
Allows the School Manager to view the
63 View Curriculum detail detailed components of a specific
curriculum

64 Import Classes File Uploads class data from a file.

65 Add New Class Adds a new class to the school’s system.

66 View Class Reports Creates reports for a specific class.

67 Update Class Information Updates details about an existing class.

68 Inactive Class Deactivates a class.

Assign teachers to specific classes for


69 Assign Teachers to Class
subjects or periods.

Shows the detailed timetable for a


70 View Class Timetable
specific class.
Allows the School Manager to create a
71 Create Combination Class combination class by grouping multiple
classes for a shared subject, or teacher.

20
Allows the School Manager to modify
72 Update Combination Class the details of an existing combination
class
Allows the School Manager to remove
73 Delete Combination Class
an existing combination class.

Allows the School Manager to view the


74 View Combination Class
details of existing combination classes.

Adds a new building to the school’s


75 Add New Building
infrastructure.

Updates the details of an existing


76 Update Building Information
building.

Deactivates a building, making it


77 Inactive Building
unavailable for scheduling.

78 View Building Details Displays details about a specific building.

79 View Building List Shows a list of all buildings in the school.

80 Import Building File Uploads building data from a file.

Adds a new class group to the school’s


81 Add New Class Group
system.

Update Class Group Updates the details of an existing class


82
Information group.

83 Assign Class to Class Group Assigns classes to a specific class group.

84 View Class Group Details Displays the details of a class group.

Shows a list of all class groups in the


85 View Class Group List
system.

Deactivates a class group, preventing it


86 Inactive Class Group
from being used for scheduling.

87 Create Teacher Group Adds a new teacher group.

Updates details of an existing teacher


88 Update Teacher Group
group.

21
Assign Teacher to Teacher Assign teachers to specific groups for
89
Group better coordination.

Displays the teacher groups within the


90 View Teacher Groups
system.

Shows detailed information about a


91 View Teacher Group Detail
teacher group.

Deactivates a teacher group in the


92 Inactive Teacher Group
system.

22
ID and Name: UC - 01 Login

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: User (System Admin, Secondary Actor: N/A


School Manager,
Teacher Department
Head, Teacher)

Description: This feature allows users to log in Schedulify website.

Trigger: An actor wants to log in to the Schedulify website.

Pre-conditions: PRE-1: The actor has authenticated into the Schedulify website.

Post-conditions: POST-1: Success: System inform “Đăng nhập thành công”, actor will be
redirected to Schedulify website.
POST-2: Failed: System informs “Đăng nhập không thành công”, actor will
be redirected tothe Home screen of the website.

Normal Flow: 1. The user navigates to the login page.


2. The user enters a valid username and password.
3. The system verifies the credentials.
4. The system grants access and redirects the user to the dashboard.

Alternative Flows: 1-AF: If the user inputs incorrect credentials, an error message is
displayed.

Exceptions: 1-EF: Incorrect credentials: The system displays an error message and
requests re-entry.
2-EF: Account inactive: The system displays an account inactive message.

Priority: High

Frequency of Use: Frequent

Business Rules: BR-01, BR-02, BR-03, BR-04, BR-31

Other Information: N/A

Assumptions: The user has access to their login credentials.

23
ID and Name: UC - 02 Logout

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: User (System Admin, Secondary Actor: N/A


School Manager,
Teacher Department
Head, Teacher)

Description: Allows a user to log out from the system.

Trigger: The user clicks the logout button.

Pre-conditions: PRE-1: The user must be logged into the system.

Post-conditions: POST-1: The user is logged out, and the session is terminated.
POST-2: The actor will be redirected to the Home screen of the website.

Normal Flow: 1. The user clicks on the logout button.


2. The system ends the session and redirects the user to the login
page.

Alternative Flows: N/A

Exceptions: 1-EF: Session timeout before manual logout.

Priority: High

Frequency of Use: Frequent

Business Rules: BR-05, BR-06, BR-07

Other Information: N/A

Assumptions: N/A

24
ID and Name: UC - 03 View Profile Information

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: User (School Secondary Actor: N/A


Manager, Teacher
Department Head,
Teacher)

Description: Displays the user’s profile information such as name, email, and role.

Trigger: The user navigates to the profile page.

Pre-conditions: PRE-1: The user must be logged in.

Post-conditions: POST-1:The user’s profile information is displayed.

Normal Flow: 1. The user clicks on the profile option.


2. The system retrieves and displays the user’s profile information.

Alternative Flows: N/A

Exceptions: 1-EF: Profile information is unavailable due to a system error.

Priority: Medium

Frequency of Use: Occasional

Business Rules: BR-08, BR-09, BR-10

Other Information: N/A

Assumptions: N/A

25
ID and Name: UC - 04 Add Subject

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: School Manager

Description: Allows an admin to add a new subject to the system

Trigger: Admin initiates the process to add a new subject into the system.

Pre-conditions: PRE-1: The user must have permission to manage the subject.

Post-conditions: POST-1: The new subject is successfully added to the system.

Normal Flow: 1. The user navigates to the "Môn học" tab.


2. The user selects the option to add a subject.
3. The user fills in the required fields and submits the form.
4. The system validates the input data.
5. A confirmation message is displayed to the user.

Alternative Flows: N/A

Exceptions: 1-EF: The system cannot add due to a technical issue.

Priority: Medium

Frequency of Use: Occasional

Business Rules: BR-13, BR-21, BR-44, BR-64

Other Information: N/A

Assumptions: N/A

26
ID and Name: UC - 05 Update Subject

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Allows an admin to modify the details of an existing subject in the system

Trigger: Admin initiates the process to update an existing subject's information.

Pre-conditions: PRE-1: The user must have permission to update the Subject.

Post-conditions: POST-1: Subject data is updated.

Normal Flow: 1. The user navigates to the "Môn học" tab.


2. The system displays a list of subjects.
3. The user selects the subject to be updated.
4. The system retrieves and displays the current details of the
selected subject.
5. The user modifies the necessary fields.
6. The user submits the updated information.
7. The system validates the updated data.
8. A confirmation message is displayed to the user.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to save the updated subject.

Priority: Medium

Frequency of Use: Occasional

Business Rules: BR-13, BR-21, BR-23, BR-64

Other Information: N/A

Assumptions: The subject is updated periodically.

27
ID and Name: UC - 06 Delete Subject

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Allows an admin to remove an existing subject from the system

Trigger: Admin initiates the process to remove a subject from the system.

Pre-conditions: PRE-1: The user must have permission to update the Subject.

Post-conditions: POST-1: The subject is successfully removed from the system.

Normal Flow: 1. The user navigates to the "Môn học" tab.


2. The system displays a list of subjects.
3. The user selects the subject to be deleted.
4. A confirmation message is displayed to the user.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to retrieve or delete the subject.

Priority: Medium

Frequency of Use: Once per academic year.

Business Rules: BR-13, BR-28

Other Information: N/A

Assumptions: N/A

28
ID and Name: UC - 07 Add New School

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: The administrator adds a new school to the system after receiving a
request to create a new school to the system.

Trigger: When the admin receives a request to create a new school from the user.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The new school has been system-authenticated with relevant
information.

Post-conditions: POST-1: The new school is added to the system.


POST-2: The school administrator receives an email notification that the
account is active.

Normal Flow: 1. Admin navigates to the school management page.


2. Admin selects the new school in the dashboard to view detailed
information.
3. The system checks and detects whether the school has not
provided enough information or the information is invalid (e.g.
missing school code, incorrect contact information, etc.)
4. Admin selects "Xác nhận kích hoạt trường học".
5. The system updates the school status.

Alternative Flows: 1-AF: School information is not sufficient or the information is invalid
a. The system checks and detects that the school has not provided
sufficient information or the information is invalid (e.g. missing
school code, incorrect contact information, etc.).
b. The system notifies the Admin of the errors and requests the
school to update the information.
c. Admin selects "Request additional information", and the system
sends an email requesting the school to update the missing
information.
d. The school activation process is paused until the information is
fully supplemented and valid.
e. When the information is complete, Return to Step 4 (NF) of
normal flow.

Exceptions: 1-EF: The system fails to retrieve or apply the curriculum.

Priority: High

29
Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-24, BR-25

Other Information: N/A

Assumptions: Admin has the necessary information to add the school.

30
ID and Name: UC - 08 Update School Information

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin updates the information of an existing school in the system.

Trigger: The system admin receives a request to update school information from
the school manager.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The school exists in the system.

Post-conditions: POST-1: The school information is updated in the system.


POST-2: The school administrator receives a notification that the account is
updated.

Normal Flow: 1. Admin navigates to the school management page.


2. Admin selects the school to update.
3. Admin updates the necessary school information (e.g., name,
address, contact info).
4. The system saves the updated information.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to save the updated school details due to validation
errors or system failure.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-24, BR-26

Other Information: N/A

Assumptions: Admin has valid data for updating school information.

31
ID and Name: UC - 09 Inactive School

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin marks a school as inactive in the system.

Trigger: Admin decides to deactivate a school.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The school exists in the system.

Post-conditions: POST-1: The field is marked as inactive and inaccessible.

Normal Flow: 1. Admin navigates to the school management page.


2. Admin selects the school to deactivate.
3. Admin confirms the deactivation.
4. The system updates the school’s status to inactive.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to update the school’s status.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13,BR-26, BR-27, BR-28

Other Information: N/A

Assumptions: N/A

32
ID and Name: UC - 10 View School and Region Details

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin or authorized user views details of a specific school and its assigned
region.

Trigger: Admin selects a school or region to view detailed information.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The school exists in the system.

Post-conditions: POST-1: The school and region details are displayed.

Normal Flow: 1. The user navigates to the school management page.


2. The user selects a school and views its details, including its
assigned region.
3. The system retrieves and displays the school and region details.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to retrieve the school or region details.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18, BR-30

Other Information: N/A

Assumptions: Data is correctly inputted and up to date.

33
ID and Name: UC - 11 Add Regional Data

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin adds new regional data to the system.

Trigger: Admin decides to add a new region.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.

Post-conditions: POST-1: The new region is added to the system.

Normal Flow: 1. Admin navigates to the regional management page.


2. Admin selects "Thêm vùng mới"
3. Admin enters the regional details (e.g., name, location).

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to save the regional data due to validation errors or
system failure.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-13,BR-21, BR-26

Other Information: N/A

Assumptions: Admin has all the necessary information to add the region.

34
ID and Name: UC - 12 Update Regional Data

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin updates the information of an existing region.

Trigger: Admin selects a region and chooses to update its details.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The region exists in the system.

Post-conditions: POST-1: The regional information is updated in the system.

Normal Flow: 1. Admin navigates to the regional management page.


2. Admin selects the region to update.
3. Admin updates the necessary regional information (e.g., name,
location).
4. The system saves the updated information.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to save the updated regional details due to
validation errors or system failure.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26

Other Information: N/A

Assumptions: Admin has valid data for updating regional information.

35
ID and Name: UC - 13 Assign School to Region

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin assigns a school to a specific region.

Trigger: Admin decides to assign a school to a region.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The School and Region exist in the system.

Post-conditions: POST-1: The school is assigned to the selected region.

Normal Flow: 1. Admin navigates to the school management page.


2. Admin selects a school and assigns it to a region.
3. The system updates the school's region assignment.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to update the region assignment.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-26, BR-29

Other Information: N/A

Assumptions: Schools and regions are maintained in the system.

36
ID and Name: UC - 14 View Schools and Regional Reports

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin view reports on schools and regions.

Trigger: Admin decides to view Schools and Regional reports.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The School and Region exist in the system.

Post-conditions: POST-1: A report is viewed and displayed or exported.

Normal Flow: 1. Admin navigates to the reports page.


2. Admin selects the option to view a school and region report.
3. The system compiles the data and generates the report.
4. Admin views or exports the report.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to get the report due to a data or system error.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-10, BR-13, BR-18

Other Information: Reports can be exported in various formats (e.g., PDF, Excel).

Assumptions: Data in the system is up to date.

37
ID and Name: UC - 15 Approve Registration Request

Created By: ThangNC Date Created: 20/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin creates an account for a new school manager.

Trigger: Admin decides to create a new account for a school manager.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The School exists in the system.

Post-conditions: POST-1: A new school manager account is created and associated with a
school.
POST-2: The system sends an email to the new school manager account.

Normal Flow: 1. Admin navigates to the “Người dùng ” tab.


2. Admin selects an account in the list.
3. Admin clicks on the approve button.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to update the account due to validation or system
errors.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-18, BR-26, BR-31, BR-32, BR-33, BR-34

Other Information: N/A

Assumptions: Users manage their accounts securely.

38
ID and Name: UC - 16 View Subject

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: System Admin Secondary Actor: School Manager,


Teacher

Description: Admin views a list of all subjects within the system in a year, and
associated information.

Trigger: Admin decides to view a list of all subjects within the system in a year.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The subject exists in the system.

Post-conditions: POST-1: The system displays the details of the selected subject.

Normal Flow: 1. Admin navigates to the “Môn học” page.


2. Admin selects a subject.
3. The system displays subject information.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to create the account due to validation or system
errors.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: The system is already populated with subject data.

39
ID and Name: UC - 17 View Account Information

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Admin views a list of all user accounts within the system, including their
roles and associated information.

Trigger: Admin selects the option to view all accounts.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The account exists in the system.

Post-conditions: POST-1: The list of accounts is displayed, showing relevant information


such as account status, role, and assigned school or department.

Normal Flow: 1. Admin navigates to the user management page.


2. Admin selects the option to view all user accounts.
3. The system retrieves and displays the list of accounts.
4. Admin can view detailed information about each account.

Alternative Flows: 1-AF. Admin applies filters to the list (e.g., role, school, department).
2-AF. Admin sorts the account list by various criteria (e.g., name, role).

Exceptions: 1-EF: The system fails to retrieve the account list due to data or system
errors.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: Admins manage user accounts as part of their responsibilities.

40
ID and Name: UC - 18 Add New School Year

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Allows an admin to create a new school year in the system

Trigger: Admin decides to add a new school year to the system.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.

Post-conditions: POST-1: A new school year is successfully added to the system

Normal Flow: 1. Admin selects the "Năm học" tab.


2. The user fills out the form and submits it.
3. The system shows a success message, notifying the Admin that the
new school year has been added.

Alternative Flows: 1-AF: Invalid Input


a. The system detects the validation error and highlights the fields
that need correction.

Exceptions: 1-EF: A system error (e.g., database issue, network failure) prevents the
constraint from being saved.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26, BR-65, BR-66

Other Information: N/A

Assumptions: N/A

41
ID and Name: UC - 19 Update School Year

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Allows an admin to modify the details of an existing school year in the
system

Trigger: Admin decides to update the school year in the system.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The school year exists in the system.

Post-conditions: POST-1: The selected school year's details are successfully updated

Normal Flow: 1. Admin selects the "Năm học" tab.


2. Admin select a school year and click the edit button
3. Admin fills out the form and submits it
4. The system shows a success message.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to save the updated constraint due to validation
errors or system failure.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26, BR-65, BR-66

Other Information: N/A

Assumptions: The system maintains consistency with other constraints.

42
ID and Name: UC - 20 Public School Year

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: System Admin Secondary Actor: N/A

Description: Allows an admin to officially publish a school year, making it active and
visible to users within the system

Trigger: Admin finalizes the school year setup and decides to make it public.

Pre-conditions: PRE-1: The user is logged into the online platform.


PRE-2: The user has admin privileges.
PRE-3: The school year to be published must exist in the system.

Post-conditions: POST-1: The school year is published, and its details become visible to
relevant stakeholders in the system.

Normal Flow: 1. Admin navigates to the “Năm học” page.


2. Admin selects the year for the public.
3. The system marks the school year as public.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to deactivate the constraint due to a system error.

Priority: BR-13

Frequency of Use: Occasionally

Business Rules: N/A

Other Information: N/A

Assumptions: The school year details are validated and reviewed before the publication
process.

43
ID and Name: UC - 21 Submit Request Form

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: Teacher Secondary Actor: N/A

Description: A teacher submits feedback regarding the system, processes, or scheduling


issues via a feedback form.

Trigger: The user decides to submit feedback through a feedback form.

Pre-conditions: PRE-1: The user is logged into the online platform with the role of Teacher.

Post-conditions: POST-1: The feedback is recorded and sent to the School Manager for
review.

Normal Flow: 1. The teacher navigates to the "Báo cáo" section from the main
menu and selects “Gửi Đơn”.
2. The system displays an application form.
3. The teacher fills in the form fields, including:
○ Title of the application
○ Type of the application
○ Detailed comments or suggestions
○ Optional attachment (if applicable)
4. The teacher clicks the "Gửi" button.
5. The system validates the input and confirms that all mandatory
fields are filled in correctly.
6. Upon successful submission, the system displays a confirmation
message indicating that the feedback has been received.
7. The feedback is saved to the database and made available for the
School manager's review.

Alternative Flows: 1-AF: If the teacher leaves the required fields empty, the system displays
an error message prompting the user to complete the form before
submission.

Exceptions: 1-EF: The system fails to retrieve the list of constraints due to data or
system errors.

Priority: Low

Frequency of Use: Occasionally

Business Rules: BR-13, BR-36, BR-37

Other Information: Feedback is typically reviewed by the School manager.

44
Assumptions: Users provide constructive feedback for system improvements.

45
ID and Name: UC - 22 Submit Absence Form

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: Teacher Secondary Actor: N/A

Description: A teacher submits an absence request to notify the system of a planned or


emergency leave.

Trigger: The teacher decides to submit an absence request.

Pre-conditions: PRE-1: The user is logged into the online platform with the role of Teacher.

Post-conditions: POST-1: The absence is recorded in the system for schedule adjustments.

Normal Flow: 1. The teacher navigates to the "Hỗ trợ" section from the main menu
and selects “Gửi Lịch Nghỉ”.
2. The system displays a form for submitting absences.
3. The teacher selects the reason for absence from a dropdown list
(e.g., medical leave, meeting, personal reasons).
4. The teacher selects the absence dates and times:
○ Start date and time
○ End date and time
5. The teacher optionally adds comments or explanations for the
absence.
6. The teacher clicks the "Gửi" button.
7. The system validates the input and checks for conflicts with
scheduled classes.
8. Upon successful validation, the system saves the absence request
and displays a confirmation message.
9. The absence request is forwarded to the school admin or
department head for approval.

Alternative Flows: 1-AF: If the absence dates conflict with mandatory school events or
previously approved absences, the system alerts the teacher and requests
a correction before submission.

Exceptions: 1-EF: The system fails to retrieve the list of constraints due to data or
system errors.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-36, BR-38

46
Other Information: Absence data is used to adjust timetables.

Assumptions: Absence policies are followed correctly.

47
ID and Name: UC - 23 Export Class Schedule

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: Teacher Secondary Actor: N/A

Description: A teacher exports the schedule of a specific class or class for external
viewing or printing.

Trigger: The teacher decides to export a class schedule.

Pre-conditions: PRE-1: The user is logged into the online platform with the role of Teacher.
PRE-2: The class schedule is finalized and available in the system.

Post-conditions: POST-1: The class schedule is exported in the selected format.

Normal Flow: 1. The teacher navigates to the "Thời Khóa Biểu Lớp" section.
2. The system displays the teacher's class schedules.
3. The teacher selects the class or classes for which they want to
export the schedule.
4. The teacher clicks the "Xuất file" button.
5. The system prompts the teacher to select an export format
( Excel).
6. The teacher selects the desired format and clicks "Confirm."
7. The system generates the export file in the selected format.
8. The system displays a download link for the file.
9. The teacher downloads and saves the schedule file to their device.

Alternative Flows: N/A

Exceptions: 1-EF: The system fails to export the schedule due to a system error.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-18, BR-39, BR-40

Other Information: Exported schedules can be used for distribution or archival purposes.

Assumptions: Schedules are up to date and accurate before export.

48
ID and Name: UC - 24 Export Teacher Schedule

Created By: AnhLH Date Created: 20/09/2024

Primary Actor: Teacher Secondary Actor: Teacher Department Head,


School Manager

Description: Teachers want to save their published schedules in offline Excel.

Trigger: A teacher indicates that he/she wants to save their timetable for offline
usage or print out the timetable.

Pre-conditions: PRE-1: The user is logged in to the system as a Teacher/School manager


(appropriate authorization).
PRE-2: There is at least one existing/published timetable available to that
teacher.

Post-conditions: POST-1: There is at least one available published timetable.


POST-2: The timetable is properly and sufficiently converted into a well-
designed document that meets certain qualifications.
POST-3: The document file is downloaded into the client's device.
POST-4: The system shows a notification for successful conversion.

Normal Flow: 1. The teacher redirects to the “Thời khóa biểu” page.
2. The teacher initiates the conversion process by clicking on the “Xuất
TKB” button.
3. The system disables the button, processes the teacher's request, and
converts the timetable into an Excel file.
4. After successful conversion, the system launches the download file
process automatically on the Teacher’s device.
5. The system announces the successful process to the Teacher by a
notification on the page's screen.
6. The Teacher clicks on the “Đóng” button to close the notification.

Alternative Flows: N/A

Exceptions: 1-EF. The system may fail to process the Teacher’s request due to many
factors including Server errors, client network errors, and browser issues,…
a. The system will show a notification announcing that there is an
error processing the Teacher’s request and will require the Teacher
to retry again or reload the page.
b. The system will re-enable the button for the user to retry.

Priority: Medium

Frequency of Use: Occasionally

49
Business Rules: BR-13, BR-18, BR-39, BR-40

Other Information: N/A

Assumptions: N/A

50
ID and Name: UC - 25 View Class Schedule

Created By: AnhLH Date Created: 21/09/2024

Primary Actor: Teacher Secondary Actor: Teacher Department


Head, School Manager

Description: The teacher (or School Manager) wants to view their published schedule in
detail.

Trigger: A teacher indicates that he/she wants to look up their class timetable in
detail.

Pre-conditions: PRE-1: The user is logged in to the system as a Teacher/School manager


(appropriate authorization).
PRE-2: There is at least one existing/published timetable available to that
teacher.

Post-conditions: POST-1: The system succeeds in showing the up-to-date timetable to the
Teacher.
POST-2: The system provides filter categories for the Teacher to filter the
teaching slots.

Normal Flow: 1. The teacher redirects to the “Thời khóa biểu” page.
2. The teacher opens the teaching slots of specific classes by clicking the
“Lớp học” dropdown.
3. The teacher chooses a specific class from the list provided by the system.
4. The system verifies the request and shows the latest available timetable
of the selected class to that Teacher.

Alternative Flows: N/A

Exceptions: 1-EF. The system may fail to retrieve timetable data from the Server due to
network issues, Server errors, or some technical problems. In this case, the
system will announce the issue to the Teacher and require the Teacher to
reload the page or try another network connection.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

51
ID and Name: UC - 26 View Teacher Schedule

Created By: AnhLH Date Created: 21/09/2024

Primary Actor: Teacher Secondary Actor: Teacher Department Head,


School Manager

Description: The Teacher (or Department Head Teacher, School Manager) wants to check
on the Teacher's timetable.

Trigger: A teacher indicates that he/she wants to look up their timetable in detail.

Pre-conditions: PRE-1: The user is logged in to the system as Teacher/Department head


teacher/School manager (appropriate authorization).
PRE-2: There is at least one existing/published timetable available to that
teacher.

Post-conditions: POST-1: The system succeeds in showing the up-to-date timetable to the
Teacher.

Normal Flow: 1. The teacher redirects to the “Thời khóa biểu” page.
2. The teacher opens the list of classes by clicking the “Giáo viên”
dropdown.
3. Teacher chooses all classes from the list provided by the system.
4. The system verifies the request and shows the latest available timetable
of the selected class to that Teacher.

Alternative Flows: 1-AF. For Teacher Department Head, when he/she wants to view one
teacher’s schedule
a. Teacher Department Head opens the list of teachers by clicking on
the “Giáo viên” button.
b. The department Head chooses one teacher from the given list.
c. The system verifies the request and shows the latest available
timetable of the selected teacher to the Teacher Department Head.

Exceptions: 1-EF. The system may fail to retrieve timetable data from the Server due to
network issues, Server errors, or some technical problems. In this case, the
system will announce the issue to Teacher and require Teacher to reload
the page or try another network connection.

Priority: High

Frequency of Use: Frequently

52
Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

53
ID and Name: UC - 27 View Teacher List

Created By: AnhLH Date Created: 21/09/2024

Primary Actor: Teacher Department Secondary Actor: School Manager


Head

Description: The “View Teacher List” use case describes the action of viewing a list of
teachers, which is used for the teacher management process.

Trigger: The teacher Department Head indicates that he/she wants to view the list
of teachers and their information for specific purposes.

Pre-conditions: PRE-01. The user is logged in to the system as the Department head
teacher/School manager (appropriate authorization).
PRE-02. There should be at least one existing teacher in the school’s data.

Post-conditions: POST-01. The system successfully shows a list of teachers that are
active/inactive in the system in real-time.
POST-02. The system has a method to distinguish between active and
inactive teachers.
PRE-03. The user’s device is connected to the Internet.

Normal Flow: 1. Teacher Department Head goes to the “Thời khóa biểu Giáo viên” tab
from the Homepage.
2. The system shows a list of active teachers by default in a table.

Alternative Flows: 1-AF. The Teacher Department Head wants to show all teachers including
inactivated ones.
a. Teacher Department Head tick the box “Show inactive teachers”
on the top side of the table.
b. The system reloads the data and shows a list of both active and
inactive teachers in a table.

Exceptions: 1-EF. The system may fail to retrieve teacher data from Server due to
network issues, Server errors, or some technical problems. In this case, the
system will announce the issue to the Teacher Department Head and
require her/him to reload the page or try another network connection.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18, BR-30

Other Information: N/A

54
Assumptions: N/A

ID and Name: UC - 28 View Teacher Details

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: Teacher Secondary Actor: School Manager


Department Head

Description: A Teacher Department Head wants to view information about a specific


teacher within his/her department in detail.

Trigger: The Teacher Department Head indicates that he/she wants to view one
teacher’s information in detail.

Pre-conditions: PRE-1: User is logged in to the system as Teacher Department


Head/School manager (appropriate authorization).
PRE-2: There should be at least one existing teacher in the school’s data.
PRE-3: User’s device has been connected to the Internet.

Post-conditions: POST-1: The system shows sufficient available information on the


selected teacher in detail.
POST-2: The system has a method to distinguish between active and
inactive teachers.

Normal Flow: 1. Teacher Department Head goes to the “Giáo viên” tab from the
Homepage.
2. The system shows a list of active teachers by default in a table.
3. The Teacher Department Head clicks the cell that contains the
teacher's name to navigate to the Detail page.
4. The system gets the data of the selected teacher in detail and shows
the data to the Teacher Department Head.

Alternative Flows: 1-AF. The teacher Department Head can access teacher’s information
within the timetable of the department's subject.
a. Teacher Department Head goes to the “Thời khóa biểu” tab
from the Homepage.
b. The teacher Department Head opens the list of teachers by
clicking on the “Giáo viên” button.
c. The department Head chooses one teacher from the given list.
d. The system verifies the request and shows the latest available
timetable of the selected teacher to the Teacher Department

55
Head.
e. The teacher Department Head clicks on one of the slots shown
in the timetable.
f. The system navigates to the Detail Timeslot page.
g. Teacher Department Head clicks on the name of the teacher.
h. Return to STEP 4 (NF) in normal flow.

Exceptions: 1-EF. The system may fail to retrieve teacher data from Server due to
network issues, Server errors, or some technical problems. In this case,
the system will announce the issue to Teacher Department Head and
require her/him to reload the page or try another network connection.

Priority: High

Frequency of Use: Medium

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 29 Update Teacher Information

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: The School Manager needs to update one teacher’s information due to
external factors from that teacher in the actual school.

Trigger: The School Manager needs to update one teacher’s information so that it
can match with the actual status of that teacher.

Pre-conditions: PRE-1: The user is logged in to the system as a School manager


(appropriate authorization).
PRE-2: The teacher is well-defined and created previously.
PRE-3: The user’s device has been connected to the Internet.

56
Post-conditions: POST-1: The system updates the selected teacher’s information after the
editing process.
POST-2: The server updates the record’s information in the database.
POST-3: Information displayed in the system is updated in real-time
amongst the system.

Normal Flow: 1. School Manager redirects to the “Giáo viên” tab from the Homepage.
2. The system shows the list of teachers existing in the database.
3. The School Manager clicks on the cell containing the name of the
teacher.
4. The system navigates to the Detailed information of the selected
teacher.
5. The School Manager clicks on the “Cập nhật thông tin” button from the
Detail page.
6. The system adjusts the view so that editable information can be edited
by the School Manager.
7. During the update process, the system validates the new information
inputted for well-qualified information.
8. After finishing editing, the School Manager clicks on the “Cập nhật”
button.
9. The system validates new information, if every information is properly
edited, the system shows a message announcing a successful update.

Alternative Flows: 1-AF. If the value School Manager input does not match the requirement
a. The system highlights the error in the user's inputs.
b. Helper text is displayed to guide users on how to fix it.
c. Return to STEP 8 (NF) in normal flow.

Exceptions: 1-EF. The information does not meet the requirements of the system due
to criteria set in the server. Therefore, the updated information will be
rejected and the School Manager will have to correct the sent information
before sending it again.
2-EF. Due to network errors, server overflown, and connection issues,...
the server may fail to update the information. The system will announce
the issue to the School Manager and require her/him to reload the page
or try another network connection.

Priority: High

Frequency of Use: Medium

Business Rules: BR-13, BR-21, BR-24, BR-26

57
Other Information: N/A

Assumptions: N/A

ID and Name: UC - 30 View Department Schedule

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: Teacher Department Secondary Actor: School Manager


Head

Description: The Teacher Department Head checks on the department’s overall


schedule. This includes the schedules of every teacher in the department.

Trigger: The Teacher Department Head indicates that he/she needs to check on
the information of the Department’s schedule.

Pre-conditions: PRE-1: The user is logged in to the system as Teacher Department


Head/School Manager (appropriate authorization).
PRE-2: There should be at least one existing/published timetable available
to that department.
PRE-3: The user’s device has been connected to the Internet.

Post-conditions: POST-1: The system sufficiently displays the whole timetable of the
department with real-time data.

Normal Flow: 1. Teacher Department Head redirects to the Timetable page by clicking
on the “Thời khóa biểu” tab from the Homepage.
2. The Teacher Department Head clicks on the “Giáo viên” button to
show every option available.
3. The system shows a list of available teachers within the department
including the “Tất cả giáo viên” as the first option.
4. The Teacher Department Head selects the “Tất cả giáo viên” option
from the given list.
5. The system shows a timetable displaying every slot of teachers within
the department.

Alternative Flows: N/A

58
Exceptions: 1-EF. The system may fail to retrieve timetable data from the Server due
to network issues, Server errors, or some technical problems. In this case,
the system will announce the issue to the Teacher Department Head and
require her/him to reload the page or try another network connection.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 31 View Class Schedule

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: Teacher Department Secondary Actor: School Manager


Head

Description: The Teacher Department Head checks on the teacher’s overall schedule.
This includes the schedules of a specific teacher in the department.

Trigger: The Teacher Department Head indicates that he/she needs to check on
the information of one specific schedule.

Pre-conditions: PRE-1: The user is logged in to the system as Teacher Department


Head/School Manager (appropriate authorization).
PRE-2: There should be at least one existing/published timetable available
to that department.
PRE-3: The user’s device has been connected to the Internet.

Post-conditions: POST-1: The system sufficiently displays the whole timetable of the
selected teacher with real-time data.
POST-2: The system provides filter categories for the Teacher to filter the
teaching slots.

59
Normal Flow: 1. Teacher Department Head redirects to the “Thời khóa biểu” page.
2. The teacher opens the teaching slots of specific classes by clicking the
“Lớp học” dropdown.
3. The teacher chooses a specific class from the list provided by the
system.
4. The system verifies the request and shows the latest available
timetable of the selected class to that Teacher.

Alternative Flows: N/A

Exceptions: 1-EF. The system may fail to retrieve timetable data from the Server due
to network issues, Server errors, or some technical problems. In this case,
the system will announce the issue to the Teacher Department Head and
require her/him to reload the page or try another network connection.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 32 Export Department Schedule

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: Teacher Department Secondary Actor: School Manager


Head

Description: The Teacher Department Head converts the department’s schedule into
document types like Excel, PDF, Word,...

Trigger: The Teacher Department Head indicates that he/she needs to export the
department’s timetable into Excel file for offline storage, and printing
purposes,...

60
Pre-conditions: PRE-1: User is logged in to the system as Teacher Department
Head/School manager (appropriate authorization).
PRE-2: There should be at least one existing/published timetable available
to that department.
PRE-3: User’s device has been connected to the Internet.

Post-conditions: POST-1: The timetable is properly and sufficiently converted into a well-
designed document that meets certain qualifications.
POST-2: The document file is downloaded into the client's device.
POST-3: The system shows a notification for successful conversion.

Normal Flow: 1. Teacher Department Head redirects to the Timetable page by clicking
on the “Thời khóa biểu” tab from the Homepage.
2. The teacher Department Head selects the “Tổ bộ môn” dropdown
and selects an existing department from the given list.
3. The Teacher Department Head initiates the conversion process by
clicking on the “Xuất TKB” button.
4. The system processes the teacher's request and converts the
timetable into an Excel file.
5. After successful conversion, the system launches the download file
process automatically on her/his device.
6. The system announces successful conversion to Teacher Department
Head by a notification on the page's screen.
7. The Teacher Department Head clicks on the “Đóng” button to close
the notification.

Alternative Flows: N/A

Exceptions: 1-EF. The system may fail to process the Teacher Department Head’s
request due to many factors including Server errors, client network errors,
browser issues,…
a. The system will show a notification announcing that there is an
error processing Teacher Department Head’s request and require
her/him to relaunch the page or log in again for revalidation.
b. The system will re-enable the button for the user to retry.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-18, BR-39, BR-40

Other Information: N/A

Assumptions: N/A

61
ID and Name: UC - 33 Export Class Schedule

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: Teacher Department Secondary Actor: School Manager


Head

Description: The Teacher Department Head converts the department’s schedule into
an Excel document.

Trigger: The Teacher Department Head indicates that he/she needs to export the
class’s timetable into an Excel file for offline storage, and printing
purposes,...

Pre-conditions: PRE-1: User is logged in to the system as Teacher Department


Head/School manager (appropriate authorization).
PRE-2: There should be at least one existing/published timetable available
to that department.
PRE-3: User’s device has been connected to the Internet.

Post-conditions: POST-1: The timetable is properly and sufficiently converted into a well-
designed document that meets certain qualifications.
POST-2: The document file is downloaded into the client's device.
POST-3: The system shows a notification for successful conversion.

Normal Flow: 1. Teacher Department Head redirects to the Timetable page by clicking
on the “Thời khóa biểu” tab from the Homepage.
2. The teacher Department Head selects the “Lớp học” dropdown and
select an existing department from the given list.
3. The Teacher Department Head initiates the conversion process by
clicking on the “Xuất TKB” button.
4. The system processes the teacher's request and converts the
timetable into an Excel file.
5. After successful conversion, the system launches the download file
process automatically on her/his device.
6. The system announces successful conversion to Teacher Department
Head by a notification on the page's screen.
7. The Teacher Department Head clicks on the “Đóng” button to close
the notification.

Alternative Flows: 1-AF. The Teacher Department Head selects “Khối” to see every class of
the grade.
a. The system shows the timetable of the whole grade.

62
b. Return to STEP 3 (NF) in normal flow.

Exceptions: 1-EF. The system may fail to process the Teacher Department Head’s
request due to many factors including Server errors, client network errors,
and browser issues,…
a. The system will show a notification announcing that there is an
error processing Teacher Department Head’s request and require
her/him to relaunch the page or log in again for revalidation.
b. The system will re-enable the button for the user to retry.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-18, BR-39, BR-40

Other Information: N/A

Assumptions: N/A

63
ID and Name: UC - 34 Push Notification

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: System Handler Secondary Actor: Users

Description: This feature allows the system to automatically send push notifications to
users when specific events occur, such as scheduling updates, reminders, or
alerts.

Trigger: A specific event or condition triggers the notification.

Pre-conditions: PRE-01. The system is configured with push notification services.


PRE-02. End users have opted in to receive notifications.

Post-conditions: POST-01. The notification is successfully sent to the target users.


POST-02. Users receive the notification on their devices.

Normal Flow: 1. A predefined event occurs in the system (e.g., a schedule update or
deadline reminder).
2. The system identifies the event and triggers the push notification
process.
3. The system prepares the notification message, including:
4. The system sends the notification to the user's registered devices.
5. The system confirms that the notification has been sent
successfully.
6. The system logs the notification event for audit and reporting
purposes.

Alternative Flows: 1-AF Fail to send notification


a. The system will retry sending the notification after a 1000ms delay.

Exceptions: 1-EF Unauthorised actor


a. Display an error message “Unauthorised access”.

Priority: High

Frequency of Use: High

Business Rules: BR-13, BR-62, BR-63

Other Information: N/A

64
Assumptions: N/A

ID and Name: UC - 35 View Teacher Reports

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows authorized school managers to view a comprehensive dashboard


that aggregates data for all teachers

Trigger: The user wants to view an overview of data for all teachers.

Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate


authorization).

Post-conditions: POST-01. The dashboard displaying aggregated teacher data is generated


and shown to the user.

Normal Flow: 1. The user navigates to the "Dashboard" section.


2. At Teacher Reports section.
3. The system displays an interactive dashboard.
4. Users can click on specific sections of the dashboard to drill down into
more detailed reports for individual teachers or departments.

Alternative Flows: N/A

Exceptions: 1-EF. If there are technical issues: server, or networking, the system
displays an alert message.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

65
Other Information: N/A

Assumptions: N/A

ID and Name: UC - 36 Import Teacher File

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: The school Manager imports a prepared Excel file containing teacher
information to quickly set up data for teachers in school when the School
Manager initiates the school timetable-generating process.

Trigger: The School Manager wants to import a data file of the school's teachers to
set up teachers’ data in school.

Pre-conditions: PRE-1: User is logged in to the system as School manager (appropriate


authorization).
PRE-2: The uploaded file meets the system’s file requirements (data,
format,...).
PRE-3: User’s device has been connected to the Internet.

Post-conditions: POST-1: The system reads the uploaded file and converts it into editable
data on the website.
POST-2: The system announces successful status to the School Manager
after the conversion process has been completed.

Normal Flow: 1. School Manager redirects to the Teacher page by clicking on the “Giáo
viên” tab from the Homepage.
2. The School Manager clicks on the “Nhập dữ liệu” button on the page.
3. System shows a Modal for the School Manager to select and upload a
file from her/his device.
4. The school Manager selects a file to upload.
5. The School Manager clicks on the “Tải lên” button to start the file
upload process.
6. After sufficiently uploading a file, the system verifies the file’s content
and converts data into editable objects in the system. [See 1-AF]
7. The School Manager clicks on the “Hoàn tất” button to finish
uploading the file.
8. System shows a notification announcing that the file has been
imported successfully.

66
9. The system shows recently imported teachers’ data.
10. The School Manager confirms and applies new teachers’ data into the
system.

Alternative Flows: 1-AF. The file uploaded is not correctly formatted or does not contain
sufficient information.
a. The system shows an alert notifying that School Manager’s fileID
doess not apply to the system.
b. The system requires the School Manager to upload another file.
c. Return to STEP 4 (NF) in normal flow.
2-AF. The data converted from the file is not matched with the intended
data School Manager wants to have:
a. School Manager edits the incorrect fields.
b. System verifies and validates School Manager’s inputs.
c. Return to STEP 7 (NF) in normal flow.

Exceptions: 1-EF. If the School Manager does not select any file or cancel the upload
file process, the process will be terminated and the system will redirect
her/him to the default Teacher page.
2-EF. The client’s network may experience some issues that lead to failure
in uploading the file, in this case, the system will remain at the uploading
file screen for School Manager to try again.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-42, BR-43, BR-44

Other Information: N/A

Assumptions: N/A

67
ID and Name: UC - 37 Assign new Teacher Department Head

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: The School Manager entitles a Teacher to be a Teacher Department Head


of a school for managing teachers within that department.

Trigger: A school manager wants to entitle a Teacher to be a Teacher Department


Head.

Pre-conditions: PRE-1: User is logged in to the system as School manager (appropriate


authorization).
PRE-2: User’s device has been connected to the Internet.
PRE-3: The department is initiated that is satisfied with the system's
requirements.

Post-conditions: POST-1: The account of the selected teacher is assigned to be Department


Head in real time.
POST-2: The database of the server updates the account's status after
finishing the process.
POST-3: Notification is sent to the new Teacher Department Head.

Normal Flow: 1. School Manager navigates to the Teacher page by clicking on the
“Giáo viên” tab from the Homepage.
2. The system shows a list of every teacher in the school in a table by
default.
3. The School Manager selects the “Phân công tổ trưởng” button to
entitle the department head to create departments.
4. System shows a list of existing departments and existing department
heads (if have) for the user to pick.
5. The School Manager selects the desired teacher department head for
a department that doesn’t have it initially or changes the existing
department head.
6. The School Manager clicks the “Lưu thay đổi” button to complete the
process.
7. System notifies new changes to the selected Teacher.

Alternative Flows: 1-AF. School Manager entitle Teacher to be Teacher Department Head
when preparing for the import file.
a. School Manager prepares a Teacher Import File.

68
b. School Manager defines Teacher Department Head by filling in
values in the Department Head column in the rows containing the
selected Teacher’s name.
c. Import teacher based on UC - 35 Import Teacher File.
d. Return to STEP 4 (NF) in normal flow.

Exceptions: 1-EF. In the Confirm Modal, if School Manager click on the “Cancel”
button, the process will be terminated and the system will navigates
School Manager to default Teacher page.
2-EF. The client’s network may experience some issues that lead to failure
in updating status changes, in this case, the system will remain at the
Teacher screen for School Manager to try again.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-26, BR-31, BR-32, BR-33, BR-34

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 38 View Teacher Schedule

Created By: AnhLH Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: Teacher Department Head,


Teacher

Description: The School Manager wants to check on the Teacher's timetable.

Trigger: A teacher indicates that he/she wants to look up their own timetable in
detail.

Pre-conditions: PRE-1: User is logged in to the system as Teacher/Department head


teacher/School manager (appropriate authorization).
PRE-2: There is at least one existing/published timetable available to that
teacher.

69
Post-conditions: POST-1: The system succeeds in showing the up-to-date timetable to
Teacher.

Normal Flow: 1. School Manager redirects to the “Thời khóa biểu” page.
2. School Manager opens the list of classes by clicking the “Giáo viên”
dropdown.
3. The School Manager chooses all classes from the given list provided by
the system.
4. The system verifies the request and shows the latest available timetable
of the selected class to that Teacher.

Alternative Flows: 1-AF. For Teacher Department Head, when he/she wants to view one
teacher’s schedule
a. The Teacher Department Head opens the list of teachers by clicking
in the “Giáo viên” button.
b. The Teacher Department Head chooses one teacher from the given
list.
c. The system verifies the request and shows the latest available
timetable of the selected teacher to the Teacher Department Head.

Exceptions: 1-EF. The system may fail to retrieve timetable data from Server due to
network issues, Server errors, or some technical problems. In this case, the
system will announce the issue to the School Manager and require the
School Manager to reload the page or try another network connection.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 39 Add New Teacher

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: The School Manager manually filling in information and creating a teacher
with proper attributes that satisfy the system’s requirements.

70
Trigger: School Manager wants to add new teacher to the system

Pre-conditions: PRE-1: User is logged in to the system as School manager (appropriate


authorization).
PRE-2: User’s device has connected to the Internet.

Post-conditions: POST-1: The system reads the uploaded file and converts into editable
data on the website.
POST-2: The system announces successful status to the School Manager
after the conversion process has completed.

Normal Flow: 1. School Manager goes to “Giáo viên” page by clicking on “Giáo viên”
tab from Homepage.
2. School Manager clicks on the “Thêm mới” button.
3. System shows a Modal for the School Manager to input necessary
information about the new teacher.
4. The School Manager fills in every required information for the new
teacher.
5. The system validates the School Manager’s inputs to match the
system's requirements.
6. The School Manager clicks on the “Tạo” button to finish the process.
7. The system confirms the School Manager’s choice by a confirmation
box.
8. The School Manager clicks on the “Xác nhận” button to confirm
action.
9. The system updates the new teacher in the list shown by default.

Alternative Flows: 1-AF. School Manager’s inputs do not match system’s requirements
a. The system highlights the under-qualified inputs.
b. Helper texts are shown to help the School Manager correct
his/her inputs.

Exceptions: 1-EF. If the School Manager cancels the process by clicking on the “Hủy”
button, the process will be terminated by the system and School Manager
will be navigated to the default Teacher page.
2-EF. The client’s network may experience some issues that lead to failure
in creating a new teacher, in this case, the system will remain at the
creating screen for School Manager to try again.

Priority: High

Frequency of Use: Occasionally

71
Business Rules: BR-13, BR-21, BR-26, BR-44

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 40 Update Teacher Information

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: The School Manager updates teacher’s information in the system so that
it can be synchronized with the actual status of that teacher.

Trigger: School Manager indicates that he/she wants to change the teacher's
information on the system.

Pre-conditions: PRE-1: User is logged in to the system as School manager (appropriate


authorization).
PRE-2: Teacher information is initiated that is satisfied with the system's
requirements.
PRE-3: User’s device has connected to the Internet.

Post-conditions: POST-1: The system updates teacher’s information in real-time.


POST-2: The system announces successful status to the School Manager
after the update process has completed.

Normal Flow: 1. School Manager goes to “Giáo viên” page by clicking on “Giáo viên”
tab from Homepage.
2. The School Manager clicks on the “Cập nhật” button in the function
column of the row containing information of the teacher that needs
updating.
3. System shows a Modal for School Manager to update editable
information of the teacher.
4. The School Manager fills in every information that needs to be
updated of the selected teacher.
5. The system validates the School Manager’s inputs to match the
system's requirements.
6. The School Manager clicks on the “Cập nhật” button to finish the
process.

72
7. The system confirms the School Manager’s choice by a confirmation
box.
8. The School Manager clicks on the “Xác nhận” button to confirm
action.
9. The system updates the teacher information in the list shown by
default.

Alternative Flows: 1-AF. School Manager’s inputs do not match system’s requirements
a. The system highlights the under-qualified inputs.
b. Helper texts are shown to help the School Manager correct
his/her inputs.

Exceptions: 1-EF. If the School Manager cancels the process by clicking on the “Hủy”
button, the process will be terminated by the system and School Manager
will be navigated to the default Teacher page.
2-EF. The client’s network may experience some issues that lead to failure
in creating a new teacher, in this case, the system will remain at the
creating screen for School Manager to try again.

Priority: High

Frequency of Use: Low

Business Rules: BR-13, BR-21, BR-26

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 41 Inactive Teacher

Created By: AnhLH Date Created: 22/09/2024

73
Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to deactivate a teacher in the system, making
the teacher unavailable for new class assignments or scheduling while
preserving their historical records and associations.

Trigger: The School Manager decides to deactivate a teacher who is no longer


available for scheduling, such as when a teacher leaves the school, goes
on long-term leave, or retires.

Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate


authorization).
PRE-02. The teacher to be deactivated must already exist in the system.

Post-conditions: POST-01. The teacher is marked as inactive and is no longer available for
new class assignments or scheduling

Normal Flow: 1. School Manager navigates to the "Quản lý giáo viên" section.
2. School Manager selects the teacher they wish to deactivate from
the list of existing teachers.
3. System displays the details of the selected teacher, including
their current status (Active).
4. School Manager clicks the "Xóa" button.
5. System prompts the School Manager to confirm the deactivation.
6. School Manager confirms the action by clicking "Xác nhận".
7. System marks the teacher as inactive and updates their status in
the database.
8. System displays a success message confirming that the teacher
has been deactivated.

Alternative Flows: N/A

Exceptions: 1-EF. If there are technical issues: server, networking, the system displays
an alert message.
2-EF. Teacher Not Found:
a. System displays an error message indicating the teacher does not
exist.
b. School Manager is redirected back to the teacher management
page.

Priority: High

74
Frequency of Use: Frequently

Business Rules: BR-13, BR-26, BR-28, BR-45

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 42 Assign Subjects to Teacher

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager add subjects that teachers can teach

Trigger: School Manager needs to assign one or more subjects to a teacher

Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate


authorization).
PRE-02. The subjects to be assigned must exist in the system.
PRE-03. The teacher must be available.

Post-conditions: POST-01. The subjects are successfully assigned to the teacher

Normal Flow: 1. School Manager navigates to the "giáo viên" section.


2. School Manager selects the teacher they wish to assign .
3. System displays the details of the selected teacher.
4. School Manager clicks the "Chuyên môn giảng dạy" tab.
5. School Manager click”Thêm chuyên môn”.
6. School Manager filled out the data and click thêm chuyên môn.
7. System displays a success message.

Alternative Flows: N/A

75
Exceptions: 1-EF. If there are technical issues: server, networking, the system displays
an alert message.
2-EF. Teacher Not Found:
a. System displays an error message indicating the teacher does not
exist.
b. School Manager is redirected back to the teacher management
page.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-13, BR-26

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 43 Add curriculum

Created By: ThangNC Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to create new curriculum in the system.

Trigger: The School Manager wants to add a new curriculum to better


categorise and manage subjects within the school's scheduling system.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The system should have existing subjects that can be associated
with the new group.

Post-conditions: POST-01: The new curriculum is added to the system and curriculum detail
already created.

76
Normal Flow: 1. School Manager navigates to the "Tổng quan" section.
2. School Manager selects the "Khung chương trình" tab.
3. School Manager click “Thêm khung chương trình” button.
4. System displays a form to select subject for curriculum detail.
5. School Manager fills out the form with the required information.
6. School Manager clicks the "Thêm" button.
7. System validates the input.
8. If the input is valid, the system saves the new curriculum in the
database.
9. System displays a success message confirming the curriculum has
been created.

Alternative Flows: a. N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26, BR-44

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 44 Handle Teacher Absences

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to manage teacher absences.

Trigger: A teacher submits an absence request, or the School Manager needs to


handle an unexpected teacher absence.

77
Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate
authorization).

Post-conditions: POST-01. The teacher's absence is recorded in the system


POST-02. Substitute teachers are assigned to cover the absent teacher's
classes if needed.
POST-03. The class schedule is updated to reflect the changes

Normal Flow: 1. School Manager navigates to the "Quản lý giáo viên" section.
2. School Manager selects the "Danh sách xin nghỉ" option.
3. System displays a form to enter the absence details.
4. School Manager clicks the "Đồng ý" button.
5. System checks for any scheduling conflicts and displays the list of
affected classes for the specified absence period.
6. School Manager selects a substitute teacher for each affected class,
using the system’s list of available substitutes.
7. System updates the schedule with the new assignments and notifies
the substitute teachers of their new assignments.
8. System displays a success message confirming that the absence has
been recorded and the schedule updated.

Alternative Flows: 1-AF. No substitute teacher is available for a particular class:


a. System displays a message indicating the lack of available
substitutes.
2-AF. Cancel Absence Request:
a. School Manager or Teacher Department Head cancels the
recorded absence.
b. System reverts the schedule to the original state, removing any
substitute assignments.
c. System notifies the affected teachers and students about the
cancellation.

Exceptions: 1-EF. If there are technical issues: server, networking, the system displays
an alert message.
2-EF. selected teacher has been deleted or is not found in the system:
a. System displays an error message indicating the teacher does not
exist.
b. School Manager is redirected back to the absence management
page.

Priority: High

Frequency of Use: Frequently

78
Business Rules: BR-13, BR-26, BR-36

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 45 Edit Constraint data

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: School Managers adjust the values of the constraints so that the system
can generate schedules that are best applicable to her/his school.

Trigger: The School Manager indicates that she/he needs to adjust the constraint
data.

Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate


authorization).
PRE-02. User’s device has connected to the Internet.
PRE-03. Data is initiated sufficiently and meets system’s requirements.

Post-conditions: POST-01. The updated constraint data is saved in the system

Normal Flow: 1. School Manager goes to “Thời khóa biểu” page by clicking on “Thời
khóa biểu” tab from Homepage.
2. School Manager clicks on the “Ràng buộc khóa biểu” button.
3. System lists out every adjustable constraint for the timetable.
4. School Manager adjusts one constraint by one until every necessary
constraint is adjusted.
5. School Manager clicked on “Lưu thay đổi” button to save changes.
6. The system confirms School Manager’s choice by a confirmation box.
7. School Manager clicks on the “Xác nhận” button to confirm action.
8. The system updates the constraints in the database and the UI.

79
Alternative Flows: N/A

Exceptions: 1-EF. If the School Manager cancels the process by clicking on the “Hủy”
button or reload page button in the browser, the process will be
terminated by the system and School Manager will be navigated to the
default Teacher page.
2-EF. The client’s network may experience some issues that lead to failure
in creating a new teacher, in this case, the system will remain at the
creating screen for School Manager to try again.

Priority: High

Frequency of Use: High

Business Rules: BR-13, BR-21, BR-26

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 46 Generate Timetable

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to generate a new timetable for the school
based on predefined constraints, teacher availability, class schedules, and
room capacities.

Trigger: The School Manager decides to generate a new timetable, typically at the
beginning of a new academic term or when major scheduling changes are
needed.

Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate


authorization).
PRE-02. All necessary data must be available in the system, including
teacher, student class, room, subject,...

80
Post-conditions: POST-01. A new timetable is generated and saved in the system, ready for
review and adjustments if needed.

Normal Flow: 1. School Manager navigates to the "Quản lý thời khóa biểu" section.
2. School Manager selects the "Tạo thời khóa biểu" option.
3. System displays an editable form including, timetable name,
Academic Term, timetable type,..
4. School Manager click create .
5. System display config page for teacher, student class and subject.
6. School Manager reviews and confirms the configuration settings.
7. School Manager clicks the "Khởi tạo" button.
8. System initiates the timetable generation process, using the provided
data and constraints to create a conflict-free schedule.
9. System displays a progress indicator and, once the process is
complete, a summary of the generated timetable.
10. School Manager reviews the generated timetable, using the following
options:
a. View Timetable: View the full timetable in a graphical or tabular
format, showing periods, classes, teachers, and rooms.
b. Resolve Conflicts: View and manually resolve any conflicts or
unassigned periods identified by the system.
c. Adjust Timetable: Make manual adjustments to specific periods,
class assignments, or room assignments if needed.
11. School Manager saves the final timetable and, if no further
adjustments are needed, confirms the timetable for publication.
12. System displays a success message confirming that the timetable has
been created and saved.

Alternative Flows: 1-AF. Incomplete Data:


a. System displays an error message indicating the missing data.
2-AF: Conflict Resolution Required:
a. System displays a conflict summary with details of the issues (e.g.,
double-booked rooms, unavailable teachers).
b. School Manager can either:
● Manually resolve conflicts using the conflict resolution
tool.
● Adjust constraints and regenerate the timetable.
3-AF: Cancel Timetable Generation:
a. School Manager cancels the process at any time before confirming
the final timetable.
b. System discards the generated timetable and returns to the
timetable management page without saving any changes.

81
Exceptions: 1-EF. If there are technical issues: server, networking, the system displays
an alert message.
2-EF: If a system error occurs while generating the timetable:
a. System displays an error message and logs the issue.
b. School Manager can retry the action or contact support if the issue
persists

Priority: High

Frequency of Use: Frequently

Business Rules: BR-13, BR-21, BR-47, BR-48, BR-49, BR-51

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 47 View constraint

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows authorised users to view a list of all defined constraints within the
scheduling system. Constraints are rules or conditions that restrict or
define how schedules are generated.

Trigger: The user wants to review the list of all constraints defined in the system
to verify, analyse, or update them as needed.

Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate


authorization).
PRE-02. The system must have existing constraints defined in the
database.

Post-conditions: POST-01. The system displays the list of all defined constraints with
relevant details.

82
Normal Flow: 1. User navigates to the "Quản lý ràng buộc" section.
2. System displays a list of all defined constraints, including the
following details for each constraint.

Alternative Flows: 1-AF. No Constraints Defined:


a. System displays a message indicating that no constraints are
available.
b. User can navigate to the "Define Constraint" section to create new
constraints.

Exceptions: 1-EF. If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

ID and Name: UC - 48 View timetable

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: “View Full Schedule” use case illustrates the action of the School Manager
checking on the school’s overall schedule. This includes schedules of every
teacher in the school.

Trigger: School Manager indicates that he/she needs to check on the information
of the school’s schedule.

83
Pre-conditions: PRE-01. User is logged in to the system as School Manager (appropriate
authorization).
PRE-02. There should be at least one existing/published timetable
available.
PRE-03. User’s device has connected to the Internet.

Post-conditions: POST-01. The system sufficiently displays the whole timetable of the
school with real-time data.

Normal Flow: 1. School Manager redirects to the Timetable page by clicking on the
“Thời khóa biểu” tab from the Homepage.
2. School Manager clicks on the “Giáo viên” button to show every
options available.
3. The system shows a list of available teachers within the department
including the “Tất cả giáo viên” as the first option.
4. School Manager selects the “Tất cả giáo viên” option from the given
list.
5. The system shows a timetable displaying every slot of teachers within
the department.

Alternative Flows: 1-AF. When new timetable is published, there will be a notification with a
link to new timetable announced to every teacher
a. School Manager opens the notification centre by opening the
Notification at Homepage.
b. System shows every notification sorted ascendingly by date in a
drop down list below the Notification icon.
c. School Manager finds the notification related to the latest release
of new timetable.
d. School Manager clicks on the area of the new notification.
e. The system redirects Teacher to the Timetable in Timetable page.
f. Return to STEP 2 (NF) in normal flow.

Exceptions: 1-EF. The system may fail to retrieve timetable data from Server due to
network issues, Server errors, or some technical problems. In this case, the
system will announce the issue to School Manager and require her/him to
reload the page or try another network connection.

Priority: High

Frequency of Use: High

Business Rules: BR-10, BR-13, BR-18

84
Other Information: N/A

Assumptions: N/A

ID and Name: UC - 49 Publish Schedule

Created By: AnhLH Date Created: 22/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: “Publish schedule” use case describes the case when School Manager
wants to publish a successfully generated schedule to apply to curriculum
of the school

Trigger: School Manager indicates that he/she wants to publish a complete


schedule to the whole school.

Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate


authorization).
PRE-02. User’s device has connected to the Internet.
PRE-03. School’s schedule successfully generated with no remaining
conflicts and spare slots.

Post-conditions: POST-01. The system will notify about the new applied schedule to every
teacher within the school.
POST-02. The system will update the database's status for new changes.

Normal Flow: 1. School Manager goes to the timetable page by clicking on the “Thời
khóa biểu” tab from the Homepage.
2. School Manager clicks on the “Danh sách Thời khóa biểu” button.
3. The system shows a list of generated schedules for his/her school.
4. School Manager selects the desired schedule by clicking on the area
wrapping the schedule’s information.
5. School Manager clicks on the “Xuất bản Thời khóa biểu” button to
publish the timetable.
6. The system confirm School Manager’s action by an Modal box.
7. The School Manager clicks on the “Xác nhận” button to complete the
action.

85
Alternative Flows: 1-AF. The School Manager publish a recently created timetable
a. School Manager verifies the recently generated timetable (See UC
- 45 Create Timetable)
b. Return to STEP 5 (NF) in normal flow.

Exceptions: 1-EF. If the School Manager cancels the process by clicking on the “Hủy”
button, the process will be terminated by the system and School Manager
will be navigated to the default timetable page.
2-EF. The client’s network may experience some issues that lead to failure
in creating a new teacher, in this case, the system will remain at the
default screen for School Manager to try again.

Priority: High

Frequency of Use: Low

Business Rules: BR-13, BR-50

Other Information: N/A

Assumptions: N/A

86
ID and Name: UC - 50 Update Timetable

Created By: LongNT Date Created: 20/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to modify an existing timetable based on new
information, constraints, or scheduling changes.

Trigger: The School Manager decides to update an existing timetable due to


changes in constraints, availability, or school requirements.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: A timetable must already exist and be available for editing.

Post-conditions: POST-01: The updated timetable is saved in the system.


POST-02: A notification is sent to the relevant teachers and students about
the updated timetable.

Normal Flow: 1. School Manager navigates to the "Thời khóa biểu" section.
2. School Manager selects the existing timetable to be updated.
3. School Manager makes the necessary changes.
4. School Manager reviews the changes and clicks "Lưu thay đổi" to
update the timetable.
5. The system validates the changes against existing constraints (e.g.,
no teacher is double-booked, rooms are not over-allocated).
6. The system saves the updated timetable.
7. A success message is displayed to the School Manager, and a
notification is sent to affected users (teachers).

Alternative Flows: 1-AF: Invalid Changes:


a. System displays an error message specifying the constraint
violation.
b. School Manager must correct the issue before saving.

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

87
Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-48, BR-49, BR-51

Other Information: N/A

Assumptions: N/A

88
ID and Name: UC - 51 Manual adjust period

Created By: LongNT Date Created: 20/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to manually adjust individual periods within
the timetable.

Trigger: School Manager identifies a need to adjust a scheduled period manually,

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The timetable must already exist and contain periods that can be
adjusted.

Post-conditions: POST-01: The adjusted period is saved in the system.

Normal Flow: 1. School Manager navigates to the "Thời khóa biểu" section.
2. School Manager creates new or selects the existing timetable to
be updated.
3. School Manager makes the necessary changes.
4. System displays a list of all identified conflicts, including details.
5. School Manager views detailed information about the conflict,
including potential resolutions suggested by the system.
6. School Manager chooses a resolution from the list or manually
adjusts the timetable to resolve the conflict.
7. System removes the conflict from the list of unresolved conflicts.
8. School Manager repeats steps 5-7 until all conflicts are resolved.
9. System displays a success message and provides an option to
review the updated timetable.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-51

89
Other Information: N/A

Assumptions: N/A

90
ID and Name: UC - 52 Export Schedule

Created By: LongNT Date Created: 20/09/2024

Primary Actor: School Manager Secondary Actor: Teacher Department


Head, Teacher

Description: Allows authorised users to export the school’s timetable, class schedules,
or individual teacher schedules into various formats such as CSV or Excel.

Trigger: The user decides to export a schedule for distribution, review, or record-
keeping purposes.

Pre-conditions: PRE-01: The user must be logged into the system.


PRE-02: The schedule must be generated and available for export.

Post-conditions: POST-01: The selected schedule is exported in the chosen format.


POST-02: The user is notified of the successful export, and the file is
available for download.

Normal Flow: 1. The user navigates to the "Thời khóa biểu" section.
2. The user selects the existing timetable and clicks the "Xuất File"
option.
3. User chooses the scope of the export:
○ Whole school timetable.
○ Specific class schedule.
○ Specific teacher schedule.
4. User selects the desired format (CSV, Excel).
5. User clicks the "Xuất File" button.
6. System processes the request and generates the export file.
7. System provides a download link for the exported file.

Alternative Flows: N/A..*

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-18, BR-39, BR-40

Other Information: N/A

91
Assumptions: N/A

92
ID and Name: UC - 53 Import Room File

Created By: LongNT Date Created: 20/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to import room data into the system using a
file (CSV/Excel).

Trigger: The School Manager wants to add or update room information in bulk,
usually at the beginning of a school term or when new rooms are added to
the school.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02:The schedule must be generated and available for export.

Post-conditions: POST-01: All valid room data from the file is imported into the system.

Normal Flow: 1. School Manager navigates to the "Quản lý phòng học" section.
2. School Manager selects the "Nhập file" option.
3. School Manager downloads a template to ensure the correct
format.
4. School Manager uploads the file containing the room data.
5. System validates the file for format and data correctness
6. If the file is valid, the system processes the data and imports the
rooms into the system.
7. System displays a summary of the import process, including the
number of successfully imported rooms and any errors.
8. System updates the room list, and the new rooms are available in
the system.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

2-EF: If the uploaded file is not in the expected format (e.g., not CSV or
Excel):

a. System displays an error message indicating the incorrect


format.
b. School Manager is prompted to upload a file in the correct
format.

93
Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-42, BR-43, BR-44

Other Information: N/A

Assumptions: N/A

94
ID and Name: UC - 54 Add New Room

Created By: LongNT Date Created: 20/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to add a new room.

Trigger: The School Manager decides to add a new room to the system, either
because a new room has been constructed or an existing room was not
previously entered into the system.

Pre-conditions: PRE-01: The School Manager must be logged into the system.

Post-conditions: POST-01: The new room is added to the system and is available for
scheduling.

Normal Flow: 1. School Manager navigates to the "Phòng học" section.


2. School Manager selects the "Thêm Phòng Học" option.
3. System displays a form to enter room details.
4. School Manager fills out the form with the required and optional
information.
5. School Manager clicks the "Lưu" button.
6. System validates the input.
7. If the input is valid, the system saves the new room information.
8. System displays a success message confirming the new room has
been added

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26, BR-44

Other Information: N/A

95
Assumptions: N/A

96
ID and Name: UC - 55 Update Room Information

Created By: LongNT Date Created: 20/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to modify existing room information.

Trigger: The School Manager decides to update the details of an existing room.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The room to be updated must already exist in the system.

Post-conditions: POST-01: The updated room information is saved in the system.

Normal Flow: 1. School Manager navigates to the "Phòng học" section.


2. School Manager selects the room they wish to update from the list
of existing rooms.
3. System displays the current details of the room in an editable form
4. School Manager makes the necessary changes to the room details.
5. School Manager clicks the "Lưu" button.
6. System validates the input.
7. If the input is valid, the system updates the room information in
the database.
8. System displays a success message confirming the room
information has been updated.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
2-EF: If the selected room has been deleted or is not found in the system:
a. System displays an error message indicating the room
does not exist.
b. School Manager is redirected back to the room list.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26

97
Other Information: N/A

Assumptions: N/A

98
ID and Name: UC - 56 Delete Room

Created By: LongNT Date Created: 20/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to deactivate a room from the system.

Trigger: The School Manager decides to remove a room from the system due to
changes in infrastructure or other administrative reasons.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The room must already exist in the system.

Post-conditions: POST-01: The room is marked as inactive and no longer available for
scheduling, but historical data remains intact.

Normal Flow: 1. School Manager navigates to the "Quản lý phòng học" section.
2. School Manager selects the room they wish to delete from the list
of existing rooms.
3. System displays the room details along with an option for deletion.
4. School Manager clicks the "Xóa Phòng" button.
5. System prompts the School Manager to confirm the chosen action.
6. School Manager confirms the action.
7. System displays a success message confirming the action.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues with: server, or networking, the system
displays an alert message.
1-EF: If the selected room has been deleted or is not found in the system:
a. System displays an error message indicating the room does not
exist.
b. School Manager is redirected back to the room list.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-26, BR-28

Other Information: N/A

99
Assumptions: N/A

100
ID and Name: UC - 57 View room details

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to view detailed information about a specific
room.

Trigger: The School Manager decides to view detailed information about a specific
room for purposes such as scheduling, infrastructure management, or
general inquiry.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The room must already exist in the system.

Post-conditions: POST-01: The system displays the detailed information about the selected
room.

Normal Flow: 1. School Manager navigates to the "Quản lý phòng học" section.
2. School Manager selects a room from the list of available rooms.
3. System displays the detailed information for the selected room.

Alternative Flows: 1-AF: Filtered View:


a. User applies relevant filters in the room list (e.g., building, room
type).
b. System displays a filtered list of rooms matching the criteria.
c. User selects a room from the filtered list and follows the normal
flow from step 3

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
1-EF: If the selected room has been deleted or is not found in the system:
a. System displays an error message indicating the room does not
exist.
b. School Manager is redirected back to the room list.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

101
Other Information: N/A

Assumptions: N/A

102
ID and Name: UC - 58 Update Curriculum

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to modify the details of an existing curriculum.

Trigger: The School Manager needs to update a curriculum e and manage subjects

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The system should have existing subjects that can be associated
with the new group.

Post-conditions: POST-01: The updated curriculum are saved in the system

Normal Flow: 1. School Manager navigates to the “Khung chương trình" section.
2. The system displays a list of existing curricula.
3. The user selects a curriculum to update..
4. The system displays the details of the selected curriculum in an
editable form.
5. School Manager clicks the "Lưu" button.
6. The user submits the changes
7. The user submits the changes.
8. System displays a success message

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26, BR-44

Other Information: N/A

Assumptions: N/A

103
ID and Name: UC - 59 Delete Curriculum

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to remove an existing curriculum from the
system.

Trigger: The School Manager decides to update a subject group due to changes in
the curriculum, departmental structure, or to correct information.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The curriculum to be deleted must exist in the system.

Post-conditions: POST-01: The curriculum is removed from the system.

Normal Flow: 1. School Manager navigates to the “Khung chương trình" section.
2. The system displays a list of existing curricula.
3. The user selects the curriculum to delete
4. The system displays a confirmation dialog to ensure the user
intends to delete the curriculum.
5. The user confirms the deletion.
6. The system notifies the user that the curriculum has been
successfully deleted.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-26, BR-28

Other Information: N/A

Assumptions: N/A

104
ID and Name: UC - 60 View Curriculum

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to view details of the existing curriculums in
the system.

Trigger: The School Manager decides to view curriculum.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The curriculum to be viewed must exist in the system.

Post-conditions: POST-01: The system displays the details of the selected curriculum to the
user.

Normal Flow: 1. School Manager navigates to the “Khung chương trình" section.
2. The system displays a list of existing curricula.
3. The user selects the curriculum to view
4. The system retrieves and displays the details of the selected
curriculum

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

105
ID and Name: UC - 61 Add curriculum detail

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to add detailed information to an existing


curriculum

Trigger: The user wants to decides to add subjects period to curriculum

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: curriculum must exist in the system.

Post-conditions: POST-01: The new curriculum details are saved in the system

Normal Flow: 1. School Manager navigates to the "Khung chương trình" section.
2. School Manager click add button
3. The system displays a form to input new curriculum details
4. The user fills out the form and submits it.
5. The system validates the input
6. The system notifies the user that the curriculum detail has been
successfully added

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

106
ID and Name: UC - 62 Update Curriculum detail

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to modify the details of an existing curriculum

Trigger: The user wants to review detailed information about a specific subject
group for purposes such as curriculum planning, schedule management, or
general inquiry.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: Curriculum must exist in the system.

Post-conditions: POST-01: The updated curriculum details are saved in the system

Normal Flow: 1. School Manager navigates to the "Khung chương trình" section.
2. The system displays a list of existing curricula.
3. The user selects a curriculum and navigates to its details.
4. The system displays the details of the selected curriculum
5. The user selects the specific detail to update (e.g., a subject).
6. The system displays an editable form for the selected detail.
7. The user modifies the desired fields
8. The user submits the changes.
9. The system validates the updated information
10. The system notifies the user that the curriculum detail has been
successfully updated

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

107
Assumptions: N/A

108
ID and Name: UC - 63 View Curriculum detail

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to view the detailed components of a specific
curriculum

Trigger: The School Manager wants to add subjects to a newly created subject
group or update the subjects assigned to an existing group.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: Curriculum must exist in the system.

Post-conditions: POST-01: The system displays the requested curriculum details to the user

Normal Flow: 1. School Manager navigates to the "Khung chương trình" section.
2. The system displays a list of existing curricula.
3. The user selects a specific curriculum to view.
4. The system retrieves and displays the detailed information of the
selected curriculum
5. The user reviews the displayed information.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13,

Other Information: N/A

Assumptions: N/A

109
ID and Name: UC - 64 Import Classes File

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to bulk import class data into the system using
a file (Excel format).

Trigger: The School Manager needs to add or update class information in bulk,
such as at the start of a school term, or when a significant number of new
classes are introduced.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The file containing the class data must be prepared in the correct
format

Post-conditions: POST-01: All valid class data from the file is imported into the system.

Normal Flow: 1. School Manager navigates to the "Quản lý lớp" section.


2. School Manager selects the "Nhập File" option.
3. School Manager downloads a template file to ensure the correct
format.
4. School Manager uploads the prepared file containing the class
data.
5. System validates the file for format and data correctness
6. If the file is valid, the system processes the data and imports the
classes into the system.
7. System displays a summary of the import process, including the
number of successfully imported classes and any errors.

Alternative Flows: 1-AF: File Contains Errors


a. System displays a message indicating the errors found.
b. School Manager corrects the file and re-uploads it following the
normal flow from step 4.

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
2-EF: If the uploaded file is not in the expected format, system displays an
error message indicating the incorrect format.

Priority: Medium

Frequency of Use: Occasionally

110
Business Rules: BR-13, BR-21, BR-42, BR-43, BR-44

Other Information: N/A

Assumptions: N/A

111
ID and Name: UC - 65 Add New Class

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to manually add a new class to the system.

Trigger: The School Manager decides to add a new class to the system, typically
when a new class is formed or an existing one is split or modified.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The file containing the class data must be prepared in the correct
format

Post-conditions: POST-01: The new class is added to the system and is available for
scheduling and other school activities.

Normal Flow: 1. School Manager navigates to the "Quản lý lớp" section.


2. School Manager selects the "Tạo lớp mới" option.
3. System displays a form to enter the class details
4. School Manager fills out the form with the required and optional
information.
5. School Manager clicks the "Lưu" button.
6. System validates the input
7. If the input is valid, the system saves the new class information in
the database.
8. System displays a success message confirming the new class has
been added.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26, BR-44

Other Information: N/A

112
Assumptions: N/A

ID and Name: UC - 66 View Class Reports

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows authorised users to view aggregated data for all classes.

Trigger: The user wants to view an overview of class data for the entire school.

Pre-conditions: PRE-01: The School Manager must be logged into the system.

Post-conditions: POST-01: The aggregated class data is generated and shown to the user

Normal Flow: 1. User navigates to the "Dashboard" section.


2. User selects the "Thống kê lớp học" option.
3. System displays an interactive dashboard.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

113
ID and Name: UC - 67 Update Class Information

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to modify the details of an existing class.

Trigger: The School Manager decides to update the details of a class due to
changes such as a new teacher assignment, a room change, or correction
of data errors.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The class to be updated must already exist in the system.

Post-conditions: POST-01: The updated class information is saved in the system.

Normal Flow: 1. School Manager navigates to the "Quản lý lớp" section.


2. School Manager selects the class they wish to update from the list
of existing classes.
3. System displays the current details of the class in an editable form
4. School Manager makes the necessary changes to the class details,
such as updating the teacher assignment, changing the room, or
modifying the class size.
5. School Manager clicks the "Lưu" button.
6. System validates the input
7. If the input is valid, the system saves the updated class
information in the database.
8. System displays a success message confirming the class
information has been updated.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26

114
Other Information: N/A

Assumptions: N/A

115
ID and Name: UC - 68 Inactive Class

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to deactivate a class, marking it as inactive and
making it unavailable for new schedules while preserving its historical data
and associations.

Trigger: The School Manager decides to deactivate a class that is no longer in use
or has been discontinued, typically at the end of an academic term or
when reorganising class structures.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The class to be deactivated must exist in the system.

Post-conditions: POST-01: The class is marked as inactive and is no longer available for new
schedules or assignments.

Normal Flow: 1. School Manager navigates to the "Quản lý lớp" section.


2. School Manager selects the class they wish to deactivate from the
list of existing classes.
3. System displays the details of the selected class, including its
current status (Active).
4. School Manager clicks the "Xác nhận" button.
5. System prompts the School Manager to confirm the deactivation
6. School Manager confirms the action by clicking "Yes, Deactivate."
7. System marks the class as inactive and updates its status in the
database.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
2-EF: If the selected class has been deleted or is not found in the system:
a. System displays an error message indicating the class does not
exist.
b. School Manager is redirected back to the class management page.

Priority: Medium

Frequency of Use: Occasionally

116
Business Rules: BR-13, BR-26, BR-28, BR-54

Other Information: N/A

Assumptions: N/A

117
ID and Name: UC - 69 Assign Teachers to Class

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to assign teachers to specific classes for the
subjects they will teach.

Trigger: The School Manager needs to assign teachers to a class, either when
setting up a new class or when making changes to the teacher assignments
for an existing class due to scheduling adjustments or staffing changes.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The class to which the teachers will be assigned must exist in the
system
PRE-03: The teachers to be assigned must already be in the system and
available for assignment.

Post-conditions: POST-01: The selected teachers are assigned to the specified class for the
corresponding subjects.

Normal Flow: 1. School Manager navigates to the "Quản lý lớp" section.


2. School Manager selects the class to which they want to assign
teachers from the list of existing classes.
3. System displays the current details of the selected class, including
any existing teacher assignments.
4. School Manager clicks the "Assign Teachers" button.
5. System displays a list of available subjects for the class and a list of
available teachers for each subject, with search and filter options.
6. School Manager selects a teacher for each subject that needs to
be assigned
7. School Manager reviews the teacher assignments and clicks the
"Save" button.
8. System check conflict .
9. If there is no conflict, the system saves the teacher assignments in
the database.
10. System displays a success message confirming the teacher
assignments have been updated.

Alternative Flows: N/A

118
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
2-EF: If the School Manager tries to assign a teacher who is not available,
System displays a warning message indicating the conflict and suggesting
alternative teachers.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-26, BR-55, BR-56, BR-57

Other Information: N/A

Assumptions:

119
ID and Name: UC - 70 View Class Timetable

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: Teacher Department,


Head, Teacher

Description: Allows authorised users to view the timetable for a specific class.

Trigger: The user wants to view the detailed schedule of a specific class.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The class for which the timetable is to be viewed must exist in the
system and have a generated timetable.

Post-conditions: POST-01: The system displays the timetable for the selected class.

Normal Flow: 1. User navigates to the "Quản lý thời khóa biểu" section.
2. System displays a list of available classes for timetable viewing.
3. User selects the desired class for which they want to view the
timetable.
4. System displays the timetable for the selected class

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
2-EF: If the class does not have a generated timetable, System displays a
message indicating that no timetable is available for the selected class.

Priority: High

Frequency of Use: Frequently

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

120
ID and Name: UC - 71 Create Combination Class

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to create a combination class by grouping


multiple classes for a shared subject, teacher, session

Trigger: School Manager needs to group multiple classes for a specific subject,
typically at the beginning of a new academic term

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: Individual classes, subjects, teachers, and rooms must already
exist in the system.

Post-conditions: POST-01: The combination class is successfully created.

Normal Flow: 1. School Manager navigates to the "Lớp ghép" section.


2. The School Manager clicks the add button.
3. System displays input form.
4. School Manager fill in data and click “Thêm lớp ghép”.
5. System displays a success message.

Alternative Flows: 1-AF: Invalid Input


a. The system highlights the errors and provides feedback for
correction.
b. The user corrects the input and resubmits the form.

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26, BR-44, BR-58, BR-67

Other Information: N/A

Assumptions: The system already supports managing individual classes, teachers, and
rooms.

121
ID and Name: UC - 72 Update Combination Class

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: Allows the School Manager to modify the details of an existing


combination class.

Trigger: The School Manager needs to update the details of a timeslot due to
changes in the school schedule, such as modifying class durations,
adjusting break times, or correcting errors in the current configuration.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The combination class to be updated must already exist in the
system

Post-conditions: POST-01: The updated combination class details are saved in the system.

Normal Flow: 1. School Manager navigates to the "Lớp ghép" section.


2. The School Manager select a combination class and click “Chỉnh
sửa thông tin” button.
3. System displays input form.
4. School Manager fills in data and clicks “Cập nhật”.
5. System displays a success message.

Alternative Flows: 1-AF: Invalid Input


a. The system highlights the errors and provides feedback for
correction.
b. The user corrects the input and resubmits the form.

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: High

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26,BR-58, BR-67

Other Information: N/A

Assumptions: N/A

122
ID and Name: UC - 73 Delete Combination Class

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: Teacher Department,


Head, Teacher

Description: Allows the School Manager to remove an existing combination class from
the system

Trigger: School Manager needs to remove a combination class.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: The combination class to be deleted must exist in the system.

Post-conditions: POST-01: The combination class is removed from the system

Normal Flow: 1. School Manager navigates to the "Lớp ghép" section.


2. The School Manager select a combination class and click “Xóa lớp
ghép” button.
3. System displays confirm popup.
4. School Manager clicks the “Xóa” button.
5. System displays a success message.

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-13, BR-21, BR-26

Other Information: N/A

Assumptions: N/A

123
ID and Name: UC - 74 View Combination Class

Created By: LongNT Date Created: 21/09/2024

Primary Actor: School Manager Secondary Actor: Teacher Department,


Head, Teacher

Description: Allows the School Manager to view the details of existing combination
classes in the system

Trigger: The user wants to view the details of a class combination in the system.

Pre-conditions: PRE-01: The School Manager must be logged into the system.
PRE-02: Combination classes must exist in the system.

Post-conditions: POST-01: The system displays the details of the selected combination class

Normal Flow: 1. School Manager navigates to the "Lớp ghép" section.


2. The School Manager select a combination class
3. System displays the details of selected combination class

Alternative Flows: N/A

Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.

Priority: Medium

Frequency of Use: Occasionally

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

124
ID and Name: UC - 75 Add new building

Created By: MaiNHT Date Created: 20/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: A school manager has access to the Schedulify website. This feature allows
the manager to add new buildings to the school’s infrastructure.

Trigger: A school manager indicated that he wants to add a new building to the high
school

Pre-conditions: PRE-01. A school manager must be logged into the system.

Post-conditions: POST-01.
● Success: A new building is successfully added to the school's
infrastructure and is visible in the system.
● Fail: Schedulify shows an error message.

Normal Flow: 1. The school manager logs into the system.


2. The school manager clicks the “Tạo mới tòa” on the screen.
3. The system displays a form to input the building details (e.g: building
name, location,..)
4. The school manager fills in the required details and submits the
form.
5. The system validates the inputs.
6. If validation is successful, the new building is added to the system's
database.
7. The system notified the successful addition to the school manager.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Low

Business Rules: BR-13, BR-21, BR-26, BR-44

Other Information: N/A

125
Assumptions: N/A

126
ID and Name: UC - 76 Update Building Information

Created By: MaiNHT Date Created: 20/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows a school Manager to update the information of an


existing building in the school’s infrastructure, such as building name, code,
number of floors, etc.

Trigger: The school manager begins the update process by selecting an existing
building and choosing to modify its details.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. The building to be updated is already in the system.

Post-conditions: POST-01. The building information is updated successfully.

Normal Flow: 1. The school manager clicks the “Quản lý tòa” on the screen.
2. The school manager selects a building from the list of existing
buildings.
3. The system displays the building’s current information in an editable
form.
4. The school manager edits the desired building information.
5. The school manager clicks the "Lưu" button.
6. The system validates the new data.
7. If the data is valid, the system updates the building information in
the database.
8. The system confirms the update by displaying a "Thông tin tòa đã
cập nhật thành công" message.
9. The updated building information is displayed in the list of buildings.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Low

127
Business Rules: BR-13, BR-21, BR-26

Other Information: N/A

Assumptions: N/A

128
ID and Name: UC - 77 Inactive Building

Created By: MaiNHT Date Created: 20/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows a school manager to deactivate a building, making it no


longer available for new activities, classes, or events to be scheduled.

Trigger: The school manager selects a building and initiates the deactivation process.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. The building exists in the system and is currently active.

Post-conditions: POST-01. The building is deactivated and no longer available for scheduling.
POST-02. The building remains in the system but is flagged as inactive.

Normal Flow: 1. The school manager clicks the “Quản lý tòa” on the screen.
2. The school manager selects an active building from the list of
existing buildings.
3. The system displays the building’s current details, along with an
option to deactivate the building.
4. The school manager clicks the "Vô hiệu hóa" button.
5. The system opens a dialog “Bạn có chắc muốn vô hiệu hóa?” to the
school manager to confirm the deactivation.
6. The school manager taps on “Đồng ý” to confirms the action.
7. The system updates the building status to "Inactive" in the
database.
8. The system displays a confirmation message: "Tòa nhà đã bị vô hiệu
hóa thành công.".

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog. The
system closes the dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Low

Business Rules: BR-13, BR-28, BR-59.

129
Other Information: N/A

Assumptions: N/A

130
ID and Name: UC - 78 View Building Details

Created By: MaiNHT Date Created: 20/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows a school manager to view detailed information about a
specific building within any information.

Trigger: The school manager selects a building from the list to view its details.

Pre-conditions: PRE-01. The School Manager is logged into the system.


PRE-02. The building exists in the system.

Post-conditions: POST-01. The building details are displayed to the school manager.

Normal Flow: 1. The school manager clicks the “Quản lý tòa” on the screen.
2. The system displays a list of existing buildings.
3. The School Manager selects a specific building from the list.
4. The system retrieves and displays “Chi tiết tòa” about the selected
building (e.g.: name, code, status,..)

Alternative Flows: N/A

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

131
ID and Name: UC - 79 View Building List

Created By: MaiNHT Date Created: 20/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows a school manager to view a list of all the buildings within
the school’s infrastructure.

Trigger: The school manager navigates to the infrastructure management section to


view the list of buildings.

Pre-conditions: PRE-01. The School Manager is logged into the system.


PRE-02. Building already exists in the system.

Post-conditions: The system displays the list of buildings, including basic details

Normal Flow: 1. The school manager navigates to the "Quản lý tòa" section.
2. The system retrieves the list of all buildings in the system from the
database.
3. The school manager reviews the list and can select any building to
view more detailed information.

Alternative Flows: 1-AF. The system displays a message: "Không có tòa nào."
2-AF. The school manager selects filter options.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

Business Rules: BR-10, BR-13, BR-18, BR-30

Other Information: N/A

Assumptions: N/A

132
ID and Name: UC - 80 Import Building File

Created By: MaiNHT Date Created: 20/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows a school manager to upload and import a file containing
building information

Trigger: The school manager import process by selecting a file to upload.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. The file to be imported is in the CSV format.

Post-conditions: POST-01. The system imports the data from the files of the buildings.
POST-02. The system displays a message to the school manager

Normal Flow: 1. The school manager navigates to the "Quản lý tòa" section.
2. The school manager clicks the "Nhập tệp" button.
3. The school manager chooses the file to upload from the system.
4. The system validates file format.
5. The system processes the data and imports the buildings into the
system.
6. The imported buildings are displayed in the building list.
7. The system pops-up a message “Tải lên tệp thành công!”

Alternative Flows: 1-AF. The school manager uploads a file in an unsupported format.
2-AF. A school manager clicks the “Hủy” button on the confirm dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”
2-EF. Display an error message “Unauthorized access”.

Priority: Medium

Frequency of Use: Low

Business Rules: BR-13, BR-21, BR-42, BR-43, BR-44

Other Information: N/A

133
Assumptions: N/A

134
ID and Name: UC - 81 Add new class group

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School manager Secondary Actor: N/A

Description: This feature allows a school manager to add a new class group into the
school’s system.

Trigger: The school manager begins the process by selecting the option to add a new
class group.

Pre-conditions: PRE-1. The school manager is logged into the system.

Post-conditions: POST-1. The new class group is successfully added to the system and appears
in the list of existing class groups.
POST-2. The class group data is stored in the database.

Normal Flow: 1. The school manager navigates to the "Class Management" section.
2. The school manager clicks the "Add New Class Group" button.
3. The system displays a form for adding the new class group.
4. The school manager fills the required information.
5. The school manager clicks “Lưu” button.
6. The system validates input data
7. If the data is valid, the system saves the new class group to the
database.
8. The system displays a confirmation message: "Class group added
successfully."
9. The new class group is now visible in the list of class groups.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.
2-AF. The school manager fills incorrect data.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

Business Rules: BR-13, BR-21, BR-26, BR-44

135
Other Information: N/A

Assumptions: N/A

136
ID and Name: UC-82 Update Class Group Information

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows a school manager to update the details of an existing
class group in the system

Trigger: The school manager initiates the update process by selecting an existing
class group to modify.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. The class group to be updated exists in the system.

Post-conditions: POST-01. The class group information is successfully updated in the system.
POST-02. The updated information is reflected in the database and the class
group list.

Normal Flow: 1. The school manager navigates to the "Class Management" section.
2. The system displays a list of existing class groups.
3. The school anamger selects a specific class group to update.
4. The system displays the current details of the selected class group
in an editable form.
5. The school manager modifies the necessary fields (e.g., class group
name, year level, assigned teachers, or students).
6. The school manager clicks the "Save" button to submit the changes.
7. The system validates the updated information.
8. If the data is valid, the system updates the class group in the
database.
9. The system displays a confirmation message: "Class group
information updated successfully."
10. The updated class group information is displayed in the class group
list.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.
2-AF. The school manager fills incorrect data

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

137
Frequency of Use: Low

Business Rules: BR-13, BR-21, BR-26

Other Information: N/A

Assumptions: N/A

138
ID and Name: UC - 83 Assign Class to Class Group

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to assign classes (e.g., subjects or
courses) to a specific class group.

Trigger: The school manager selects a class group and initiates the process to assign
classes to that group.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. The class group to which the classes will be assigned already exists
in the system.
PRE-03. A list of available classes (subjects or courses) and teachers exists in
the system.

Post-conditions: POST-01. The selected classes are successfully assigned to the class group.
POST-02. The class group is now associated with the assigned classes, and
the information is stored in the database.

Normal Flow: 1. The school manager navigates to the "Class Group Management"
section.
2. The system displays a list of existing class groups.
3. The school manager selects a specific class group to assign classes.
4. The system displays the current details of the class group and
provides options to assign classes.
5. The school manager selects from the list of available classes
(subjects/courses) and assigns them to the class group.
6. The school manager clicks the "Lưu" button.
7. The system validates the proccess.
8. If the data is valid, the system saves the class class to the database.
9. The system displays a confirmation message: "Classes successfully
assigned to the class group."
10. The assigned classes are displayed as part of the class group’s
information.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

139
Frequency of Use: Medium

Business Rules: BR-13, BR-60

Other Information: N/A

Assumptions: N/A

140
ID and Name: UC - 84 View Class Group Details

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to view detailed information about
a specific class group.

Trigger: The school manager selects a class group from the list to view its details.

Pre-conditions: PRE-01. The School Manager is logged into the system.


PRE-02. The class group exists in the system.

Post-conditions: POST-01. The system displays the detailed information of the selected class
group.

Normal Flow: 1. The school manager navigates to the "Class Group Management"
section.
2. The system displays a list of all class groups.
3. The school manager selects a specific class group to view its details.
4. The system retrieves and displays the class group information.
5. The school manager reviews the details data.

Alternative Flows: N/A

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

141
ID and Name: UC - 85 View Class Group List

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to view a list of all class groups within
the school

Trigger: The school manager navigates to the "Class Group Management" section to
view the list of all class groups.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. Class groups already exist in the system.

Post-conditions: POST-01. The system displays a list of all class groups, including basic
information for each group.

Normal Flow: 1. The School Manager logs into the system and navigates to the "Class
Group Management" section.
2. The system retrieves and displays a list of all class groups
information
3. The School Manager can scroll through the list and select any class
group to view more detailed information or manage it (e.g., assign
classes, update group information).

Alternative Flows: 1-AF. If there are no class groups in the system, the system displays a
message: "No class groups available."
2-AF. The school manager can apply filters to view class groups.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Low

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

142
143
ID and Name: UC - 86 Inactive Class Group

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school Manager to mark an existing class group as
inactive, preventing the class group from being scheduled for future
activities or being associated with students, teachers, or subjects.

Trigger: The school manager selects a class group and initiates the deactivation
process.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. The class group exists in the system.

Post-conditions: POST-01. The class group is marked as inactive and is no longer available for
scheduling.

Normal Flow: 1. The School Manager navigates to the "Class Group Management"
section.
2. The system displays a list of class groups.
3. The school manager selects a specific class group to mark as
inactive.
4. The system displays the class group's details along with the option
to inactivate it.
5. The school manager clicks the "Inactivate" button.
6. The system prompts the School Manager for confirmation before
proceeding with the deactivation.
7. The School Manager confirms the action.
8. The system updates the status of the class group to "inactive" in the
database.
9. The system displays a confirmation message: "Class group marked
as inactive successfully."

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Low

Frequency of Use: Low

144
Business Rules: BR-13, BR-26, BR-28

Other Information: N/A

Assumptions: N/A

145
ID and Name: UC - 87 Create Teacher Group

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to create a new group of teachers.
The teacher group can be assigned specific responsibilities, classes, or tasks.

Trigger: The school manager selects the option to create a new teacher group.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. A list of available teachers exists in the system.

Post-conditions: POST-01. The new teacher group is successfully created and stored in the
system.

Normal Flow: 1. The School Manager navigates to the "Teacher Management"


section.
2. The School Manager clicks the "Create New Teacher Group" button.
3. The system displays a form for creating the teacher group.
4. The School Manager enters the required information.
5. The School Manager clicks the "Save" button to create the group.
6. The system validates the data.
7. If the data is valid, the system creates the teacher group and saves
it to the database.
8. The system displays a confirmation message: "Teacher group
created successfully."
9. The new teacher group appears in the list of teacher groups.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.
2-AF. The school manager fills incorrect data

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

Business Rules: BR-13, BR-21, BR-26, BR-44

Other Information: N/A

146
Assumptions: N/A

147
ID and Name: UC - 88 Update Teacher Group

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to update the details of an existing
teacher group.

Trigger: The school manager selects an existing teacher group to modify.

Pre-conditions: PRE-01. The School Manager is logged into the system.


PRE-02. The teacher group to be updated already exists in the system.

Post-conditions: POST-01. The teacher group information is successfully updated and stored
in the database.
POST-02. The updated group information is reflected across the system
wherever the teacher group is used.

Normal Flow: 1. The school manager navigates to the "Teacher Group Management"
section.
2. The system displays a list of existing teacher groups.
3. The school manager selects a teacher group to update.
4. The system displays the current details of the selected teacher
group.
5. The school manager clicks the "Save" button to submit the changes.
6. The system validates the updated information.
7. If the data is valid, the system saves the updated teacher group to
the database.
8. The system displays a confirmation message: "Teacher group
updated successfully."
9. The updated teacher group information is reflected in the list of
teacher groups and related system areas.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.
2-AF. The school manager fills incorrect data

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

148
Business Rules: BR-13, BR-21, BR-26

Other Information: N/A

Assumptions: N/A

149
ID and Name: UC - 89 Assign Teacher to Teacher Group

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to assign one or more teachers to an
existing teacher group.

Trigger: The school manager selects a teacher group and initiates the process of
assigning teachers to that group.

Pre-conditions: PRE-01. The school manager is logged into the system.


PRE-02. The teacher group to which teachers will be assigned already exists.
PRE-03. A list of available teachers exists in the system

Post-conditions: POST-01. The selected teachers are successfully assigned to the teacher
group.
POST-02. The teacher group is updated with the new members and stored
in the database.

Normal Flow: 1. The School Manager navigates to the "Teacher Group


Management" section.
2. The system displays a list of existing teacher groups.
3. The School Manager selects a specific teacher group to manage.
4. The system displays the details of the teacher group, including a list
of current members (if any) and an option to add more teachers.
5. The School Manager selects teachers from a list of available
teachers.
6. The School Manager clicks the "Save" button to assign the selected
teachers to the group.
7. The system validates the assignment
8. If the data is valid, the system updates the teacher group with the
newly assigned teachers and stores it in the database.
9. The system displays a confirmation message: "Teachers successfully
assigned to the group."
10. The assigned teachers are now visible in the teacher group's list of
members.

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

150
Priority: Medium

Frequency of Use: Medium

Business Rules: BR-13, BR-61

Other Information: N/A

Assumptions: N/A

151
ID and Name: UC - 90 View Teacher Groups

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to view a list of all existing teacher
groups in the system.

Trigger: The School Manager navigates to the "Teacher Group Management" section
to view the list of teacher groups.

Pre-conditions: PRE-01. The School Manager is logged into the system.


PRE-02. Teacher groups have already been created in the system.

Post-conditions: POST-01. The system displays the list of all teacher groups, including their
respective details.

Normal Flow: 1. The School Manager logs into the system and navigates to the
"Teacher Group Management" section.
2. The system retrieves and displays a list of all existing teacher groups.
3. The School Manager can scroll through the list and select any group
to view more detailed information or manage it.

Alternative Flows: N/A

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

152
ID and Name: UC - 91 View Teacher Group Detail

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to view detailed information about
a specific teacher group

Trigger: The school manager selects a specific teacher group from the list of teacher
groups to view its details.

Pre-conditions: PRE-01. The School Manager is logged into the system.


PRE-02. Teacher groups already exist in the system.

Post-conditions: POST-01. The system displays the detailed information of the selected
teacher group.

Normal Flow: 1. The School Manager navigates to the "Teacher Group


Management" section.
2. The system displays a list of existing teacher groups.
3. The School Manager selects a specific teacher group to view its
details.
4. The system retrieves and displays the detailed information for the
selected group.

Alternative Flows: N/A

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Medium

Frequency of Use: Medium

Business Rules: BR-10, BR-13, BR-18

Other Information: N/A

Assumptions: N/A

153
ID and Name: UC - 92 Inactive Teacher Group

Created By: MaiNHT Date Created: 22/9/2024

Primary Actor: School Manager Secondary Actor: N/A

Description: This feature allows the school manager to mark a teacher group as inactive

Trigger: The school manager selects a teacher group and initiates the process to
inactivate it.

Pre-conditions: PRE-01. The School Manager is logged into the system.


PRE-02. The teacher group to be inactivated exists in the system.

Post-conditions: POST-01. The teacher group is marked as inactive and is no longer available
for scheduling or assign teacher.

Normal Flow: 1. The School Manager navigates to the "Teacher Group


Management" section.
2. The system displays a list of existing teacher groups.
3. The School Manager selects the teacher group to inactivate.
4. The system displays the details of the selected teacher group, along
with an option to mark it as inactive.
5. The School Manager clicks the "Inactivate" button.
6. The system prompts the School Manager to confirm the
inactivation.
7. The School Manager confirms the action.
8. The system updates the status of the teacher group to "inactive" in
the database.
9. The system displays a confirmation message: "Teacher group
marked as inactive successfully."

Alternative Flows: 1-AF. A school manager clicks the “Hủy” button on the confirm dialog.

Exceptions: 1-EF. Schedulify shows the pop-up message “Mất kết nối với Internet, vui
lòng thử lại sau!”

Priority: Low

Frequency of Use: Low

Business Rules: BR-13, BR-26, BR-28

154
Other Information: N/A

Assumptions: N/A

3. Functional Requirements
3.1 System Functional Overview
3.1.1 Screens Flow
3.1.1.1 <Teacher> Teacher Application Screen Flow

155
3.1.1.2 <Teacher Head Department> Teacher Head Department Application Screen Flow

3.1.1.3 <School Manager> School Manager Application Screen Flow

156
157
3.1.1.4 <System Admin> System Admin Application Screen Flow

3.2 Screen Descriptions


3.2.1.1 <Teacher, Teacher Head Department> Web Application Screen Details
# Feature Screen Description
View landing
page about Contains an introduction about Schedulify and the main
01 Landing page
Schedulify features of the application..

Contains the username and password boxes to log into


02 Login account Login page
the system.
Display the user’s detail formation, including: first name,
View account
03 My profile last name, birthday, gender, email, avatar, school, role in
management
school.
View support Display 3 tabs "Gửi feedback", "Đơn xin vắng", and “Xem
04 Service page
service đơn”.
Teachers will choose the type of application to send, the
Send leave Leave screen includes information such as: full name, reason
05
application Application for sending application, fill in the day off and the button
to send the application.
View application Application Shows a list of submitted applications with their status,
06
list List with a button to view application details.

158
Shows the details of that application, including the
View application Application
07 sender's name, reason, date submitted, date processed,
detail detail
result, and notes.
Feedback Teacher will send information such as, type of service
08 Send Feedback
page being evaluated, detailed information.
View timetable Timetable Contains a list of schedules including both the teacher
09
list page schedule and the class they are teaching.
Includes detailed timetable of the class. Allows the user
View class Timetable
10 to export the timetable via the "In thời khóa biểu"
schedule detail
button.
Includes a detailed timetable of the teacher. Allows the
View teacher Timetable
11 user to export the timetable via the "In thời khóa biểu"
schedule detail
button.
Includes information such as teacher name, position,
Request to department. User will choose another department when
12 Teacher Page
change teacher selecting the "Tổ bộ môn" box. And the "Gửi yêu cầu"
button.
Update Teacher Teacher Allows updating the teacher's image, name and date of
13
Information Detail birth in cells.

3.2.1.2 <School Manager> Web Application Screen Details

# Feature Screen Description


View the school’s This page includes the timetable versions for the school
01 Landing page
timetable with detailed status.
View timetable Timetable Include detailed information about the class period,
02
details detail classroom, and teacher.
Show a list of teachers with their status and basic
03 View teacher list Teacher page
information.
View teacher
Teacher Show the details of the chosen teacher with personal and
04 information
detail teaching information.
detail
Create new Create Create a new teacher by inputting the teacher's
05
teacher teacher information into a modal.
Update teacher Update
06 Allows updating the teacher’s information.
information teacher
Display all subjects with their respective subject codes
07 View subject list Subject page
and types.
View subject Show detailed subject information as well as the total
08 Subject detail
detail subject period
09 View class list Class page Provides a view of all classes in the system.
View subject
10 Subject group Displays all the subject groups created within the system.
group
Create subject Allows to create a new subject group by adding subjects
11 Subject group
Group into a specific group.
View subject View subject Shows the details of the selected subject group including
12
group details group details the subjects associated with it
Update subject View subject Allows updating of the subject group details, such as
13
group group details modifying the subjects within the group.

159
Allows the School Manager to create a new class group,
14 Add class group Class group organising classes based on certain criteria like grade
level or subject focus
Displays detailed information about the selected class
View Class group Class group
15 group, including the classes and students within the
details details
group
Update Class Class group Allows updating of existing class groups, such as
16
Group details modifying the list of classes in the group.
View Class group Displays a list of all class groups created within the school
17 Class group
list for organisational purposes.
18 View room Room page Display a list of all classrooms with their status.
Room detail
19 View room detail Show a detailed information of the chosen classroom.
page
Allows the school manager to create a new classroom
20 Create new room Create room
and input classroom information.
21 Update room Update room Allows updating of existing information classroom.
Teacher
View teacher View teachers assigned to teach classes for a specific
22 assignment
assignment subject.
page
View teacher
Teacher class
23 class head View teachers assigned to homeroom teacher of its class.
head
assignment
View constraint Constraint
24 Display all constraint configuration of the school.
configuration configuration
Import Allow a school manager to import data timetables into
25 Import timetable
timetable the system.
Reuse Allow a school manager to move timetable data to the
26 Reuse timetable
timetable next school year.

3.2.1.3 <Admin> Web Application Screen Details

# Feature Screen Description


View dashboard Admin Show detailed system data analysis, the school's request,
1
analysis landing and the rate of contentment.
Admin form
2 View application View all forms and feedback from school requests.
page
3 View school list School page View list of school based on region .
The Admin can add a new school to the system,
Create new
4 School page specifying the area of this school. Status can active or
school
pending.
Update school
5 School detail The Admin can update the school information.
information
View school
6 School page The Admin can view the school information detail.
detail
View school
Displays a list of all school manager accounts created
7 manager account Account page
within the school for organisational purposes.
list
View school
Account Displays a list of all school management accounts created
8 manager account
detail to manage schools.
detail

160
3.3 Screen Authorization

Teacher
School
Admin Head Teacher Guest
Manager
Screen Department
Register x
Login x x x x
Landing x x x x x
Dashboard x
Account x x x
Update Profile x
Service x
Timetable x x x
Teacher x x
Subject x
Constraint x x
School x
Building x
Room x

3.4 Non-Screen Functions

# Feature System Function Description

Send Mails to Sends mails to users when there are updates about
1 User Send the information of School Information, Active School
manager Account and Problem.

Push System push notification to user when they or system


2 Notification
notification has updates or events.

161
3.5 Entity Relationship Diagram

4. Non-Functional Requirements
4.1 External Interfaces

ID Requirements

General

UI-01 The font size is easy to distinguish where is the title, where is the content.

UI-02 The colour of the background and text are contrasting and easy to read.

UI-03 Whenever a student/administrator performs an action that requires a connection


to the server, a load indicator will appear so that the user knows what is going on
and does not mistakenly think that the service is down.

UI-04 There should be a clear warning when something goes wrong with the server.

Admin Interface

UI-05 The administration interface should provide a clear summary dashboard of


statistics of the managed system units.

UI-06 The interface must be fully accessible from the web.

UI-07 The management button should be easy to understand, avoiding wrong


operation and leading to wrong data.

162
Client Interfaces

UI-08 Users access the information system via a web browser with a friendly and
intuitive interface.

Software Interfaces

UI-09 The client should communicate with the backend service to get the data.

UI-10 Data synchronization between the website and the database must take place in
real time.

4.2 Quality Attributes


4.2.1 Usability
● Implement solid design principles, such as clear icons, button types, tooltips, and logical
menu structures.
● Ensure the app's user interface is intuitive and easy to use, even for non-IT teachers with
little technical expertise.

4.2.2 Reliability
● The system must be reliable and stable, minimizing errors, failures, and data loss, and
providing appropriate error handling and recovery mechanisms.
● Use mechanisms such as data authentication, encryption, and backup recovery procedures
to maintain data integrity.
● Prevent system reliability from being overloaded with requests, potentially causing the
system to crash or become unresponsive.

4.2.3 Performance
● Prevent processing a large number of requests at the same time to ensure that the system
maintains a high level of performance and does not become overloaded.
● The waiting time for performing transactions/loading data should not exceed 5 seconds.
● The scheduling should be optimized to not exceed 30 seconds for 1 request.

4.2.4 Security
● Encrypt sensitive data (user logins, transaction details) to protect against unauthorized
access
● Educate users on how to use the app safely and how to protect their accounts
● Each banking connection must be authenticated with a digital signature
● Public and private keys must be generated using strong algorithms such as SHA256/RSA2048
● SFTP authentication using SSH Keys

5. Requirement Appendix
5.1 Business Rules

163
ID Rule Definition
BR-01 The system must authenticate the user's credentials (username and password) against the
stored data.
BR-02 Upon successful login, the system should create a new session for the user. Each session
must be uniquely identified and stored securely. The session should expire after a defined
period of inactivity (e.g., 15 minutes).
BR-03 The system must verify that the user's account is active and not locked, suspended, or
inactive before granting access.
BR-04 Upon successful login, the system should display a welcome message to the user. If the
login fails, an error message such as "Địa chỉ email hoặc mật khẩu không đúng" should be
displayed without specifying which of the two was incorrect.
BR-05 Once logged out, the user must not have access to any system resources that require
authentication.
BR-06 If the session has expired due to inactivity, the user must be informed that they have been
logged out due to inactivity when they try to perform any action, and they must be
redirected to the login page.
BR-07 After a successful logout, the user should be redirected to the home or login page, with an
optional confirmation message indicating that they have been successfully logged out.
BR-08 Only authenticated users with a valid session can view information
BR-09 The profile view should include essential user details, such as name, role, contact
information. Sensitive information (e.g., passwords) must not be displayed.
BR-10 By default, the information must be displayed in a read-only format.
BR-11 Holidays must be classified into predefined types
BR-12 Holidays can be defined as either school-specific or system-wide. Only System Admins
should have the ability to define system-wide holidays.
BR-13 Only users with the appropriate role and permissions are allowed to perform specific
actions within the system. Unauthorised users must be denied access to these actions and
receive a suitable message indicating the lack of permissions
BR-14 The building name and code must be unique within the system.
BR-15 Deactivated buildings cannot be used for scheduling new events or activities.
BR-16 The school manager must confirm deactivation if the building is involved in future
scheduled events.
BR-17 Only users with the appropriate permissions can view building details.
BR-18 The system should retrieve the most up-to-date data from the database.
BR-19 The building information must remain read-only while viewing.
BR-20 The file must adhere to a predefined format (e.g., specific columns for building name,
code, number of floors, etc.).
BR-21 The system must validate the data before importing it into the database
BR-22 The import process must allow for error handling, with detailed feedback on any issues.
BR-23 Once a new curriculum is updated and approved, it must be applied to all schools under
the jurisdiction of the Ministry of Education. School Managers must be notified to adjust
their schedules accordingly.

164
BR-24 If an error occurs during the addition process (e.g., missing required data, validation
failure), the system must provide an appropriate error message and prevent partial
additions. The user should have the option to correct the information or cancel the
addition process entirely.
BR-25 The addition of a new school must go through a validation process to ensure that all
required information is provided and accurate.
BR-26 Upon successful addition or update of information, the system must notify relevant
stakeholders.
BR-27 Once a school is marked as inactive, all user accounts associated with the school should
have their permissions revoked.
BR-28 An inactive object cannot be associated with new entities or activities in the system
BR-29 Each school can be associated with only one region at a time.
BR-30 The system must provide filter and search capabilities to allow users to easily find specific
information.
BR-31 Email and phone must be unique for the user.
BR-32 Email must be in standard email format.
BR-33 Phone number must be 10 digits.
BR-34 Each School account must be associated with a specific school.
BR-35 Each constraint must be assigned a weight, indicating its importance in the scheduling
process.
BR-36 Users should be able to track the status of their submitted form using the reference
number. The system should provide status updates.
BR-37 The system must enforce a maximum length for the feedback description to prevent overly
long submissions . Rich text formatting should be supported for clarity.
BR-38 Absent forms must be submitted at least 3 days in advance.
BR-39 The system must support multiple export formats ( Excel, PDF, Word ).
BR-40 Upon successful export, the system must notify the user with a confirmation message and
a download link.
BR-41 Approval must be provided by the “School Manager” before the change is applied.
BR-42 The system must support import Excel formats .
BR-43 Before finalising the import, the system must display a preview of the data to be imported.
BR-44 The system must check for duplicate entries based on unique identifiers.
BR-45 The system must ensure that marking a teacher as inactive does not disrupt ongoing
schedules, class rosters, or other related data. Any dependencies or conflicts must be
resolved before inactivation.
BR-46 When a new teacher is added to the system, the default availability must be set to full
availability during standard school hours
BR-47 If conflicts or scheduling issues arise during timetable creation, the system must notify the
user and provide resolution options, such as reassigning the teacher or adjusting the time
slot.
BR-48 Hard constraints must not be violated.
BR-49 The system must attempt to minimise violations of soft constraints as much as possible
during the timetable generation process.

165
BR-50 Upon publishing the schedule, the system must automatically notify all relevant
stakeholders.
BR-51 The system must automatically detect scheduling conflicts during the timetable creation
or modification process.
BR-52 A class must not have any active schedules before being deactivated.
BR-53 A teacher can only be assigned to one class per time slot.
BR-54 Teachers must be qualified to teach the assigned subject(s).
BR-55 Teachers must not exceed their weekly teaching hours.
BR-56 Classes can only be combined if they share the same subject and number of slot in session.
BR-57 A building cannot be deactivated if it is currently in use.
BR-58 A class group must exist before classes can be assigned.
BR-59 A Teacher group must exist before a teacher can be assigned.
BR-60 The system must log all notifications sent, including the user ID, timestamp, content of the
message, target audience, and delivery status
BR-61 The system must allow users to specify the target audience for the notification. The target
audience may include (All Users, Specific Groups, personal)
BR-62 Each subject must have a unique subject code
BR-63 School years cannot overlap; the start and end dates must be unique across all existing
school years.
BR-64 The maximum duration of a school year cannot exceed 12 months
BR-65 Rooms must have adequate capacity to accommodate all students in the combination
class

5.2 Common Requirements


CR-1 Login: User can log in to the system

CR-2 Logout: User can sign out of system

CR-3 View profile: User can view information of profile

CR-4 Update profile: User can update the information of profile

CR-5 Change password: User can change password

5.3 Application Messages List

Message Message
# Context Content
code Type
In red,
under the Required input field is
1 MSG01 Vui lòng điền đầy đủ thông tin
empty
text box

166
In red,
under the Lack of character in “Số
2 MSG02 Vui lòng nhập đủ 10 chữ số
điện thoại” input field
text box

In red,
under the “Số điện thoại” input field Vui lòng nhập số điện thoại
3 MSG03
contains letters hợp lệ
text box

In red, “Địa chỉ email” input does


under the Vui lòng nhập đúng định dạng
4 MSG04 not match regular Email
email
text box convention

In red, “Mật khẩu” input value


under the Vui lòng nhập mật khẩu mạnh
5 MSG05 does not meet security
hơn
text box requirements

In red,
under the “Mật khẩu” input value is Vui lòng nhập mật khẩu dài ít
6 MSG06
not less than 8 characters nhất 8 ký tự
text box

In red, “Xác nhận mật khẩu”


7 MSG07 under the does not match the Mật khẩu không khớp
text box inputted password

In grey,
under the Notify for restricted
(Dành cho người sắp xếp thời
8 MSG08 registration available to
“Đăng khóa biểu)
limited user only
ký” title

In red, “Tên tắt TKB” input value Tên viết tắt không thể chứa
9 MSG09 under the contains unsupported ký tự đặc biệt và khoảng
text box characters trống
In red, at
the end Form submitted without Vui lòng không bỏ trống
10 MSG10
of the being fulfilled properly những trường bắt buộc (*)
form
Gửi thông tin liên hệ thành
Toast Feedback form submitted công. Nhân viên sẽ nhận phản
11 MSG11
message successfully hồi của bạn và trả lời trong
thời gian sớm nhất
Thông tin đăng ký đã được hệ
Toast Register form sent thống tiếp nhận, bạn sẽ được
12 MSG12
message successfully thông báo qua email trong
thời gian sớm nhất

167
Toast Đăng nhập thành công, chào
13 MSG13 Login successfully
message mừng {username}
In green,
Update room for Cập nhật thông tin phòng học
14 MSG14 Toast
classroom successfully thành công
message
In red,
Fail to update room for Cập nhật thông tin phòng học
15 MSG15 Toast
classroom thất bại
message
Toast Sai tên tài khoản hoặc mật
16 MSG16 Login fail
message khẩu. Vui lòng thử lại!
Toast Không tìm thấy người dùng.
17 MSG17 User not found
message Vui lòng thử lại!
Username or password is
Toast Tài khoản hoặc mật khẩu
18 MSG18 not correct when clicking
message không hợp lệ. Vui lòng thử lại!
sign-in
Toast Deleting teacher data Xóa dữ liệu của giáo viên
19 MSG19
message successfully thành công
Toast Updating teacher Cập nhật thông tin giáo viên
20 MSG20
message information successfully thành công
Toast Adding new teacher
21 MSG21 Thêm giáo viên thành công.
message successfully
Toast Adding new subject
22 MSG22 Thêm môn học thành công.
message successfully
Toast Updating subject Cập nhật thông tin môn học
23 MSG23
message information successfully thành công
Toast Deleting subject Xóa môn {subject name}
24 MSG24
message information successfully thành công
Toast Adding new class
25 MSG25 Thêm lớp học thành công.
message successfully
Toast Successfully export Xuất thông tin {entity} thành
26 MSG26
message entity’s data công
Toast Xuất thông tin {entity} thất
27 MSG27 Fail to export entity’s data
message bại

168
IV. Software Design Description
1. System Design
1.1 System Architecture

1.2 Package Diagram


1.2.1 Package Diagram API Module

169
Package Descriptions
No Package Description
01 Controller Interacts with the Service Layer to handle HTTP requests and send appropriate
responses.

02 Middleware Handles cross-cutting concerns such as exception handling.

03 Services Contains business logic and interacts with the Repository Layer

04 Interfaces - Define service contracts that are implemented.


Services

05 Implements - Provides concrete implementations of the service interfaces.


Services

170
06 BusinessModels It likely represents core domain objects used by the services.

07 ViewModels Designed to handle data passed between the presentation layer and the service
layer, such as models for HTTP requests and responses

08 Validations Validates business rules, likely ensuring that data passed to services conforms to
expected formats and regulations.

09 Enums Enumerations are used throughout the services to represent specific, constant
values.

10 Mapper Handles mapping between different models

11 UnitOfWork Manages transactions and coordinates multiple repositories to ensure data


consistency.

12 Exceptions Represents custom exceptions used throughout the service layer.

13 Utils Utility functions that provide common functionality across the system.

14 Repository Responsible for data access, interacting with the database through EntityModels

15 Interfaces - Define repository contracts for data access.


Repository

16 Implements - Provide concrete repository implementations that interact with the DBContext.
Repository

17 EntityModels Represent the database entities or objects that map to database tables.

18 DBContext Manages the connection and interaction with the database

19 Common Contains shared resources, possibly helper functions or common logic, that can be
reused across different parts of the system

171
1.2.1 Web Module

Package Descriptions
No Package Description
01 hooks Global hooks used by many distinct components within project including custom
hooks, library hooks and context hooks.

172
02 utils Global assets used by many distinct components within the project including
constants, message translators, library configurations, and font definition.

03 public Containing media resources including images and icons.

04 context Containing contextual hooks and and Redux context params including global app
provider, Redux stores and slices.

05 _libs Containing layout’s resources used by components within that layout including
layout constants, validation schemas, and layout used api endpoints.

06 _styles Containing layout’s stylesheets used by some specific components or the whole
layout.

07 _components Containing UI components that merged into the main UI shown for on the user’s
screen.

08 _hooks Custom hooks used by layout’s components within that layout.

173
2. Database Design

174
Table Descriptions
No Table Description
1 RoomSubject Store the information of teachable subject in room and combination
class
- Primary key: Id
- Foreign key: SubjectId, RoomId, SchoolId, TermId
02 StudentClassRoomSu Store the information of all classes in combination class
bject - Primary key: Id
- Foreign key: RoomSubjectId, StudentClassId
03 Rooms Store the information of all rooms
- Primary key: Id
- Foreign key: BuildingId,
04 Notification Store the information of all notifications
- Primary key: Id
- Foreign key: AccountId
05 Building Store the information on all buildings

175
- Primary key: Id
- Foreign key: SchoolId
06 Account Store the information of all accounts
- Primary key: Id
- Foreign key: SchoolId
07 OTP Store the information of all OTP (to validate valid emails)
- Primary key: Id
- Foreign key: AccountId
08 ClassPeriod Store the information of all class period
- Primary key: Id
- Foreign key: TimeSlotId, SubjectId, TeacherId, RoomId,
ClassScheduleId,
09 StudentClasses Store the information of all student classes
- Primary key: Id
- Foreign key: SchoolId, HomeroomTeacherId, RoomId,
SchoolYearId
10 StudentClassGroups Store the information of all class group
- Primary key: Id
- Foreign key: CurriculumId, SchoolYearId, SchoolId
11 PeriodChange Store the information of period change
- Primary key: Id
- Foreign key: ClassPeriodId
12 ClassSchedule Store the information on all class schedule
- Primary key: Id
- Foreign key: SchoolScheduleId
13 Curriculums Store the information of all curriculums
- Primary key: Id
- Foreign key: SchoolId,
14 SchoolYears Store the information for all school years
- Primary key: Id
15 SchoolSchedules Store the information on all school schedules
- Primary key: Id
- Foreign key: SchoolId, SchoolYearId, TearmId
16 Subjects Store the information on all subjects
- Primary key: Id
- Foreign key: SchoolId
17 TeachableSubjects Store the information on all subjects taught by each teacher
- Primary key: Id
- Foreign key: SubjectId, TeacherId
18 curriculumDetail Store the information of all subjects by each curriculum detail
- Primary key: Id
- Foreign key: SubjectId, curriculumId
19 Terms Store the information on all terms
- Primary key: Id
- Foreign key: ShoolYearId, SchoolId
20 District Store the information of all districts (for identifying school addresses)
- Primary key: Id
- Foreign key: ProvinceId
21 Provinces Store the information of all provinces (for identifying school addresses)
- Primary key: Id

176
22 Schools Store the information of all schools
- Primary key: Id
- Foreign key: ProvinceId
23 SubmitRequests Store the information of all submit requests
- Primary key: Id
- Foreign key: TeacherId
24 Teachers Store the information of all teachers
- Primary key: Id
- Foreign key: SchoolId, DepartmentId
25 TeacherAssignment Store the information on all teacher assignments
- Primary key: Id
- Foreign key: TeacherId, StudentClassId, SubjectId, TermId,
RoomSubjectId
26 TeacherUnavailabiliti Store the information of all the busy days of each teacher
es - Primary key: Id
- Foreign key: TeacherId
27 Departments Store the information of departments
- Primary key: Id
- Foreign key: SchoolId
28 Role Store the information of all roles in the system
- Primary key: Id
29 RoleAssignment Store the information on all role assignments
- Primary key: Id
- Foreign key: RoleId, AccountId, DepartmentId

3. Detailed Design
3.1 Login Feature
3.1.1 Login Class Diagram

177
3.1.2 Login Activity Diagram

3.1.3 Login Sequence Diagram

178
3.2 SignUp Feature
3.2.1 SignUp Class Diagram

179
3.2.2 SignUp Activity Diagram

180
3.2.3 SignUp Sequence Diagram

3.3 Create Teacher


3.3.1 Create Teacher Class Diagram

181
3.3.2 Create Teacher Activity Diagram

182
3.3.3 Create Teacher Sequence Diagram

183
3.4 GetTeacherAssignmentDetail
3.3.1 GetTeacherAssignmentDetail Class Diagram

3.3.2 GetTeacherAssignmentDetail Activity Diagram

184
3.3.3 GetTeacherAssignmentDetail Sequence Diagram

3.5 AssignTeacherDepartmentHead
3.5.1 AssignTeacherDepartmentHead Class Diagram

185
3.5.2 AssignTeacherDepartmentHead Activity Diagram

3.5.3 AssignTeacherDepartmentHead Sequence Diagram

186
3.6 Add Teachable Subject
3.6.1 AddTeachableSubject Class Diagram

3.6.2 AddTeachableSubject Activity Diagram

187
3.6.3 AddTeachableSubject Sequence Diagram

3.7 Get Teacher


3.7.1 GetTeacher Class Diagram

3.7.2 GetTeacher Activity Diagram

3.7.3 GetTeacher Sequence Diagram

188
3.8 Update Teacher
3.8.1 UpdateTeacher Class Diagram

189
3.8.2 UpdateTeacher Activity Diagram

3.8.3 UpdateTeacher Sequence Diagram

190
3.9 Create Curriculum
3.9.1 Create Curriculum Class Diagram

191
3.9.2 Create Curriculum Activity Diagram

192
3.9.3 Create Curriculum Sequence Diagram

193
3.10 Get Curriculum
3.10.1 Get Curriculum Class Diagram

3.10.2 Get Curriculum Activity Diagram

194
3.10.3 Get Curriculum Sequence Diagram

3.11 Assign Student Class To Class Group


3.11.1 Assign Student Class To Class Group Class Diagram

195
3.11.2 Assign Student Class To Class Group Activity Diagram

3.11.3 Assign Student Class To Class Group Sequence Diagram

196
3.12 AssignCurriculumToClassGroup
3.12.1 AssignCurriculumToClassGroup Class Diagram

197
3.12.2 AssignCurriculumToClassGroup Activity Diagram

3.12.3 AssignCurriculumToClassGroup Sequence Diagram

198
3.13 Add Student Class Group
3.13.1 AddStudentClassGroup Class Diagram

199
3.13.2 AddStudentClassGroup Activity Diagram

200
3.13.3 AddStudentClassGroup Sequence Diagram

3.14 Get Teacher Assignment


3.14.1 Get Teacher Assignment Class Diagram

201
3.14.2 Get Teacher Assignment Activity Diagram

3.14.3 Get Teacher Assignment Sequence Diagram

202
3.15 Auto Assign Teachers
3.15.1 Auto Assign Teachers Class Diagram

203
3.15.2 Auto Assign Teachers Activity Diagram

204
3.15.3 Auto Assign Teachers Sequence Diagram

205
3.16 Assign Teacher For Assignments

206
3.16.1 Assign Teacher For Assignments Class Diagram

207
3.16.2 Assign Teacher For Assignments Activity Diagram
3.16.3 Assign Teacher For Assignments Sequence Diagram

3.17 Create Student Class


3.17.1 Create Student Class Class Diagram

208
3.17.2 Create Student Class Activity Diagram

209
3.17.3 Create Student Class Sequence Diagram

3.18 Update Student Class


3.18.1 Update Student Class Class Diagram

210
3.18.2 Update Student Class Activity Diagram

211
3.18.3 Update Student Class Sequence Diagram

212
3.19 Assign Homeroom Teacher To Classes
3.19.1 Assign Homeroom Teacher To Classes Class Diagram

213
3.19.2 Assign Homeroom Teacher To Classes Activity Diagram

214
3.19.3 Assign Homeroom Teacher To Classes Sequence Diagram

215
3.20 Get Class Combination
3.20.1 Get Class Combination Class Diagram

3.20.2 Get Class Combination Activity Diagram

216
3.20.3 Get Class Combination Sequence Diagram

3.21 Get Teacher Assignment Of Class


3.21.1 Get Teacher Assignment Of Class Class Diagram

217
3.21.2 Get Teacher Assignment Of Class Activity Diagram

218
3.21.3 Get Teacher Assignment Of Class Sequence Diagram

3.22 GetStudentClasses
3.22.1 GetStudentClasses Class Diagram

219
3.22.2 GetStudentClasses Activity Diagram

3.22.3 GetStudentClasses Sequence Diagram

220
3.23 View Subject
3.23.1 ViewSubject Class Diagram

3.23.2 ViewSubject Activity Diagram

221
3.23.3 ViewSubject Sequence Diagram

222
3.24 Create Room Subject
3.24.1 CreateRoomSubject Class Diagram

223
3.24.2 CreateRoomSubject Activity Diagram

224
3.24.3 CreateRoomSubject Sequence Diagram

3.25 Add Room In progress


3.25.1 AddRoom Class Diagram

225
3.25.2 AddRoom Activity Diagram

226
3.25.3 AddRoom Sequence Diagram

227
3.26 View Room
3.26.1 ViewRoom Class Diagram

228
3.26.2 ViewRoom Activity Diagram

229
3.26.3 ViewRoom Sequence Diagram

230
3.27 View Buildings
3.27.1 View Class Diagram

3.27.2 View Building Activity Diagram

231
3.27.3 View Building Sequence Diagram

3.28 Add Buildings


3.28.1 AddBuildings Class Diagram

232
3.28.2 AddBuildings Activity Diagram

233
3.28.3 AddBuildings Sequence Diagram

3.29 Update Buildings


3.29.1 UpdateBuildings Class Diagram

234
3.29.2 UpdateBuildings Activity Diagram

235
3.29.3 UpdateBuildings Sequence Diagram

236
3.30 Generate Timetable
3.30.1 GenerateTimetable Class Diagram

237
3.30.2 GenerateTimetable Activity Diagram

238
3.30.3 GenerateTimetable Sequence Diagram

V. Software Testing Documentation


1. Scope of Testing
The testing will cover:

● Core Functionalities: Validating the functionality of the API and the website's external
interfaces to ensure they meet business requirements.
● Non-Functional Aspects: Ensuring performance, maintainability, and database integrity
through appropriate testing methodologies.
● Integration Points: Verifying seamless communication between APIs and external systems.

2. Test Strategy
2.1 Testing Types
Testing Type Description

GUI testing Test user interface, including component, font, size, color…

239
Function Testing Verify the functionality of individual system components to
ensure each function performs as expected according to
requirements. Additionally, evaluate the integration between
these components to confirm that they work together
seamlessly without conflicts or errors

2.2 Test Levels

Testing Level Description Purpose

Unit Testing Unit test is used to test functions Recheck all requirements and edge
cases to ensure the function meets
expectations, handles all scenarios, and
adapts effectively to various
conditions.

System Testing A system test is used to test a Ensure that all components work
complete integrated system. together as expected, verify the
correctness of logic, and validate the
data flow across the entire system.

3. Test Plan
3.1 Human Resources

Worker Role Specific Responsibilities/Comments

Nguyễn Thành Back-end


Execute tests, create and modify test documents, and fix
Long developer,
bugs in back-end features.
Tester

Nguyễn Chiến Back-end


Execute tests, create and modify test documents, and fix
Thắng developer,
bugs in back-end features.
Tester

Nguyễn Hà Thanh Front-end


Mai developer, Fix bugs in front-end features.
Leader

Lương Hoàng Anh Front-end


Fix bugs in front-end features.
developer

3.2 Test Environment


Purpose Tool Provider Version

240
Postman
Postman,
Technologies Postman-win64-
Unit Test Microsoft Office
CompanCompany, 1.11.0, Microsoft
Excel
Microsoft Office Excel 2019

Microsoft Office Microsoft Microsoft Office


System Test
Excel Excel 2019

Running the Integration N/A


Google Chrome Google
test case
Microsoft Office
Define, writing test cases Microsoft Office
Microsoft Excel 2019
documents Excel

3.3 Test Milestones


Milestone Task Start Date End Date

Create test plan 01/11/2024 03/11/2024

Create unit test document and execute test case 04/11/2024 20/11/2024

Create a test report document and execute the 04/12/2024


20/11/2024
test case

Full system testing 05/12/2024 11/12/2024

4. Test Cases and Test Report


Unit Test Case Test Report

Report_5_Unit_Test Report_5_Test_Report

VI. Release Package & User Guides


1. Deliverable Package
1.1 Source Codes and Documents
No. Item Sub-Items Type Version
Code Package
1 Web API Module FA24SE078_LamHuuKhanhPhuon New 1.1.0
g_Schedulify_System_API.zip
2 Web Module FA24SE078_LamHuuKhanhPhuon New 1.1.0
g_Schedulify_Web_Module.zip
Database
1 Initialize Database SchedulifyScript.sql New 1.1.0

241
No. Item Sub-Items Type Version
Documents
1 Final Project Report Schedulify Report Final.docx New
1.2 Known Issues, Limitations & Restrictions
● Installer for each unpackaged project.
● The database must be initialized using a database script.

2. Installation Guides
2.1 System Requirements
2.1.1 Web application
PC Minimum Recommend

Internet connection LAN, internet access LAN, Wi-fi (16 Mbps)


capability

Processor Intel Core i5 1.5Ghz Intel Core i7 2.6Ghz

Memory 4GB RAM 8GB RAM up

Storage 4GB 6GB up

Web Browser Chrome (v69) Chrome's latest stable


version

2.1.2 Software requirement


Component Name and Version Description

Operating System Window 10/11, other open The operating system for
sources (Linux, Ubuntu) building production

Database PostgreSQL

.NET Core Runtime 8.0 Used to host API server

NextJS 14.2.14 Web application module

IDE Visual Studio, Visual Studio


Code
2.2 Setup file
● FA24SE078_LamHuuKhanhPhuong_Schedulify_System_API.zip
● FA24SE078_LamHuuKhanhPhuong_Schedulify_Web_Module.zip

242
2.3 Installation Instruction
2.3.1 Setup Running Environment
2.3.1.1 Setup Database
Setup Docker Desktop by guidelines link:
https://docs.docker.com/desktop/setup/install/windows-install/
2.3.1.2 Setup Database
Install Postgresql by guidelines link:
https://www.postgresql.org/download/
2.3.1.3 Setup NodeJS
Install NodeJS version 21.5.0 or above by the guidelines link:
https://nodejs.org/en/download/package-manager
2.3.1.4 Setup Pnpm
Install Pnpm version 9.9.0 by following this guideline link:
https://pnpm.io/installation
(*) Alternative:
Step 1: Open Terminal
Step 2: Type “npm install -g [email protected]” and press Enter

2.3.1.5 Setup IDE


Install Visual Studio by following the guidelines link:
https://visualstudio.microsoft.com/downloads/
Install Visual Studio Code by following the guidelines link:
https://code.visualstudio.com/download

243
2.3.2 Setup Backend API
1. Extracting: FA24SE078_LamHuuKhanhPhuong_Schedulify_System_API.zip

2. Open the SchedulifySystem.sln file with Visual Studio

244
3. Config your database connection

4. Run project

5. Test the project in the browser by going to the URL: http://localhost:8080

245
2.3.4 Setup Frontend Web Module
(*) Prerequisite: having NodeJS version 21.5.0 or above and Pnpm version 9.9.0 installed on
your computer
1. Extracting the FA24SE078_LamHuuKhanhPhuong_Schedulify_Web_Module.zip file

2. Open VSCode, then select File -> Open Folder as provided in the picture. Then select
the folder containing source code extracted from the previous step.

3. Select Terminal -> New Terminal

246
4. In the opened Terminal, type “pnpm install” and press Enter to launch the package
installation process, which should look like the provided picture

5. After finishing the installation, continue to type “pnpm start” to launch the project.
The process of building a production file will take some minutes to complete.

247
6. After the building process has finished, you will see the message below, the project
will run on http://localhost:3000

7. By accessing http://localhost:3000, you will be redirected to


http://localhost:3000/landing and see the UI as provided in the picture below

248
3. User Manual
3.1 Terms and Definitions
Schedulify is a website designed to support high school timetable scheduling. It effectively
addresses diverse constraints regarding room availability and teacher preferences,
promoting seamless collaboration among administrators, department heads, and teachers
for improved organizational efficiency. This software system was developed to manage and
adjust school schedules based on demand.

1. Guest: Unauthenticated users have limited access to the system, usually viewing the
website, and restricted access functionalities for specific purposes.
2. School Manager: A school administrator is responsible for creating the timetable and
managing data related to teachers and school resources.
3. Teacher Department Head: A departmental head is responsible for leading and
managing the teachers within a specific department.
4. Teacher: A specific school teacher can view and export the timetable data, and send
the application form to the school manager.
5. Administrator: A user with the highest permissions can manage a school registered in
the software system and view data charts related to the timetable schedule and
system configuration.

249
3.2 System Requirement
3.2.1 Hardware Requirement
Type Part/Component Minimum Recommended

Computer OS supported Windows 10 Pro sp1 or later -


(64-bit), Linux

Computer Network LAN LAN and Internet

Computer RAM 4GB >=8GB

Computer HDD 100GB >=200GB


3.2.2 Software Requirement
● .NET SDK 8
● .NET Core Runtime 8 Hosting bundles
● NodeJS version 21.5.0 or above
● Pnpm version 9.9.0
3.3 Application Usage
3.3.2. Guest Flow
Role: (Guest)
3.3.2.1. Homepage
Step 1: The user opens the Schedulify website

3.3.2.2. Timetable Page


Step 1: The user opens the Schedulify website
Step 2: Click on the “Thời khóa biểu” on the navigation bar

250
3.3.2.3. Community Page
Step 1: The user opens the Schedulify website
Step 2: Click on the “Cộng đồng” on the navigation bar

3.3.2.6. Contact Page


Step 1: The user opens the Schedulify website
Step 2: Click on the “Liên hệ” on the navigation bar

251
3.3.3. Authentication Flow
3.3.3.1 Sign in
Role: (Guest, School Manager, Teacher Department Head, Teacher, Administrator)
Step 1: The user opens the Schedulify website
Step 2: Click on the button “Đăng nhập”

Step 3: The user fills out the required information (email, password, and select
school year)

252
3.3.3.2 Sign up
Role: (Guest, School Manager, Teacher Department Head, Teacher, Administrator)
Step 1: The user opens the Schedulify website
Step 2: Click on the button “Đăng nhập”

Step 3: Click on the “Đăng ký” hyperlink to navigate to the registration page

253
Step 4: Users fill in the necessary information and send the form for verification

3.3.3.3 Log out


Role: (School Manager, Teacher Department Head, Teacher, Administrator)
Step 1: Users click on the “Đăng xuất” button at the bottom of the sidebar on the left

254
Step 2: The system redirects users to the Homepage with a success notification

3.3.4. School Manager Flow


3.3.4.1. View Published Timetable
Step 1: User login into the software system with the account school manager

255
3.3.4.2. View Published Class Timetable
Step 1: Click on menu “Thời khóa biểu lớp”

Step 2: Select a date, grade, and class to see the class timetable detail

3.3.4.3. View Published Room Usage


Step 1: Click on menu “Lịch sử dụng phòng”

Step 2: Select a date the room usage detail

256
3.3.4.4. Update Published Timetable

3.3.4.5. Generate new Timetable

3.3.4.6. Update Draft Timetable

3.3.4.7. View Class management


Step 1: Login as School Manager

257
Step 2: Users select the “Lớp đơn” tab in the “Lớp học” section.

Step 4: Users filter classes by grade level by clicking the filter and selecting the desired grade
level.

258
Step 5: Users click on any class to view detailed information about the class.

Step 6: Users click on the "Phân công giáo viên" button to view the teacher assignments for
each subject in the class.

259
3.3.4.8. Edit Class information
Step 1: Login as School Manager

Step 2: Users select the “Lớp đơn” tab in the “Lớp học” section.

260
Step 3: Users click on the three-dot icon on the class they want to edit and select the "Chỉnh
sửa thông tin" button.

Step 4: Users enter valid information into the form and click the "Cập nhật" button to update
the class information.

261
Step 5: A success notification will appear in the top-right corner of the screen.

3.3.4.9. Delete Class information


Step 1: Login as School Manager

262
Step 2: Users select the “Lớp đơn” tab in the “Lớp học” section.

Step 3: Users click on the three-dot icon on the class they want to delete and select the "Xóa
lớp học" button.

263
Step 4: A confirmation dialog appears asking the user to confirm the deletion. The user clicks
the "Xóa lớp học" button to delete the class.

3.3.4.10. Create Class information


Step 1: Login as School Manager

264
Step 2: Users select the “Lớp đơn” tab in the “Lớp học” section and then click the plus-
shaped button.

Step 3: Users enter valid information into the form and click the "Thêm lớp học" button.

265
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.11. View Combined Class


Step 1: Login as School Manager

266
Step 2: Users select the “Lớp ghép” tab in the “Lớp học” section.

3.3.4.12. Create Combined Class


Step 1: Login as School Manager

267
Step 2: Users select the “Lớp ghép” tab in the “Lớp học” section and then click the plus-
shaped button.

Step 3: Users enter valid information and click the "Thêm lớp ghép" button.

268
Step 4: A success notification will appear in the top-right corner of the screen

3.3.4.13. Update Combined Class


Step 1: Login as School Manager

269
Step 2: Users select the “Lớp ghép” tab in the “Lớp học” section and click on the three-dot
icon on the class they want to update and select the “Chỉnh sửa thông tin” button.

Step 3: Users enter valid information into the form and click the "Cập nhật" button

270
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.14. Delete Combined Class


Step 1: Login as School Manager

271
Step 2: Users select the “Lớp ghép” tab in the “Lớp học” section and click on the three-dot
icon on the class they want to delete and select the "Xóa lớp ghép" button

Step 3: A confirmation dialog appears asking the user to confirm the deletion. The user clicks
the "Xóa lớp học" button to delete the class.

272
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.15. View Class Group


Step 1: Login as School Manager

273
Step 2: Users select the “Nhóm lớp” tab in the “Lớp học” section

Step 3: Users click on any class group to view detailed information.

274
3.3.4.16. Create Class Group
Step 1: Login as School Manager

Step 2: Users select the “Nhóm lớp” tab in the “Lớp học” section and then click the plus-
shaped button.

275
Step 3: Users enter valid information into the form and click the ”Thêm nhóm lớp” button

Step 4: A success notification will appear in the top-right corner of the screen.

276
3.3.4.17. Update Class Group
Step 1: Login as School Manager

Step 2: Users select the “Nhóm lớp” tab in the “Lớp học” section click on the three-dot icon
on the class group they want to update and select the "Chỉnh sửa thông tin" button.

277
Step 3: Users enter valid information into the form and click the "Cập nhật" button

Step 4: A success notification will appear in the top-right corner of the screen.

278
3.3.4.18. Add applied classes
Step 1: Login as School Manager

Step 2: Users select the “Nhóm lớp” tab in the “Lớp học” section click on the three-dot icon
on the class group they want and select the "Thêm lớp áp dụng" button.

279
Step 3: Users select the classes to add to the class group and click the "phân công” button.

Step 4: A success notification will appear in the top-right corner of the screen.

280
3.3.4.19. Delete Class Group
Step 1: Login as School Manager

Step 2: Users select the “Nhóm lớp” tab in the “Lớp học” section click on the three-dot icon
on the class group they want to delete and select the "Xóa nhóm lớp" button.

281
Step 3: A confirmation dialog appears asking the user to confirm the deletion. The
user clicks the "Xóa nhóm lớp" button to delete

3.3.4.20. Apply Curriculum to Class Group


Step 1: Login as School Manager

282
Step 2: Users select the “Nhóm lớp” tab in the “Lớp học” section, click on the three-dot icon
for the desired class group, and then click the “Thêm khung chương trình” button.

Step 3: Users select the curriculum to apply and click on the “Phân công” button.

283
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.21. View Teacher information


Step 1: Login as School Manager

284
Step 2: Users select the “Giáo viên” tab in the “Giảng dạy” section

Step 2: Users click the filter icon button to filter the teacher list by department.

285
Step 3: Users click on any teacher to view detailed information about the teacher.

3.3.4.22. Create Teacher


Step 1: Login as School Manager

286
Step 2: Users select the “Giáo viên” tab in the “Giảng dạy” section and then click the
plus-shaped button.

Step 3: Users enter valid information into the form and click the ”Thêm giáo viên” button

287
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.23. Update Teacher information


Step 1: Login as School Manager

288
Step 2: Users select the “Giáo viên” tab in the “Giảng dạy” section and

Step 3: click on the desired teacher and click “Cập nhật” button.

289
Step 4: Users enter valid information into the form and click the "Cập nhật" button

Step 5: A success notification will appear in the top-right corner of the screen.

290
3.3.4.24. Delete Teacher
Step 1: Login as School Manager

Step 2: Users select the “Giáo viên” tab in the “Giảng dạy” section, and click on the
red trash can icon for the desired teacher.

291
Step 3: A confirmation dialog appears asking the user to confirm the deletion. The user clicks
the "Xóa giáo viên" button to delete the class.

3.3.4.25. View Teacher specialized subjects


Step 1: Login as School Manager

292
Step 2: Users select the “Giáo viên” tab in the “Giảng dạy” section and then click on
any teacher to view detailed information

Step 3: Users select the “Chuyên môn giảng dạy” tab to View Teacher specialized subjects

293
3.3.4.26. Add Teacher specialized subjects
Step 1: Login as School Manager

Step 2: Users select the “Giáo viên” tab in the “Giảng dạy” section and then click on
the desired teacher.

294
Step 3: Users select the “Chuyên môn giảng dạy” and then click the plus-shaped button.

Step 4: Users enter valid information into the form and click the ” Thêm môn học" button

295
Step 5: A success notification will appear in the top-right corner of the screen.

3.3.4.27. Remove Teacher specialized subjects


Step 1: Login as School Manager

296
Step 2: Users select the “Giáo viên” tab in the “Giảng dạy” section and then click on
the desired teacher.

Step 3: Users select the “Chuyên môn giảng dạy” and then click on the red trash can icon for the
desired subject.

297
Step 4: A confirmation dialog appears asking the user to confirm the deletion. The user clicks
the “Xóa chuyên môn" button to delete.

Step 5: A success notification will appear in the top-right corner of the screen.

298
3.3.4.28. View Subject
Step 1: Login as School Manager

Step 2: Users select the “Môn học” tab in the “Giảng dạy” section

299
Step 3: Users click on any subject to view detailed information about the subject.

3.3.4.29. View Curriculum information


Step 1: Login as School Manager

300
Step 2: Users select the “Khung chương trình” tab in the “Tổng quan” section

Step 3: Users click on any curriculum to view detailed information.

301
3.3.4.30. Create Curriculum
Step 1: Login as School Manager

Step 2: Users select the “Khung chương trình” tab in the “Tổng quan” section and then click
the plus-shaped button.

302
Step 3: Users enter valid information into the form and click the "Thêm" button

step 4: A success notification will appear in the top-right corner of the screen.

303
3.3.4.31. Update Curriculum information
Step 1: Login as School Manager

Step 2: Users select the “Khung chương trình” tab in the “Tổng quan” section and then click on the
desired curriculum.

304
Step 3: Users click on the edit button

Step 4: Users enter valid information into the form and click the "Cập nhật" button

305
Step 5: A success notification will appear in the top-right corner of the screen.

3.3.4.32. Delete Curriculum


Step 1: Login as School Manager

306
Step 2: Users select the “Khung chương trình” tab in the “Tổng quan” section and then click on the
trash can icon desired curriculum.

Step 3: A confirmation dialog appears asking the user to confirm the deletion. The
user clicks the "Xóa khung chương trình" button to delete.

307
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.33. View Curriculum’s lessons


Step 1: Login as School Manager

308
Step 2: Users select the “Khung chương trình” tab in the “Tổng quan” section and then click on
desired curriculum.

Step 3: Users select the “Tiết học” tab to view the Curriculum’s lessons.

309
3.3.4.34. Update Curriculum’s lessons
Step 1: Login as School Manager

Step 2: Users select the “Khung chương trình” tab in the “Tổng quan” section and then click on the
desired curriculum.

310
Step 3: In the “Tiết học” tab, users click the “Chỉnh sửa” button

Step 3: Users make the necessary changes and click the save button to save them.

311
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.35. View Department


Step 1: Login as School Manager

312
Step 2: Users select the “Tổ bộ môn” tab in the “Tổng quan” section

Step 3: Users click on any department to view detailed information

313
3.3.4.36. Create Department
Step 1: Login as School Manager

Step 2: Users select the “Tổ bộ môn” tab in the “Tổng quan” section and then click the plus-shaped
button.

314
Step 3: Users have two ways to add subject groups:
1. Select subjects from the list on the right and click the plus (+) button. The
data will be automatically filled in, and users can edit it.
2. Click the plus (+) button and manually enter the data.

Step 4: A confirmation dialog appears asking the user to confirm, Users click the “Xác
nhận” button, A success notification will appear in the top-right corner of the screen.

315
3.3.4.37. Update Department
Step 1: Login as School Manager

Step 2: Users select the “Tổ bộ môn” tab in the “Tổng quan” section and then click on dthe esired
department.

316
Step 3: In the details screen, Users click the edit button.

Step 4: Users enter valid information into the form and click the "Cập nhật TBM" button

317
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.38. Delete Department


Step 1: Login as School Manager

318
Step 2: Users select the “Tổ bộ môn” tab in the “Tổng quan” section, click on the red trash
can desired department.

Step 3: A confirmation dialog appears asking the user to confirm the deletion. The
user clicks the "Xóa tổ bộ môn" button to delete.

319
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.39. Update Department Head Teachers


Step 1: Login as School Manager

320
Step 2: Users select the “Tổ bộ môn” tab in the “Tổng quan” section, click on ”phân công tổ
trưởng” button.

Step 3: Assign teacher for each department and click “Phân công” button.

321
Step 3: A confirmation dialog appears asking the user to confirm, The User clicks the
“ Xác nhận” button.

Step 4: A success notification will appear in the top-right corner of the screen.

322
3.3.4.40. View Room
Step 1: Login as School Manager

Step 2: Users select the “Phòng học” tab in the “Tổng quan” section

323
Step 3: Users click on any room to view detailed information

3.3.4.41. Create Room


Step 1: Login as School Manager

324
Step 2: Users select the “Phòng học” tab in the “Tổng quan” section and then click the plus-
shaped button.

Step 3: Users enter valid information into the form and click the "Thêm phòng học"
button

325
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.42. Update Room


Step 1: Login as School Manager

326
Step 2: Users select the “Phòng học” tab in the “Tổng quan” section, click on the three-dot icon for
the desired room, and then click the “Chỉnh sửa thông tin” button.

Step 3: Users enter valid information into the form and click the "Cập nhật" button

327
Step 4: A success notification will appear in the top-right corner of the screen.

3.3.4.43. Delete Room


Step 1: Login as School Manager

328
Step 2: Users select the “Phòng học” tab in the “Tổng quan” section, click on the three-dot icon for
the desired room, and then click the “Xóa phòng học” button.

Step 3: A confirmation dialog appears asking the user to confirm the deletion. The
user clicks the "Xóa phòng học" button to delete

329
3.3.4.44. View Building
Step 1: Login as School Manager

Step 2: Users select the “Tòa nhà” tab in the “Tổng quan” section.

330
3.3.4.45. Create Building
Step 1: Login as School Manager

Step 2: Users select the “Phòng học” tab in the “Tổng quan” section, and click the plus-shaped
button.

331
Step 3: Users enter valid information into the form and click the “Thêm tòa nhà”
button.

Step 4: A success notification will appear in the top-right corner of the screen.

332
3.3.4.46. Update Building
Step 1: Login as School Manager

Step 2: Users select the “Tòa nhà” tab in the “Tổng quan” section, click on the three-dot icon for the
desired building, and then click the “Chỉnh sửa thông tin” button.

333
Step 3: Users enter valid information into the form and click the "Cập nhật" button

Step 4: A success notification will appear in the top-right corner of the screen.

334
3.3.4.47. Delete Building
Step 1: Login as School Manager

Step 2: Users select the “Tòa nhà” tab in the “Tổng quan” section, click on the three-dot icon for the
desired building, and then click the “Xóa tòa nhà” button.

335
Step 3: A confirmation dialog appears asking the user to confirm the deletion. The
user clicks the “Xóa tòa nhà" button to delete.

3.3.4.48. View Requests


Step 1: Login as School Manager

336
3.3.4.49. Process Requests
Step 1: Login as School Manager

3.3.5. Admin Flow


Role: (System Administrator)

3.3.5.1. View Dashboard


Step 1: Login as System Administrator

337
Step 2: The system redirects to users to the Dashboard page

3.3.5.2. View Users


Step 1: Login as System Administrator

338
Step 2: The user navigates to the “Người dùng” tab, and the user can filter the data
by the filterable tab on the right side of the screen.

3.3.5.3. Process account registration requests


Step 1: Login as System Administrator

339
Step 2: The user navigates to the “Người dùng” tab, and the user can filter the data
with the value “Chờ duyệt” to get the awaiting accounts by the filterable tab on the
right side of the screen.
Step 3: The user clicks the view form button to the right of the user’s status in the
table.

Step 4: After reviewing the form, the user can approve or reject the registration
request.

340
Step 5: The user needs to confirm his/her action before saving the result.

Step 6: The system shows the successful/failed status of the user's action.

341
3.3.5.4. Disable accounts
Step 1: Login as System Administrator

Step 2: The user navigates to the “Người dùng” tab, and the user can filter the data
with the value “Hoạt động” for getting the active accounts by the filterable tab on
the right side of the screen.

342
Step 3: The user clicks the Disable button to the right of the user’s status in the table.

Step 4: The system shows the popup modal for verifying the user's action. The user
clicks on the “Xác nhận” button to approve his/her action.

343
Step 5: The system shows the successful/failed status of the user's action.

3.3.5.5. Recover accounts


Step 1: Login as System Administrator

344
Step 2: The user navigates to the “Người dùng” tab, and the user can filter the data
with the value “Vô hiệu” to get the inactive accounts by the filterable tab on the right
side of the screen.

Step 3: The user clicks the Recover button to the right of the user’s status in the
table.

345
Step 4: The system shows the popup modal for verifying the user's action. User clicks
on the “Xác nhận” button to approve his/her action.

Step 5: The system shows the successful/failed status of the user's action.

346
3.3.5.6. View Schools
Step 1: Login as System Administrator

Step 2: The user navigates to the “Trường học” tab, and the user can filter the data
with multiple values to get the specific accounts by the filterable tab on the right side
of the screen.

347
3.3.5.7. View Subject
Step 1: Login as System Administrator

Step 2: The user navigates to the “Môn học” tab, and the system will show available
subjects created for the system.

348
Step 3: The user can click one specific row of the Subject table to see full details of
the selected subject.

3.3.5.8. Create Subject


Step 1: Login as System Administrator

349
Step 2: The user navigates to the “Môn học” tab, and the system will show available
subjects created for the system. Users can click the Add button on the top right of
the Subject table.

Step 3: The system will show a popup modal for the user to input the required
information for a new subject, after properly inputting every required information,
the system will enable the “Thêm môn học” button to finish the process.

350
Step 4: The system will show a notification announcing the successful/failed status of
the user's action.

3.3.5.9. Update Subject


Step 1: Login as System Administrator

351
Step 2: The user navigates to the “Môn học” tab, and the system will show available
subjects created for the system.

Step 3: The user clicks on one specific subject to see full detailed information on that
subject and the header of the Detail tab includes the Edit button.

352
Step 4: The system shows a popup modal including subject old information and
editable fields. After properly inputting all required information, the system will
enable the “Cập nhật” button to finish the process.

Step 5: The system will show a notification announcing the successful/failed status of
the user's action.

353
3.3.5.10. Delete Subject
Step 1: Login as System Administrator

Step 2: User navigates to the “Môn học” tab, the system will show available subjects
created for the system. User can click the delete button for deleting desired subject.

354
Step 3: The system will show a popup modal to confirm the user's action. Users can
click on the “Xác nhận” button to approve his/her actions.

3.3.5.11. View Region


Step 1: Login as System Administrator

355
Step 2: The user navigates to the “Vùng miền” tab, and the system will show
available regions created for the system.

Step 3: The user clicks one specific province to see districts included in that province.

356
3.3.5.12. Update Region
Step 1: Login as System Administrator

Step 2: The user navigates to the “Vùng miền” tab, and the system will show
available regions created for the system.

357
Step 3: The user clicks on the Add button to modify the created districts of that
province.

Step 4: The user can add/delete/update the selected information of that province
and included districts. After finishing the update actions, the user clicks the “Cập
nhật” button to save his/her action.

358
Step 5: The system shows a confirm modal to assure the user's actions. Users can
click the “Xác nhận” button to complete the action.

Step 6: The system will show a notification announcing the successful/failed status of
the user's action.

359
3.3.5.13. View School Year
Step 1: Login as System Administrator

Step 2: The user navigates to the “Năm học” tab, and the system will show available
school years created for the system.

360
3.3.5.14. Create School Year
Step 1: Login as System Administrator

Step 2: The user navigates to the “Năm học” tab, and the system will show available
school years created for the system. After finishing inputting the required
information, the user can click on the “Thêm mới” to complete creating a new school
year.

361
Step 3: The system will show a notification announcing the successful/failed status of
the user's action.

3.3.5.15. Update School Year


Step 1: Login as System Administrator

362
Step 2: The user navigates to the “Năm học” tab, and the system will show available
school years created for the system. The user clicks on the vertically-aligned-circles
button to show the function menu.

Step 3: The system shows available features belonging to the selected school year for
a user to pick, the user clicks on the “Cập nhật thông tin” option to modify the
school-year that has not been published (only internal school years are editable).

363
Step 4: The user changes the information that needs to be modified properly, then
clicks on the “Xác nhận” button to finish the modifying process.

Step 5: The system will show a notification announcing the successful/failed status of
the user's action.

364
3.3.5.16. Publish School Year
Step 1: Login as System Administrator

Step 2: The user navigates to the “Năm học” tab, and the system will show available
school years created for the system. The user clicks on the vertically aligned circles
button to show the function menu.

365
Step 3: The system shows available features belonging to the selected school year for
the user to pick, user clicks on the “Công bố năm học” option to publish a school year
that has not been published (only internal school years can be published).

Step 4: The system shows a pop-up modal confirming the user’s action. The user
clicks on the “Xác nhận” button to finish his/her action, and the “Hủy” button to
canceling his/her action.

366
Step 5: The system will show a notification announcing the successful/failed status of
the user's action.

3.3.5.17. Revoke School Year


Step 1: Login as System Administrator

367
Step 2: The user navigates to the “Năm học” tab, and the system will show available
school years created for the system. The user clicks on the vertically aligned circles
button to show the function menu.

Step 3: The system shows available features belonging to the selected school year for
the user to pick, user clicks on the “Thu hồi năm học” option to revoke a published
school year (only published school years can be revoked).

368
Step 4: The system shows a pop-up modal confirming the user’s action. The user
clicks on the “Xác nhận” button to finish his/her action, and the “Hủy” button to
canceling his/her action.

Step 5: The system will show a notification announcing the successful/failed status of
the user's action.

369
3.3.6. Teacher Flow
3.3.6.1 View proposed teaching schedule
Step 1: User login as teacher role

Step 2: Click on menu “Lịch dạy học dự kiến”

370
3.3.6.2 View the published teacher timetable
Step 1: User login as teacher

Step 2: Click on the menu “Thời khóa biểu chính thức”

Step 3: Select a date, grade, and class to view teacher timetable details

3.3.6.3 Send application


Step 1: User login as teacher

Step 2: Choose a menu “Gửi biểu mẫu”

371
Step 3: Fill out the information in the application

Step 4: Click the button “Gửi đơn” to submit an application

372

You might also like