3813 FA24SE078 GFA69 FA24SE078 LamHuuKhanhPhuong Report7 Final Project Report
3813 FA24SE078 GFA69 FA24SE078 LamHuuKhanhPhuong Report7 Final Project Report
FPT UNIVERSITY
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
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.
BA Business Analysis
BR Business Rule
PM Project Manager
UC Use Case
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
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:
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
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
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.
Est. Effort
Complexit
# WBS Item (man-
y
days)
1 Initiation 17
2 Planning 30
3 Analysis 21
6
4 Training 10
5. Implementation 98
7
5.3.1-2 Update the school’s license Simple 4
6 Testing 36
7 Integration 7
8
1.2 Project Objectives
Test No. of % of
# Testing Stage Notes
Coverage Defects Defect
1 Reviewing 100% 20 45%
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.
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
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.
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.
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.
15
2.2 Use Cases
2.2.1 Diagram(s)
2.2.2 Descriptions
ID Use Case Actors Use Case Description
16
Allows an admin to modify the details of
05 Update Subject
an existing subject in the system
17
Teachers submit forms for planned
22 Submit Absence Form
absences.
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.
System
34 Push Notification Push notification to the user.
Handler
18
Exports schedule specific to a
38 View Teacher Schedule
department.
19
Updates the details of an existing room,
55 Update Room Information
like capacity.
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.
21
Assign Teacher to Teacher Assign teachers to specific groups for
89
Group better coordination.
22
ID and Name: UC - 01 Login
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.
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
23
ID and Name: UC - 02 Logout
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.
Priority: High
Assumptions: N/A
24
ID and Name: UC - 03 View Profile Information
Description: Displays the user’s profile information such as name, email, and role.
Priority: Medium
Assumptions: N/A
25
ID and Name: UC - 04 Add Subject
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.
Priority: Medium
Assumptions: N/A
26
ID and Name: UC - 05 Update Subject
Description: Allows an admin to modify the details of an existing subject in the system
Pre-conditions: PRE-1: The user must have permission to update the Subject.
Priority: Medium
27
ID and Name: UC - 06 Delete Subject
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.
Priority: Medium
Assumptions: N/A
28
ID and Name: UC - 07 Add New School
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.
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.
Priority: High
29
Frequency of Use: Occasionally
30
ID and Name: UC - 08 Update School Information
Trigger: The system admin receives a request to update school information from
the school manager.
Exceptions: 1-EF: The system fails to save the updated school details due to validation
errors or system failure.
Priority: High
31
ID and Name: UC - 09 Inactive School
Priority: Medium
Assumptions: N/A
32
ID and Name: UC - 10 View School and Region Details
Description: Admin or authorized user views details of a specific school and its assigned
region.
Exceptions: 1-EF: The system fails to retrieve the school or region details.
Priority: Medium
33
ID and Name: UC - 11 Add Regional Data
Exceptions: 1-EF: The system fails to save the regional data due to validation errors or
system failure.
Priority: Medium
Assumptions: Admin has all the necessary information to add the region.
34
ID and Name: UC - 12 Update Regional Data
Exceptions: 1-EF: The system fails to save the updated regional details due to
validation errors or system failure.
Priority: High
35
ID and Name: UC - 13 Assign School to Region
Priority: High
36
ID and Name: UC - 14 View Schools and Regional Reports
Exceptions: 1-EF: The system fails to get the report due to a data or system error.
Priority: Medium
Other Information: Reports can be exported in various formats (e.g., PDF, Excel).
37
ID and Name: UC - 15 Approve Registration Request
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.
Exceptions: 1-EF: The system fails to update the account due to validation or system
errors.
Priority: Medium
38
ID and Name: UC - 16 View Subject
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.
Post-conditions: POST-1: The system displays the details of the selected subject.
Exceptions: 1-EF: The system fails to create the account due to validation or system
errors.
Priority: High
39
ID and Name: UC - 17 View Account Information
Description: Admin views a list of all user accounts within the system, including their
roles and associated information.
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
40
ID and Name: UC - 18 Add New School Year
Exceptions: 1-EF: A system error (e.g., database issue, network failure) prevents the
constraint from being saved.
Priority: High
Assumptions: N/A
41
ID and Name: UC - 19 Update School Year
Description: Allows an admin to modify the details of an existing school year in the
system
Post-conditions: POST-1: The selected school year's details are successfully updated
Exceptions: 1-EF: The system fails to save the updated constraint due to validation
errors or system failure.
Priority: High
42
ID and Name: UC - 20 Public School Year
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.
Post-conditions: POST-1: The school year is published, and its details become visible to
relevant stakeholders in the system.
Exceptions: 1-EF: The system fails to deactivate the constraint due to a system error.
Priority: BR-13
Assumptions: The school year details are validated and reviewed before the publication
process.
43
ID and Name: UC - 21 Submit Request 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
44
Assumptions: Users provide constructive feedback for system improvements.
45
ID and Name: UC - 22 Submit Absence Form
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
46
Other Information: Absence data is used to adjust timetables.
47
ID and Name: UC - 23 Export Class Schedule
Description: A teacher exports the schedule of a specific class or class for external
viewing or printing.
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.
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.
Exceptions: 1-EF: The system fails to export the schedule due to a system error.
Priority: Medium
Other Information: Exported schedules can be used for distribution or archival purposes.
48
ID and Name: UC - 24 Export Teacher Schedule
Trigger: A teacher indicates that he/she wants to save their timetable for offline
usage or print out the timetable.
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.
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
49
Business Rules: BR-13, BR-18, BR-39, BR-40
Assumptions: N/A
50
ID and Name: UC - 25 View Class Schedule
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.
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.
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
Assumptions: N/A
51
ID and Name: UC - 26 View Teacher Schedule
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.
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
52
Business Rules: BR-10, BR-13, BR-18
Assumptions: N/A
53
ID and Name: UC - 27 View Teacher List
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
54
Assumptions: N/A
Trigger: The Teacher Department Head indicates that he/she wants to view one
teacher’s information in detail.
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
Assumptions: 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.
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
57
Other Information: N/A
Assumptions: N/A
Trigger: The Teacher Department Head indicates that he/she needs to check on
the information of the Department’s schedule.
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.
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
Assumptions: N/A
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.
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.
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
Assumptions: N/A
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.
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
Assumptions: N/A
61
ID and Name: UC - 33 Export Class Schedule
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,...
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
Assumptions: N/A
63
ID and Name: UC - 34 Push Notification
Description: This feature allows the system to automatically send push notifications to
users when specific events occur, such as scheduling updates, reminders, or
alerts.
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.
Priority: High
64
Assumptions: N/A
Trigger: The user wants to view an overview of data for all teachers.
Exceptions: 1-EF. If there are technical issues: server, or networking, the system
displays an alert message.
Priority: Medium
65
Other Information: N/A
Assumptions: 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.
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
Assumptions: N/A
67
ID and Name: UC - 37 Assign 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
Assumptions: N/A
Trigger: A teacher indicates that he/she wants to look up their own timetable in
detail.
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
Assumptions: 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
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
71
Business Rules: BR-13, BR-21, BR-26, BR-44
Assumptions: 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.
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
Assumptions: N/A
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.
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.
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
Assumptions: N/A
Description: Allows the School Manager add subjects that teachers can teach
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
Assumptions: N/A
Description: Allows the School Manager to create new curriculum in the 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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
77
Pre-conditions: PRE-01. User is logged in to the system as School manager (appropriate
authorization).
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.
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
78
Business Rules: BR-13, BR-26, BR-36
Assumptions: 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.
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
Assumptions: 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.
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.
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
Assumptions: 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.
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.
Exceptions: 1-EF. If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: 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
84
Other Information: N/A
Assumptions: 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
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
Assumptions: N/A
86
ID and Name: UC - 50 Update Timetable
Description: Allows the School Manager to modify an existing timetable based on new
information, constraints, or scheduling changes.
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.
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).
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
87
Frequency of Use: Occasionally
Assumptions: N/A
88
ID and Name: UC - 51 Manual adjust period
Description: Allows the School Manager to manually adjust individual periods within
the timetable.
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.
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: High
89
Other Information: N/A
Assumptions: N/A
90
ID and Name: UC - 52 Export Schedule
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.
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: High
91
Assumptions: N/A
92
ID and Name: UC - 53 Import Room File
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.
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):
93
Priority: Medium
Assumptions: N/A
94
ID and Name: UC - 54 Add 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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: High
95
Assumptions: N/A
96
ID and Name: UC - 55 Update 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.
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
97
Other Information: N/A
Assumptions: N/A
98
ID and Name: UC - 56 Delete Room
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.
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
99
Assumptions: N/A
100
ID and Name: UC - 57 View room details
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.
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
101
Other Information: N/A
Assumptions: N/A
102
ID and Name: UC - 58 Update Curriculum
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.
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
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
103
ID and Name: UC - 59 Delete Curriculum
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.
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
104
ID and Name: UC - 60 View Curriculum
Description: Allows the School Manager to view details of the existing curriculums in
the system.
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
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
105
ID and Name: UC - 61 Add curriculum detail
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
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
106
ID and Name: UC - 62 Update Curriculum detail
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
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
107
Assumptions: N/A
108
ID and Name: UC - 63 View Curriculum detail
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
109
ID and Name: UC - 64 Import Classes File
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.
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
110
Business Rules: BR-13, BR-21, BR-42, BR-43, BR-44
Assumptions: N/A
111
ID and Name: UC - 65 Add New Class
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: High
112
Assumptions: 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
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
113
ID and Name: UC - 67 Update Class Information
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
114
Other Information: N/A
Assumptions: N/A
115
ID and Name: UC - 68 Inactive Class
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.
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
116
Business Rules: BR-13, BR-26, BR-28, BR-54
Assumptions: N/A
117
ID and Name: UC - 69 Assign Teachers to Class
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.
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
Assumptions:
119
ID and Name: UC - 70 View Class Timetable
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
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
Assumptions: N/A
120
ID and Name: UC - 71 Create Combination Class
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: High
Assumptions: The system already supports managing individual classes, teachers, and
rooms.
121
ID and Name: UC - 72 Update 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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: High
Assumptions: N/A
122
ID and Name: UC - 73 Delete Combination Class
Description: Allows the School Manager to remove an existing combination class from
the system
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.
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
123
ID and Name: UC - 74 View Combination Class
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
Exceptions: 1-EF: If there are technical issues: server, networking, the system displays
an alert message.
Priority: Medium
Assumptions: N/A
124
ID and Name: UC - 75 Add new building
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
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.
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
125
Assumptions: N/A
126
ID and Name: UC - 76 Update Building Information
Trigger: The school manager begins the update process by selecting an existing
building and choosing to modify its details.
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
127
Business Rules: BR-13, BR-21, BR-26
Assumptions: N/A
128
ID and Name: UC - 77 Inactive Building
Trigger: The school manager selects a building and initiates the deactivation process.
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
129
Other Information: N/A
Assumptions: N/A
130
ID and Name: UC - 78 View Building Details
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.
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,..)
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
Assumptions: N/A
131
ID and Name: UC - 79 View Building List
Description: This feature allows a school manager to view a list of all the buildings within
the school’s infrastructure.
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
Assumptions: N/A
132
ID and Name: UC - 80 Import Building File
Description: This feature allows a school manager to upload and import a file containing
building information
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
133
Assumptions: N/A
134
ID and Name: UC - 81 Add new class group
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.
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
135
Other Information: N/A
Assumptions: N/A
136
ID and Name: UC-82 Update Class Group Information
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.
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
Assumptions: N/A
138
ID and Name: UC - 83 Assign Class to Class Group
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.
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
Assumptions: N/A
140
ID and Name: UC - 84 View Class Group Details
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.
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.
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
Assumptions: N/A
141
ID and Name: UC - 85 View Class Group List
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.
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
Assumptions: N/A
142
143
ID and Name: UC - 86 Inactive Class Group
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.
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
144
Business Rules: BR-13, BR-26, BR-28
Assumptions: N/A
145
ID and Name: UC - 87 Create Teacher Group
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.
Post-conditions: POST-01. The new teacher group is successfully created and stored in the
system.
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
146
Assumptions: N/A
147
ID and Name: UC - 88 Update Teacher Group
Description: This feature allows the school manager to update the details of an existing
teacher group.
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
148
Business Rules: BR-13, BR-21, BR-26
Assumptions: N/A
149
ID and Name: UC - 89 Assign Teacher to Teacher Group
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.
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.
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
Assumptions: N/A
151
ID and Name: UC - 90 View Teacher Groups
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.
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.
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
Assumptions: N/A
152
ID and Name: UC - 91 View Teacher Group Detail
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.
Post-conditions: POST-01. The system displays the detailed information of the selected
teacher group.
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
Assumptions: N/A
153
ID and Name: UC - 92 Inactive Teacher Group
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.
Post-conditions: POST-01. The teacher group is marked as inactive and is no longer available
for scheduling or assign teacher.
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
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
156
157
3.1.1.4 <System Admin> System Admin Application Screen Flow
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.
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.
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
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.
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-04 There should be a clear warning when something goes wrong with the server.
Admin Interface
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.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
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,
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 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
169
Package Descriptions
No Package Description
01 Controller Interacts with the Service Layer to handle HTTP requests and send appropriate
responses.
03 Services Contains business logic and interacts with the Repository Layer
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.
13 Utils Utility functions that provide common functionality across the system.
14 Repository Responsible for data access, interacting with the database through EntityModels
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.
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.
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.
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
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
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
184
3.3.3 GetTeacherAssignmentDetail Sequence Diagram
3.5 AssignTeacherDepartmentHead
3.5.1 AssignTeacherDepartmentHead Class Diagram
185
3.5.2 AssignTeacherDepartmentHead Activity Diagram
186
3.6 Add Teachable Subject
3.6.1 AddTeachableSubject Class Diagram
187
3.6.3 AddTeachableSubject Sequence Diagram
188
3.8 Update Teacher
3.8.1 UpdateTeacher Class Diagram
189
3.8.2 UpdateTeacher Activity 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
194
3.10.3 Get Curriculum Sequence Diagram
195
3.11.2 Assign Student Class To Class Group Activity Diagram
196
3.12 AssignCurriculumToClassGroup
3.12.1 AssignCurriculumToClassGroup Class Diagram
197
3.12.2 AssignCurriculumToClassGroup Activity 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
201
3.14.2 Get Teacher Assignment Activity 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
208
3.17.2 Create Student Class Activity Diagram
209
3.17.3 Create Student Class Sequence 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
216
3.20.3 Get Class Combination Sequence 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
220
3.23 View Subject
3.23.1 ViewSubject Class 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
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
231
3.27.3 View Building Sequence Diagram
232
3.28.2 AddBuildings Activity Diagram
233
3.28.3 AddBuildings Sequence 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
● 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
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
240
Postman
Postman,
Technologies Postman-win64-
Unit Test Microsoft Office
CompanCompany, 1.11.0, Microsoft
Excel
Microsoft Office Excel 2019
Create unit test document and execute test case 04/11/2024 20/11/2024
Report_5_Unit_Test Report_5_Test_Report
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
Operating System Window 10/11, other open The operating system for
sources (Linux, Ubuntu) building production
Database PostgreSQL
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
243
2.3.2 Setup Backend API
1. Extracting: FA24SE078_LamHuuKhanhPhuong_Schedulify_System_API.zip
244
3. Config your database connection
4. Run project
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.
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
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
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
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
254
Step 2: The system redirects users to the Homepage with a success notification
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
256
3.3.4.4. Update Published Timetable
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.
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.
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.
266
Step 2: Users select the “Lớp ghép” tab in the “Lớp học” section.
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
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.
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.
273
Step 2: Users select the “Nhóm lớp” tab in the “Lớp học” section
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
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.
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.
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.
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.
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.
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.
300
Step 2: Users select the “Khung chương trình” tab in the “Tổng quan” section
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.
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.
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.
312
Step 2: Users select the “Tổ bộ môn” tab in the “Tổng quan” section
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.
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.
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
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.
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.
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.
336
3.3.4.49. Process Requests
Step 1: Login as School Manager
337
Step 2: The system redirects to users to the Dashboard page
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.
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.
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.
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.
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.
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.
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.
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
370
3.3.6.2 View the published teacher timetable
Step 1: User login as teacher
Step 3: Select a date, grade, and class to view teacher timetable details
371
Step 3: Fill out the information in the application
372