0% found this document useful (0 votes)
14 views62 pages

SoftEngineer 1

This document is a Software Requirements Specification for a project at the Ho Chi Minh City University of Technology. It outlines the roles of team members, tasks related to requirement elicitation, use-case diagrams, and implementation strategies. The document serves as a comprehensive guide for the software engineering assignment for the academic year 2024-2025.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views62 pages

SoftEngineer 1

This document is a Software Requirements Specification for a project at the Ho Chi Minh City University of Technology. It outlines the roles of team members, tasks related to requirement elicitation, use-case diagrams, and implementation strategies. The document serves as a comprehensive guide for the software engineering assignment for the academic year 2024-2025.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

VIETNAM NATIONAL UNIVERSITY, HO CHI MINH CITY

UNIVERSITY OF TECHNOLOGY
FACULTY OF COMPUTER SCIENCE AND ENGINEERING

SOFTWARE ENGINEERING (CO3001)

Software Requirements Specification


for HCMUT - SPSO

Instructor(s):
Trương Tuấn Anh , CSE - HCMUT

Team name:
Class CC03 - Group CC03-01 - Semester 241

Student(s):
Cao Ngọc Lâm - 2252419 - Team Leader
Đặng Minh Khang - 2252287
Đặng Ngọc Phú - 2252617
Đoàn Anh Quang - 2252666

HO CHI MINH CITY, SEPTEMBER 2024


Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

TABLE OF MEMBER ROLES

No. Member Student’s ID Role Contribution


1 Cao Ngoc Lâm 2252419 Team Leader 100%
Requirements Specification
Use-Case analysis
Sequence Diagram
Figma Design
Front-end Development
Latex Edit
2 Đặng Minh Khang 2252287 Team Member 100%
Use-Case Analysis
Figma Design
Co-Setup Repository
Component Diagram
Back-end Development
3 Đặng Ngọc Phú 2252617 Team Member 100%
Use-Case analysis
Sequence Diagram
Figma Design
Deployment Diagram
Back-end Development
Latex Edit
4 Đoàn Anh Quang 2252666 Team Member 100%
Use-Case analysis
Activity Diagram
Database Design
Make Usability Test
Back-end Development

Assignment for Software Engineering - Academic year 2024 - 2025 Page 1/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Contents
1 Task 1: Requirement eliciation (1.1, 1.2) 4
1.1 Domain Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Stakeholders and Needs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Benefits of the System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5 Non - Functional Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2 Use-case Diagram (1.3) 7


2.1 Use-case Diagram for the Whole System . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Use-case Diagram for Printing Service Module . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 The Details of Usecases in Printing Service Module . . . . . . . . . . . . . . . . . . . . . . 8

3 Task 2: Requirement eliciation (2.1, 2.2, 2.3, 2.4) 16


3.1 Activity Diagram (2.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Sequence Diagram (2.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Class Diagram (2.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4 User Interface (2.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.1 Pre log in Homepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.2 Log in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.4.3 Log in as student . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.4 Log in as Administrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.5 Homepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.6 Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4.7 Document Selection/Upload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.8 Document Selected/Uploaded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4.9 Document Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.10 Printing Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.11 Printing Order Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5 Admin Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.1 Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5.2 Printer Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5.3 File management in printer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

4 Task 3: Requirement eliciation (3.1, 3.2) 34


4.1 Layered Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.1 Box-Line Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.2 Deployment Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Presentation Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.3 Data Storage Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.4 API Accessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Component Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5 Task 4: Implementation - Sprint 1 43


5.1 Github Setting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 README intialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Usability Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.3.1 Recruiting Test Participants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Assignment for Software Engineering - Academic year 2024 - 2025 Page 2/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

5.3.2 Task Definition Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45


5.3.3 Defining the Testing Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.3.4 Testing Approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3.5 Testing method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3.6 Conducting the Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.3.6.a Step 1: Prepare for Testing . . . . . . . . . . . . . . . . . . . . . . 46
5.3.6.b Step 2: Conduct Testing with Participants . . . . . . . . . . . . . . 47
5.3.6.c Step 3: Collect Feedback . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.6.d Step 4: Refine MVP1 Based on Feedback . . . . . . . . . . . . . . 47
5.3.6.e Step 5: Repeat Testing as Needed . . . . . . . . . . . . . . . . . . 47
5.3.7 Collecting Feedback and Reporting Results . . . . . . . . . . . . . . . . . . . . . . 47

6 Task 5: Implementation - Sprint 2 49


6.1 Set Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.2 User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.3 Lesson Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Assignment for Software Engineering - Academic year 2024 - 2025 Page 3/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

1 Task 1: Requirement eliciation (1.1, 1.2)


1.1 Domain Context
The HCMUT Student Smart Printing Service (HCMUT_SSPS) is an advanced printing solution
specifically designed to address the document printing needs of students at Ho Chi Minh City
University of Technology. The system operates via a distributed network of printers located across the
university’s multiple campuses, with each printer assigned a unique ID and location details (campus,
building, room number). This setup provides students with convenient access to printers, enabling them
to upload documents, select specific printers, and configure print settings such as paper size, number of
copies, and one- or double-sided printing.
To ensure security and ease of use, HCMUT_SSPS is integrated with the university’s Single Sign-On
(SSO) authentication system, ensuring that only authorized students can access the service. The system
also allocates a quota of free A4 pages to each student per semester, and students can purchase
additional pages via an integrated online payment platform like BKPay (the payment platform of
HCMUT). The system’s tracking mechanism supports fair use by monitoring students’ printing
activities and maintaining a balance of available pages.
For system management, the Student Printing Service Officers (SPSO) have access to a range of
administrative tools, allowing them to manage printers, configure system settings, and generate detailed
reports. The system logs all printing activities, including student IDs, file names, and printing times,
providing transparency and accountability. These logs, along with automated monthly and annual
reports, allow SPSOs and the university administration to efficiently monitor resource usage and
optimize the printing infrastructure.
In terms of scalability, HCMUT_SSPS is designed to adapt to future growth, with support for the
addition of new printers and customization of accepted file types. The system could potentially be
integrated with other university systems, such as a learning management system (LMS), enhancing the
academic experience. By providing a reliable, accessible, and efficient printing service, HCMUT_SSPS
ensures that students can meet their academic needs while allowing the university to manage resources
effectively.

1.2 Stakeholders and Needs


The HCMUT Student Smart Printing Service (HCMUT_SSPS) serves three primary stakeholders:
students, Student Printing Service Officers (SPSO), and the Information Technology (IT) Department,
each with unique needs that the system addresses effectively.

1. Students: Students are the main users of HCMUT_SSPS, requiring convenient access to printers
across the university’s campuses. They benefit from a system that allows them to select the closest
available printer and configure their print jobs according to their specific requirements, including
paper size and printing options (e.g., single or double-sided).
Students are also given a quota of free A4 pages each semester and can easily track their usage
through the system. If they exceed their quota, the integrated online payment option (e.g., BKPay)
enables them to purchase additional pages seamlessly. Transparency in usage is critical, so the
system provides detailed logs of their printing history, helping them manage their printing activities
efficiently.

2. Student Printing Service Officers (SPSO): Student Printing Service Officers (SPSO) are
responsible for the operational management of HCMUT_SSPS. They need comprehensive tools for

Assignment for Software Engineering - Academic year 2024 - 2025 Page 4/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

printer management, allowing them to add or disable printers as necessary and monitor their status
in real-time.
SPSOs are also tasked with configuring system settings based on university policies and student
needs, such as adjusting the default number of pages allocated per semester. Access to detailed logs
of all printing activities is essential for tracking usage patterns, identifying misuse, and generating
reports on overall system performance.
The ability to monitor printer health and respond promptly to issues ensures that the printing
service runs smoothly, minimizing disruptions for students. SPSOs are also tasked with overseeing
the timely generation and submission of semester and annual logs. This crucial responsibility ensures
the system’s long-term viability, facilitates data-driven decision-making, and supports continuous
improvement of the HCMUT_SSPS.

3. Information Technology Department: The Information Technology (IT) Department plays a


crucial role in the implementation and maintenance of HCMUT_SSPS. Their needs involve ensuring
the system’s technical stability and security, integrating it with existing university systems (such
as the SSO), and providing ongoing support for users and administrators.
The IT department must also ensure that the system is scalable and can accommodate future
upgrades or changes in technology. Access to data analytics and usage reports is vital for trou-
bleshooting and enhancing system performance. In addition, they ensure secure and efficient pay-
ment processing for students purchasing additional printing pages. BKPay also requires access to
transaction data to support reporting and compliance with financial regulations.

By addressing the diverse needs of each stakeholder, HCMUT_SSPS fosters a user-centric environment
that enhances printing efficiency, accountability, and satisfaction across the university.

1.3 Benefits of the System


1. Students: Students can conveniently print documents from everywhere across two campuses, simply
by uploading files onto the system and choosing the nearest printer. Additionally, the integration
with online payment systems like BKPay allow the students better control for their expenses.

2. Printing Service Provider: Printing Service provider benefits economically through offering their
services to students. They also can increase brand recognition, potentially attract more clients and
customers.

3. Student Printing Service Officer (SPSO): They have centralized control over the entire system,
thereby managing printers across two campuses effectively. Thanks to printing logs and detailed
reports, SPSO can monitor student activity and resolve issues more efficiently.

4. Online payment systems: Online payment systems got a new stream of transactions from stu-
dents, which increased their revenue. In addition, the partnership with universities helps them to
strengthen their reputation and expand their market expenses.

5. Ho Chi Minh University of Technology: Enhancing the educational environment for students
and strengthening the university’s reputation for potential students.

1.4 Functional Requirements


1. For Students:

(a) The system must allow students to log in using the university’s Single Sign-On (SSO) system.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 5/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

(b) Students must be able to upload documents to the system for printing.
(c) The system must allow students to select a specific printer based on location and printer ID.
(d) Students must be able to configure print settings, such as paper size, number of copies, and
print type (single- or double-sided).
(e) The system must provide students with detailed logs of their printing activities, including the
number of pages used, time of print, and file names.
(f) Students must be able to monitor their remaining print quota and purchase additional pages
through BKPay.
(g) The system should notify students when their print job is complete or if any issues occur.
(h) Students should have the option to cancel a print job before printing begins.

2. For Student Printing Service Officers (SPSO):

(a) The system must allow SPSOs to monitor all printer statuses in real-time.
(b) SPSOs must be able to add, configure, or disable printers across the university’s campuses.
(c) The system must provide SPSOs with tools to configure student print quotas each semester.
(d) SPSOs must be able to generate detailed monthly and annual reports of printer usage, student
activity, and system performance.
(e) The system must allow SPSOs to track all printing activity logs, including student ID, file
details, and timestamps.

3. For the IT Department:

(a) The IT department must ensure the system integrates seamlessly with the university’s SSO
authentication platform.
(b) IT must ensure secure data transmission between students, SPSOs, and BKPay.
(c) The system must enable IT to monitor and optimize system performance through data ana-
lytics and logs.
(d) IT should have administrative control over security features, ensuring user data protection and
compliance with university policies.
(e) The system must notify students and BKPay of successful transactions and quota updates.

1.5 Non - Functional Requirements


1. Localization: The system shall support multiple languages, with Vietnamese as the primary lan-
guage, and be easily adaptable to include more languages as needed by the university.

2. Accessibility: The system shall be accessible through a web-based application by any browsers,
ensuring the accessibility for all users.

3. Security: The system shall ensure secure authentication and data transmission, complying with
the university’s security policies.

4. Integration: The system shall integrate seamlessly with the HCMUT_SSO authentication service
and the BKPay online payment system.

5. Usability: The system shall provide an intuitive and user-friendly interface for both students and
the SPSO. The user interface shall be intuitive and accessible, allowing users to complete tasks like
uploading documents and managing print settings.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 6/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

6. Availability: The system shall have high availability and reliability, with minimal downtime to
support continuous printing services.

7. Performance: The system is designed to efficiently manage simultaneous print requests from
up to 1000 students across different printers, ensuring that there is no significant performance
degradation. It will maintain optimal performance even under heavy concurrent usage, with print
delays not exceeding 2 seconds.

8. Responsiveness: The system shall provide quick response times, with print jobs being processed
promptly after submission.

9. Data Accuracy: The system shall ensure data accuracy and consistency in logging and reporting
features.

10. Maintainability: The system shall be maintainable and extensible, allowing for future updates or
integration with additional services.

11. Privacy Compliance: The system shall comply with relevant data protection regulations, ensuring
the privacy and confidentiality of user data. It shall also comply with any accessibility standards
applicable to educational software within the university.

2 Use-case Diagram (1.3)


2.1 Use-case Diagram for the Whole System

Figure 1: Use-case Diagram for the Whole System

Assignment for Software Engineering - Academic year 2024 - 2025 Page 7/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

2.2 Use-case Diagram for Printing Service Module

Figure 2: Use-case Diagram for Printing Service Module

2.3 The Details of Usecases in Printing Service Module


1. Usecase Print document

Assignment for Software Engineering - Academic year 2024 - 2025 Page 8/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

ID and Name UC-1 Print Document


Date Created 29th September, 2024
Primary Actor Student
Secondary Actor Printer
The student selects and prints a document via the smart printing
Description system. The system allows the student to upload the file, format it,
choose the printer, and send it for printing.
Trigger The student selects the option to print a document
PRE-1. The student is authenticated.
Preconditions PRE-2. A printer is available in the system.
PRE-3. The file is ready to be printed.
POST-1. The document is successfully sent to the printer.
Postconditions POST-2. The printer receives the job and starts the printing pro-
cess.
1.0. Print Documents
(a) The student selects “Print Document”.
(b) The system prompts to upload the file.
(c) The system shows file preview and formatting options.
Normal Flow
(d) The student chooses a printer.
(e) The system processes the print request.
(f) System queues the document for printing.

1.1. Invalid file format, printers unavailable


(a) System shows an error message and requests a supported file.
Alternative Flows
(b) System notifies the students that no printers are available.

1.1 E1. Printer error


Exceptions System displays an error message and prompts the student to try
again later.

2. Usecase View printing status

Assignment for Software Engineering - Academic year 2024 - 2025 Page 9/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

ID and Name UC-2 View Printing Status


Date Created 29th September, 2024
Primary Actor Student
Secondary Actor Print Management System
The student checks the status of their print job (e.g., in queue.
Description
printing, completed).
Trigger The student requests to view the print job status
PRE-1. The student is authenticated.
Preconditions
PRE-2. There is an active print job in the system.
POST-1. The student views the real-time status of the print job.
Postconditions
POST-2. Necessary actions (e,g., cancel, wait) are considered.
2.0 View printing status
(a) The student selects “View Printing Status”.
Normal Flow (b) The system displays the current status of the print job.
(c) The student reviews the information.

2.1 No active job


(a) System informs the student that there are no active print jobs.
Alternative Flows (b) System notifies the student if a print job is done, there is noth-
ing to view.

2.0 E1. System error in retrieving


Exceptions System displays an error message and asks the student to try again
later.

3. Usecase Cancel printing session

Assignment for Software Engineering - Academic year 2024 - 2025 Page 10/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

ID and Name UC-3 Cancel Printing Session


Date Created 29th September, 2024
Primary Actor Student
Secondary Actor Print Management System
The student cancels an active print session that they previously
Description
initiated.
Trigger The students requests to cancel a printing job.
PRE-1. The student is authenticated.
Preconditions
PRE-2. The print job is currently in progress.
POST-1. The print job is successfully canceled.
Postconditions
POST-2. The print queue is updated to reflect the cancellation.
3.0. Cancel Printing Session
(a) The student selects “Cancel Printing Session”.
(b) Student selects the job to cancel.
Normal Flow
(c) The system confirms the request.
(d) The system cancels the print job.

3.1. Print job too far along


Alternative Flows System notifies the student “Cannot proceed cancellation.The print
job is already completed or in the final stages.”
3.1E1. System error on canceling the print job.
Exceptions 3.1E2. System cannot interfere the process and asks the student to
try again later.

4. Usecase Upload file

Assignment for Software Engineering - Academic year 2024 - 2025 Page 11/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

ID and Name UC-4 Upload File


Date Created 29th September, 2024
Primary Actor Student
Secondary Actor SPSO File Storage System
The student uploads a document to the system to be printed. The
Description
system accepts the file and processes it for preview
Trigger The student selects the option to upload a file for printing
PRE-1. The student is authenticated.
Preconditions
PRE-2. The file is in an acceptable format.
POST-1. The file is successfully uploaded.
Postconditions
POST-2. The file is available for preview and formatting.
4.0 Upload file to the system
(a) The student selects “Upload File”.
(b) The system prompts the student to select a file.
Normal Flow
(c) The student uploads the file.
(d) The system confirms successful upload and prepares a preview.

4.1. Invalid file or exceeds the allowed size


Alternative Flows System requires the student to reupload the correct file type or
smaller file size.
4.1 E1. System error during file upload. Prompt to ask the student
Exceptions
to try again later.

5. Usecase Format and View file preview

Assignment for Software Engineering - Academic year 2024 - 2025 Page 12/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

ID and Name UC-5 Format and view file preview


Date Created 29th September, 2024
Primary Actor Student
Secondary Actor Print Management System
The student formats the document (e.g., adjusts margins, paper
Description
size, font size) and previews the file before printing.
The student selects a document for formatting and initiates the
Trigger
preview process before printing.
PRE-1. The student is authenticated.
PRE-2. The student must have uploaded a valid document.
Preconditions
PRE-3. The system must support the document format for preview
(e.g., PDF, DOCX).
POST-1. The student views the formatted document and approves
or cancels the print job.
POST-2. The system saves any formatting changes made by the
Postconditions
student.
POST-3. If the job is approved, the document is prepared for print-
ing.
5.0 Format and view file preview
(a) Student selects and previews a document.
(b) Adjusts formatting (margins, paper size, etc.).
Normal Flow
(c) Confirms changes and submits for printing.
(d) System prepares the document for print.

AF01 - Unsupported File Format: System shows error that


student uploads a supported file.
Alternative Flows
AF02 - Formatting Errors: System shows formatting error; stu-
dent adjusts and continues.
E01 - System Failure During Preview: Process halted, student
notified, retry or report issue.
Exceptions
E02 - Invalid Document Content: System blocks action,
prompts for valid document upload.

6. Usecase Choose printer

Assignment for Software Engineering - Academic year 2024 - 2025 Page 13/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

ID and Name UC-6 Choose Printer


Date Created 29th September, 2024
Primary Actor Student
Secondary Actor Print Management System
The student selects a printer from a list of available printers on
Description
campus before proceeding with the print job.
Trigger The student initiates the printing process and must choose a printer.
PRE-1. Student is authenticated.
PRE-2. At least one printer is available and online.
Preconditions PRE-3. The system provides the location and status of each
printer.
PRE-4. Students has uploaded the document.
POST-1. The selected printer is assigned to the print job.
Postconditions POST-2. The system sends the document to the chosen printer for
processing.
6.0 Choose printer
(a) The system displays a list of available printers with location
and status.
Normal Flow (b) The student chooses the nearest or preferred printer.
(c) The system confirms the printer selection and prepares the
job.

AF01 - No Printer Available: System notifies the student of no


available printers; they can retry later or cancel.
Alternative Flows
AF02 - Printer Busy/Offline: System alerts the student to
choose another printer if the selected one is unavailable.
E01 - System Error During Printer Selection: Printer selec-
Exceptions tion process is interrupted; the student is notified to retry or report
the issue.

7. Usecase View printing log

Assignment for Software Engineering - Academic year 2024 - 2025 Page 14/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

ID and Name UC-7 View Printing Log


Date Created 29th September, 2024
Primary Actor Student
Secondary Actor Printer Devices, Log Systems
The student views their printing log, including the detail of printing
Description
history in summary or over a selected period of time.
Trigger The student choose the option “Printing Log”.
PRE-1. Student must be logged into the system.
Preconditions
PRE-2. The system must be online.
Postconditions POST-1. The systems display the student’s printing history.
7.0 View Printing log summary
(a) Student selects the option to view the printing log.
(b) Student chooses the view summary option.
Normal Flow
(c) System shows the list of print history, including date, file name
and printing status of each file.

7.1 View Printing log over selected range time


(a) Student selects the option to view the printing log.
(b) Student chooses the “Detailed history” option.
(c) System prompts the student to select the date range and op-
tionally choose a specific printer.
(d) Student enters his/her desired input.
Alternative Flows
(e) System displays the detailed print history over the selected
date such as: file name, page printed, status and page size,....
7.2 Student view log with no printing history
(a) Student selects the option to view the printing log.
(b) System displays a message indicating no log available.

7.1.E1 System error in retrieving data


Exceptions
The system shows a message indicating error.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 15/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3 Task 2: Requirement eliciation (2.1, 2.2, 2.3, 2.4)


3.1 Activity Diagram (2.1)

Figure 3: Activity Diagram for Print Document Session

Description: The Print Document use case for SSPS begins when a student or lecturer logs into the
system, seeking to print a document from one of the university’s available printers. The user initiates
the process by navigating to the "Print Document" tab on the SSPS interface, which serves as the
starting point of the use case. At this stage, the system performs a critical check to determine whether
it is online and operational. If the system is unavailable due to technical reasons or maintenance, an
error message is promptly displayed to inform the user, who must then wait until the service is restored
to proceed with their printing task. However, if the system is online, the user is allowed to continue by

Assignment for Software Engineering - Academic year 2024 - 2025 Page 16/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

uploading the document file that they wish to print.


Once the file is uploaded, the system automatically checks its format to ensure it meets the acceptable
file types specified by the system’s administrator. In cases where the file format is unsupported (for
example, a file type not permitted for printing), the system will return an error, prompting the user to
correct the issue by uploading a valid file. If the file format is valid, the system moves forward by
displaying a preview of the uploaded document, giving the user a chance to review the document before
proceeding with the actual printing request. This preview helps the user ensure that the correct file has
been selected and provides an opportunity to make any adjustments if necessary.
Following the document preview, the user must configure the printing settings, which include multiple
parameters such as the paper size (e.g., A4, A3), the orientation of the pages (portrait or landscape),
the range of pages they want to print (specific pages or the entire document), the margins, and the
choice of printer from the list of available devices on campus. These settings allow for customized
printing based on the user’s specific needs for each job.
After configuring the printing preferences, the user submits the print job. The system then checks if the
user has enough remaining pages in their account to complete the request. Each user has a set page
quota per semester, which the system tracks. If the page balance is sufficient, the print job is processed,
and a confirmation message is displayed. However, if there are not enough pages, the system halts the
process and redirects the user to purchase more pages.
In either case, the system ensures that the user is always kept informed of the process. If successful, the
user receives confirmation that their document is being printed, and they can check the status of the
print job in the system interface. If there are issues, such as insufficient page balance or an invalid file,
the system provides clear feedback, allowing the user to take the necessary steps to resolve the issue,
whether by uploading a different file or purchasing more printing credits. This use case ensures a
seamless and user-friendly experience for students and lecturers who need to print documents on
campus, offering transparency, flexibility, and control over the entire printing process.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 17/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Figure 4: Activity Diagram for Cancel Printing Session

Description: The Cancel Printing Session use case allows a student or lecturer to cancel a print job
they have previously submitted through the Student Smart Printing Service (SSPS). The process begins
with the user selecting a specific print order from their printing log. The system then attempts to
display the details of the chosen order. If a system error occurs during this process, an error message is
shown to the user. If successful, the system displays the detailed information of the selected print job.
The user can then proceed by clicking the "Cancel" button to request the cancellation of the print job.
If the cancellation request is submitted in time, the system successfully cancels the print job and
confirms this action to the user. However, if the print job is already completed or too close to
completion, the system notifies the user that the cancellation has failed due to the late timing of the

Assignment for Software Engineering - Academic year 2024 - 2025 Page 18/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

request. This use case ensures that users can manage their print jobs efficiently while also handling
cancellation requests based on the job’s status.

Figure 5: Activity Diagram for View Printing Log Session

Description: The View Printing Log use case provides students and lecturers with the ability to review
their past printing activity within the Student Smart Printing Service (SSPS). The process begins when
the user selects the "View Printing Log" option from the system’s interface. At this point, the system

Assignment for Software Engineering - Academic year 2024 - 2025 Page 19/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

attempts to retrieve the user’s printing history. If no logs are available. For example, if the user has not
printed anything yet, or if there is a system error during the retrieval process, an error message is
displayed, informing the user that the logs cannot be accessed at the moment.
However, if the user has printing history available, the system presents options for filtering the records
based on specific criteria. The user can choose to either view the details of a specific print order or filter
the history by specifying a date range. When selecting a specific order, the system will display detailed
information about that print job, including key details such as the printer used, the number of pages
printed, and the date and time of the print session. Alternatively, if the user opts to filter by date, the
system prompts the user to enter a date range. Once the user specifies the range, the system displays a
detailed log of all print jobs that occurred within the selected dates. This feature helps users track their
printing activity, making it easier to review past prints, and resolve any discrepancies in their printing
records.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 20/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.2 Sequence Diagram (2.2)

Figure 6: Sequence Diagram for Print Document Session

Assignment for Software Engineering - Academic year 2024 - 2025 Page 21/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Description: When the student begins to use the print document service by clicking the tab “Print
Document” bar, user will call the method UploadService() of PrintServiceComponent to display the UI
component for uploading the document. In the Upload Interface, the student can choose to drag and
drop the document or click the “Upload from computer” button to upload the document by calling the
function Upload(file) of the PrintServiceView. When uploading the file, the PrintServiceView component
will be validated by Validate(file) of Document, then return the file metadata to the PrintServiceView if
the file is valid, or else a notification will be pop up, saying that the file is not valid. After receiving
metadata from the Document, PrintServiceView will display the uploaded files on the screen.
After uploading the file, the user can have the option to delete a specific uploaded file by clicking the
delete button on a specific file, which will call the method DeleteDocumentUpload(document_id) to
delete that file and show the documents again.
For printing a specific file, the user will choose the print button in a specific file. After clicking, the
method GetAvailablePrinters() of PrintServiceView will be called, the PrintServiceController will call
the method f ind_all_printers() to the PrinterModel, and the PrinterModel will call the method
f ind_all_printers() to the database to retrieve all the information of active printers. These
information will be passed from the Database, through the Model and Controller layers to the
PrintServiceView. The PrintServiceView will use these printer information details and the chosen file
info file to render the configuration interface through the DisplayPrintConfigs(file ,info) and the
preview session for the uploaded document. The user will choose his/her desired printing configuration
for the document.
If the user wants to cancel this configuration session, he/she will choose the cancel button at the
bottom, which will call CancelPrintConfig() of PrintServiceView to redirect the user to the uploaded file
interface.
After configuring the printing option, the user can click on the submit button, then the
PrintServiceView will call the method GetPagesBalance(user_id) to the Controller. The remaining
pages of the user with user_id will come back to the PrintServiceView. If the remaining page number of
the user is less than the document pages, PrintServiceView will create a pop-up notification through the
method BuyPages() to redirect the user to the purchase interface. Otherwise, the PrintServiceView will
call the function PostOrder(order_data) of the Controller, the Controller will create the order and
update the page balance through the create_order(order_data) and update_page_balance(page) of
the model. After updating successfully, the user will receive a pop-up notification that the order has
been successful, then redirect the user to the Upload Document User Interface.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 22/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Figure 7: Sequence Diagram for Cancel Printing Session

Description: In case the user wants to cancel a specific printing order, he/she will call the function
DisplayOrderInfo(id) of PrintServiceView, then PrintServiceView will call the method
get_order_with_id(id) to Controller to get the order_info. In this process, Order object will be
created, then return the detail information to the PrintServiceView, then the PrintServiceView will
display the detail information of that Order as a result of method DisplayOrderInfo(id). If the status is
invalid for canceling, the PrintServiceView will make a notification that the order is unable to cancel. If
the status is valid for canceling, method CancelOrder(id) of PrintServiceView will be called to
Controller, then pass through layers to the database for changing the status of that order to cancel.
After that, the status of the action will be passed through the layer to the PrintServiceView, then a
notification will pop up to show that the canceling action is successful. The user will be directed to the
view printing log interface.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 23/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Figure 8: Sequence Diagram for View Printing Log Session

Description: In case the user wants to view their printing log, he/she can choose the tab “Printing
Log” on the navigation bar, which will call the method GetAllOrders() of PrintServiceView.
PrintServiceView will call the method get_all_orders() of Controller. The orders_data from the
Database will be passed through the layers, going to the PrintServiceView. PrintServiceView will use
this data to show all the orders with basic information as a result of method GetAllOrders(). In case
the user wants to cancel a specific printing order, he/she will call the function DisplayOrderInfo(id) of
PrintServiceView, then PrintServiceView will call the method get_order_with_id(id) to Controller to
get the order_info. In this process, Order object will be created, then return the detail information to
the PrintServiceView, then the PrintServiceView will display the detail information of that Order as a
result of method DisplayOrderInfo(id).

Assignment for Software Engineering - Academic year 2024 - 2025 Page 24/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.3 Class Diagram (2.3)

Figure 9: Class Diagram

Assignment for Software Engineering - Academic year 2024 - 2025 Page 25/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.4 User Interface (2.4)


3.4.1 Pre log in Homepage

Figure 10: Homepage Interface

Description: The Pre Log in Homepage contains a short introduction about the system, with a
navigation link and a button which will direct user to the login page.

3.4.2 Log in

Figure 11: Select roles

Description: The Authenticative Service Page will contains two options, refering to two roles that the
user can be login: Student of HCMUT or SPSO. User will choose their login role by clicking one option.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 26/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.4.3 Log in as student

Figure 12: Student account

Description: For student, the system requires HCMUT email and password for authentication.

3.4.4 Log in as Administrator

Figure 13: Admin account

Description: For SPSO, the system requires SPSO username and password for authentication.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 27/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.4.5 Homepage

Figure 14: Post log in homepage

Description: When student login successfully, the system will render the avatar of student in the top
right of the navigation, also rendering additional navigation tabs like Dashboard, Print Document,
Printing Log and Purchase. When click the avatar, a drop down box will pop-up, showing 2 options for
the student: "View profile", which will redirect them to the Profile Page, or "Log Out".

3.4.6 Profile

Figure 15: Information Summary

Description: This page contain basic information of student. It also have the link in the bottom of the
avatar to redirect the student to dashboard page.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 28/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.4.7 Document Selection/Upload

Figure 16: Select desire document to print

Description: When the student click on the "Print Document" tab, system will render the interface for
upload document. Student can drag the document or choose desired document from the computer.

3.4.8 Document Selected/Uploaded

Figure 17: Showing all the uploaded documents

Description: After the students choose their desired document, the system will check the format of the
document, then render the status of the document if the document is uploaded successfully, They can
delete the uploaded document by click into the garbage icon.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 29/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.4.9 Document Configuration

Figure 18: Different configurations to choose

Description: When the students want to configure the printing option for an uploaded document, they
can choose the print icon in a specific document. The system will render the configuration page for that
document, contain the part for preview the document and another part for choosing desired
configuration.

3.4.10 Printing Log

Figure 19: Showing all the printing orders

Description: If the students want to see their orders, they need to choose the tab "Printing Log" on
the navigation bar. The system will render a table of all the orders and the option to filter the orders
displayed on the screen. If the user want to see specific information of an order, they can choose the
detail icon of a specific printing order.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 30/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.4.11 Printing Order Detail

Figure 20: Viewing printing order details including all specifications

Description: This page will contain the necessary informations of an order, including the basic
information of the order and the printing configurations. It also have two button on the top, the first
one will navigate to the "printing log" page, and the order one will cancel the order.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 31/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.5 Admin Interface


3.5.1 Dashboard

Figure 21: Summarize all information of printers

Description: After the SPSO login successfully, the system will render essential components for the
SPSO dashboard such as print job volume, revenue, and active users, along with visual representations
of key data points. The navigation for the SPSO also the same as students, except different tab contexts.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 32/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

3.5.2 Printer Management

Figure 22: Select printer to manage

Description: When click on the tab "Printer management", the System will render the list of all
printers, containing their basic information.

3.5.3 File management in printer

Figure 23: Viewing history file of each printer

Description: When click on a specific printer, the System will render all the documents has been
uploaded to that specific printer, as well as their printing status.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 33/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

4 Task 3: Requirement eliciation (3.1, 3.2)


4.1 Layered Architecture
The HCMUT SSPS will be implemented based on the layered architecture, with the combination of
React in the Front-end and Django in the Back-end. However, in Django architecture, the framework
follows the Model-View-Template (MVT) rather than the traditional pattern in layered architecture
Model-View-Controller (MVC). Therefore, to align with the assignment requirements and simplify the
diagrams, we will make some alias in the Django architecture to refer to its as MVC in our diagrams,
since components between both architectures have the same functionalities:

• The View component in MVT of Django will be referred as Controller in MVC, responsible for
interacting with the Component in Front-end.

• The Model component in MVT also has the same functionality in the MVC, therefore no alias is
made in this component.

• The Template component in MVT represents the presentation layer, serving the same functionality
as the View component in MVC. Therefore, the Template component will be referred to as View.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 34/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

4.1.1 Box-Line Diagram

Figure 24: Box-Line Diagram of all system

Description for each layer:

• Presentation layer: is the User Interface for helping the Students and SPSO interact with the
system. This layer will be divided into two large components UI is Student and SPSO. This layer
represents the Front end of the system, developed by React library and other related libraries.

• Business layer: is the layer containing the Controller components, responsible for interacting with
the Presentation Layer. It processes the request from the Presentation layer, validates them and
chooses the proper correct business logic to apply to those requests.

• Service layer: is the intermediary between Business and Persistence layer. It containings services
for specific actions that can be used by the Business layer.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 35/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Persistence layer: is the layer responsible for managing the Model Objects and mapping them
to database schemas in the Database Layer, containing the following models: Student, SPSO,
Document, Printer, Report, PrintOrder, and Payment. These models define the entities in
the system and establish the rules for how the data is structured and validated.

• Database layer: is the foundation layer for storing data of the HCMUT SSPS system.

4.1.2 Deployment Diagram

Figure 25: Deployment Diagram

Description for Deployment Diagram:

(a) Back-end Execution Environment: Python and Django

• The main application server operates within a Python execution environment using
the Django framework.
• Within this environment, seven primary components are represented as controllers in
Django, each responsible for distinct functionalities:
– Authenticate Controller: Manages user authentication.
– SPSO Controller: Handles specific SPSO-related tasks.
– Student Controller: Manages student-related information and interactions.
– Printer Controller: Supports printing services.
– Report Controller: Facilitates report generation and management.
– Order Controller: Manages order-related functions.
– Payment Controller: Overseas payment processing.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 36/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Each component is mapped to a specific Python file (artifact) in the Django application.

(b) Front-End Execution Environment: ReactJS

• The front-end environment is built using ReactJS and hosted on Web Server with three
primary components. These components handle client-side rendering and interact with the
Django back-end via REST APIs.
• The front-end components are compiled from their respective JavaScript source files (artifacts),
facilitating a dynamic user interface that updates and responds to user inputs.

(c) Client-Server Communication

• The Client application connects to the Server over the TCP/IP protocol.
• Data transferred from the Server to the Client includes interface-related files, which are dis-
played through an embedded HTML5 reader on the Client application.
• This setup allows users to interact with the application’s functionality seamlessly on their local
devices.

(d) Database Server

• The Database Server hosts a MySQL relational database that stores persistent data for
the application.
• It communicates with the main application server over the TCP/IP protocol for data re-
trieval and updates. This ensures that data displayed on the client interface remains consistent
and up-to-date based on user interactions.

(e) Data Flow and Interaction

• Client-Server Interaction: The client (user browser) sends user actions to the Server, which
processes them, updates the interface, and fetches data from the Database Server when needed.
• Server-Database Communication: The Server retrieves or updates data stored in the
Database Server, ensuring data persistence and consistency.

4.2 Presentation Strategy


For developing the User Interface for the HCMUT SSPS, we will use two technology:
• React: React is a library for developing web applications and native user interface. It focuses on
building dynamic and reusable components, which can help for designing HCMUT SSPS more
straightforwardly.

Figure 26: (source: https://www.fullstackpython.com/react.html)

Assignment for Software Engineering - Academic year 2024 - 2025 Page 37/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• TailwindCSS: TailwindCSS is a CSS framework packed with classes, which can be composed di-
rectly into React Components. Utility classes from TailwindCSS will help us to style our application
more quickly and effectively.

Figure 27: (source: https://tailwindcss.com/)

Beside the technology used for building User Interface, we made some criterias for our implementation:

• Responsible Design: We will try to create a responsive design for HCMUT SSPS, ensuring that
our application looks and functions optimally across many designs like mobile phone and laptop.

• User-friendly Interface: The Interface should be easy to navigate between pages, with all essen-
tials and easy-to-use components for both the students and SPSO like menu to upload document
or managing printers.

4.3 Data Storage Approach

Figure 28: (E)ERD of Data Storage Approach

Description for (E)ERD of Data Storage Approach:


To store the data as defined by the ERD for the HCMUT Student Smart Printing Service, we convert
each entity into a database table, where the attributes become the columns of the table. Each table is
assigned a primary key to uniquely identify its records. Relationships between entities are established
using foreign keys, which reference primary keys in related tables. Converting Entities to Tables:
Each entity in the ERD represents a real-world object or concept, such as a student, printer, or print
order. We begin by creating a table for each entity:

• Student Table: Stores information about students using the service, including personal details
and their page balance for printing.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 38/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

1 -- Create the Student table


2 CREATE TABLE Student (
3 StudentID INT PRIMARY KEY AUTO_INCREMENT ,
4 Name VARCHAR (100) NOT NULL ,
5 Email VARCHAR (100) NOT NULL UNIQUE ,
6 Password VARCHAR (255) NOT NULL ,
7 Gender ENUM ( ' Male ' , ' Female ' , ' Other ') NOT NULL ,
8 PageBalance INT NOT NULL DEFAULT 0 CHECK ( PageBalance >= 0) ,
9 R e g i s t r a t i o n D a t e DATETIME DEFAULT C U R R E N T _ T I M E S T A M P
10 );

• SPSO Table: Stores information about the Student Printing Service Officers who manage the
system.
1 CREATE TABLE SPSO (
2 SPSOID INT PRIMARY KEY AUTO_INCREMENT ,
3 Name VARCHAR (100) NOT NULL ,
4 Email VARCHAR (100) NOT NULL UNIQUE ,
5 Username VARCHAR (50) NOT NULL UNIQUE ,
6 Password VARCHAR (255) NOT NULL ,
7 DateOfBirth DATE
8 );

• Printer Table: Contains details about the printers available in the system.
1 -- Create the Printer table
2 CREATE TABLE Printer (
3 PrinterID INT PRIMARY KEY AUTO_INCREMENT ,
4 Brand VARCHAR (50) NOT NULL ,
5 Model VARCHAR (50) NOT NULL ,
6 Status ENUM ( ' Active ' , ' Inactive ') NOT NULL ,
7 CampusName VARCHAR (100) ,
8 Building VARCHAR (100) ,
9 RoomNumber VARCHAR (50) , Description VARCHAR (255)
10 );

• Manage: Contains details relationship about the printers and spso.


1 CREATE TABLE Manage (
2 PrinterID INT NOT NULL ,
3 SPSOID INT NOT NULL ,
4 AssignedDate DATETIME DEFAULT CURRENT_TIMESTAMP ,
5 PRIMARY KEY ( PrinterID , SPSOID ) ,
6 FOREIGN KEY ( PrinterID ) REFERENCES Printer ( PrinterID ) ON DELETE CASCADE ,
7 FOREIGN KEY ( SPSOID ) REFERENCES SPSO ( SPSOID ) ON DELETE CASCADE
8 );

• Document Table: Holds information about documents uploaded for printing.


1 CREATE TABLE Document (
2 DocumentID INT PRIMARY KEY AUTO_INCREMENT ,
3 StudentID INT NOT NULL ,
4 Filename VARCHAR (255) NOT NULL ,
5 FileSize INT NOT NULL CHECK ( FileSize > 0) ,
6 FileType VARCHAR (50) NOT NULL ,
7 PageNumber INT NOT NULL CHECK ( PageNumber > 0) ,
8 Uplo adDate Time DATETIME DEFAULT CURRENT_TIMESTAMP ,

Assignment for Software Engineering - Academic year 2024 - 2025 Page 39/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

9 FOREIGN KEY ( StudentID ) REFERENCES Student ( StudentID ) ON DELETE CASCADE


10 );

• PrintOrder Table: Represents each print order made by a student, containing details about the
print job.
1 CREATE TABLE PrintOrder (
2 PrintOrderID INT PRIMARY KEY AUTO_INCREMENT ,
3 StudentID INT NOT NULL ,
4 DocumentID INT NOT NULL UNIQUE ,
5 PrinterID INT ,
6 StartDateTime DATETIME DEFAULT CURRENT_TIMESTAMP ,
7 EndDateTime DATETIME ,
8 PageCount INT NOT NULL CHECK ( PageCount > 0) ,
9 Status ENUM ( ' Pending ' , ' Completed ' , ' Cancelled ') NOT NULL DEFAULT ' Pending ' ,
10 PageSize ENUM ( ' A4 ' , ' A3 ') NOT NULL ,
11 Orientation ENUM ( ' Portrait ' , ' Landscape ') NOT NULL ,
12 SidedType ENUM ( ' Single - sided ' , ' Double - sided ') NOT NULL ,
13 FOREIGN KEY ( StudentID ) REFERENCES Student ( StudentID ) ON DELETE CASCADE ,
14 FOREIGN KEY ( DocumentID ) REFERENCES Document ( DocumentID ) ON DELETE CASCADE ,
15 FOREIGN KEY ( PrinterID ) REFERENCES Printer ( PrinterID ) ON DELETE SET NULL
16 );

• Payment Table: Records transactions where students purchase additional printing pages.
1 -- Create the Payment table
2 CREATE TABLE Payment (
3 PaymentID INT PRIMARY KEY AUTO_INCREMENT ,
4 StudentID INT NOT NULL ,
5 Amount DECIMAL (10 ,2) NOT NULL CHECK ( Amount > 0) ,
6 P ay me n tD a te Ti m e DATETIME DEFAULT CURRENT_TIMESTAMP ,
7 PaymentMethod VARCHAR (50) NOT NULL ,
8 Page sPurch ased INT NOT NULL CHECK ( Pa gesPur chased > 0) ,
9 T r a n s a c t i o n S t a t u s ENUM ( ' Successful ' , ' Failed ') NOT NULL ,
10 FOREIGN KEY ( StudentID ) REFERENCES Student ( StudentID ) ON DELETE CASCADE
11 );

• Report Table: Contains system usage reports generated automatically.


1 CREATE TABLE Report (
2 ReportID INT PRIMARY KEY AUTO_INCREMENT ,
3 Content TEXT NOT NULL ,
4 ReportType ENUM ( ' Monthly ' , ' Yearly ') NOT NULL ,
5 StartDate DATE NOT NULL ,
6 EndDate DATE NOT NULL
7 );

• View: Junction table for the many-to-many relationship between SPSO and Report
1 CREATE TABLE View (
2 SPSOID INT NOT NULL ,
3 ReportID INT NOT NULL ,
4 ViewDateTime DATETIME DEFAULT CURRENT_TIMESTAMP ,
5 PRIMARY KEY ( SPSOID , ReportID ) ,
6 FOREIGN KEY ( SPSOID ) REFERENCES SPSO ( SPSOID ) ON DELETE CASCADE ,
7 FOREIGN KEY ( ReportID ) REFERENCES Report ( ReportID ) ON DELETE CASCADE
8 );

Assignment for Software Engineering - Academic year 2024 - 2025 Page 40/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Many-to-many relationships, such as between Printer and SPSO (Student Printing Service Officer), are
managed using junction tables. A junction table like Printer_SPSO contains foreign keys referencing
both PrinterID and SPSOID, effectively linking printers and officers. This approach ensures that all
relationships in the ERD are accurately represented in the database schema. By defining appropriate
data types, constraints, and indexes, we maintain data integrity and optimize query performance.
Implementing this schema in a database management system like MySQL involves writing Data
Definition Language (DDL) commands to create the tables and define their relationships. These
commands specify the structure of each table, the primary and foreign keys, and any necessary
constraints. This structured storage of data according to the ERD facilitates efficient data management
and supports the functionalities required by the printing service system.

4.4 API Accessing


In the HCMUT SSPS system, external APIs from two following systems are meant to be used: BKPay
(responsible for handling payment transactions within the system) and HCMUT SSO (responsible for
user authentication and authorization). However, for simplicity in this demonstration, we will not use
any external APIs to connect to these third-party systems. Instead, we will build simple components on
the back-end to handle these functionalities internally: Payment Controller for handling payment
transactions and Authentication Controller for handling user authentication and authorization.
For the APIs to communicate between client and server, we categorized those APIs into:

• Security APIs: these APIs manage role-based access control and permissions, ensuring that users
can only access resources and perform actions according to their roles (Student and SPSO).

• Report APIs: Responsible for generating, retrieving, and managing reports related to print orders,
user activity, and system usage.

• Printer Management APIs: These APIs handle operations related to printer setup and manage-
ment within the system. This includes adding, updating, or removing printers, as well as retrieving
printer status or details

• Print Service APIs: Handle the related functionality of print service: document validation, doc-
ument printing configuration.

• Order APIs: These APIs handle the retrieval of print orders for students and provide them with
the ability to cancel their orders if needed.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 41/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

4.5 Component Diagram

Figure 29: Component Diagram

Description for Component Diagram:


This component diagram illustrates a sophisticated printing service system using a three-tier
architecture (View-Controller-Model). The system organizes its functionality through specialized
controllers - Printer Controller, Order Controller, and Student Controller - each managing specific
aspects of the printing service. The View layer provides user interface components for tasks like viewing
printer information, configuring documents, managing orders, and checking balances. These user
interactions are channeled throuh appropriate controllers to access and manipulate data in the Model
layer, which contains core components like Database, PrintOrder, Student, Printer, and Logs. The
system demonstrates clear separation of concerns and efficient data flow management, allowing students
to interact with printing services while maintaining organized control over printer operations, order
processing, and student-related functions.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 42/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

5 Task 4: Implementation - Sprint 1


5.1 Github Setting
Github Link: https://github.com/lamcao1206/hcmut-ssps

Figure 30: Github Repository

5.2 README intialization


For making a detail document about the project, we create a new readme.md for the Github repository,
including detail information about the projects: Requirement, System modelling and Architectural
design.

Figure 31: README.md

Assignment for Software Engineering - Academic year 2024 - 2025 Page 43/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

The newest updating git log:

Figure 32: Git Log

5.3 Usability Testing


Usability Testing is a method used to assess the ease of use of a product design with the target user
group. Researchers, also known as facilitators or moderators, guide participants through specific tasks
set for the test. This method serves several purposes: identifying design flaws, discovering areas with
potential for future design improvements, and gathering user feedback and behavioral observations to
align with user needs and trends. Testing is conducted repeatedly and regularly to continually refine the
UI and ensure it provides the best possible user experience. Through this process, software developers
can address existing issues and seize opportunities to enhance the software further.

5.3.1 Recruiting Test Participants

Researchers, also known as facilitators or moderators, guide participants through specific tasks set for
the test. The facilitator’s role is to guide participants through each testing step, answer questions they
may have, record the process, and analyze these recordings to improve the product. This person sets
tasks and instructs participants to complete them, either verbally or through written instructions. In
both formats, participants are asked to articulate their thoughts and actions, enabling the facilitator to
understand user behavior, needs, intentions, and motivations. The participants, who are recruited to
test the product, serve as representatives of the end-user group.
In this step, the team selects 4 participants— 1 facilitator and 3 participants—to evaluate their
experience with the front-end interface in the MVP1 version that the team has developed. The primary
users of this product are university students, so they are crucial to understanding usability. The choice
of four participants strikes a balance: a smaller group might miss certain usability issues, or tasks that
are challenging for some students might appear straightforward to others. Conversely, testing with too
many users is not feasible due to time and budget constraints.
These four participants will complete a series of tasks with the software. After gathering feedback, the
team will refine MVP1 before conducting another round of testing. Based on the feedback from both
rounds, the team will make adjustments to finalize the web software from the MVP1 iteration.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 44/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

5.3.2 Task Definition Guidelines

The tasks must accurately and comprehensively reflect the objectives of the facilitator or fulfill the
software’s use cases. Since tasks directly impact product quality, the team has established guidelines for
creating and describing tasks to ensure that test participants clearly understand their assignments:

• Avoid using interface terms in task descriptions. For example, if a user is logged in as SPSO,
do not describe the task as “Enter the student ID in the search field to view their history.” Instead,
use language like “Find the print history for student X within a specific timeframe. . . ”

• Do not describe tasks as step-by-step instructions. Task descriptions should not contain
specific steps for completing the assignment.

• Create realistic tasks. For example, do not ask SPSO to view print history for December 5, 2024,
if today is only December 4, 2024.

• Avoid overly simple tasks. Instead of simply asking students to log in, give them a more meaningful
task, such as “Complete a print job for a file with specific input requirements.” However, avoid
overly complex tasks; users should primarily process information rather than simply search for it.

• Develop hypothetical scenarios. A brief description of a hypothetical scenario helps test par-
ticipants better understand the task requirements.

Based on these guidelines, the team created task descriptions for important use cases within the system.
Tasks are practical activities to test participants’ usability experience, which can range from specific
instructions to open-ended questions, depending on research goals. Each task is phrased clearly,
ensuring that test participants understand the purpose, avoiding ambiguity that could affect the results.
The team will test the document printing functionality by creating the following tasks:

Purpose Description
Check print page set- On the “Configure” page, modify the settings as desired, and choose
tings to print.
Confirm Print Confirm the print completion.
Check the "Status"
Press “Confirm” in the “Print Confirmation” interface; the system
screen after confirming
should display the "Print Status" screen.
a print
Test the home naviga-
In each interface during the printing process, click the "Home" but-
tion button on each in-
ton in the header.
terface during printing
On the “Purchase” page, choose the desired input and select pur-
Purchase page
chase.
View Print History Review which files the student has printed over the past week.

This structured approach ensures that each task is meaningful, aligned with real use cases, and provides
actionable feedback on both functionality and user experience.

5.3.3 Defining the Testing Methodology

The testing strategy defines the approach the team intends to use to evaluate usability through various
testing methods.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 45/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

5.3.4 Testing Approach

Usability testing can be conducted through two approaches: qualitative and quantitative.

1. Qualitative Testing: This approach focuses on the participants’ thoughts, emotions, and actions
as they interact with the product, making it ideal for identifying user experience issues.

2. Quantitative Testing: This approach focuses on measurable aspects of the user experience, such
as the number of tasks completed and the time taken to complete each task.

5.3.5 Testing method

Evaluation can be performed either in person or remotely, with remote testing further divided into
"moderated" and "unmoderated" types.

1. Moderated Testing: Similar to in-person testing, moderated testing requires direct interaction
between the facilitator and the participant. However, unlike in-person testing, the facilitator and
participant are in different locations and communicate through tools like Google Meet or Zoom.

2. Unmoderated Testing: This approach uses software to guide participants through tasks au-
tonomously. The software acts as the facilitator, providing instructions and support to participants
as they complete the tasks.

Given the nature of the project, along with time and budget constraints, the team has decided on the
following testing approach:
Remote unmoderated testing: a usability testing method in which participants complete tasks on a
product independently, without real-time interaction or guidance from a facilitator. Instead,
participants use software or online platforms that provide task instructions and record their actions,
responses, and any feedback- as the primary method for evaluating product quality.
This decision was made for the following reasons:

1. Cost-effective and time-efficient: This method eliminates the travel costs and time associated with
in-person sessions, allowing both the facilitator and participants greater scheduling flexibility.

2. Easier participant selection: In-person testing would require a central location, restricting partici-
pation to those who live nearby. In contrast, remote testing allows the team to recruit participants
from a wider area across the city.

Based on these theoretical approaches, the team has chosen remote unmoderated testing - This method
offers speed and convenience, reduces geographical constraints, and provides flexibility in scheduling for
participants. The team will focus on qualitative testing to gain a comprehensive understanding of the
user experience, while incorporating some quantitative elements by tracking the completion rates
and times for tasks. This combination enables a well-rounded assessment of the product’s usability and
effectiveness.

5.3.6 Conducting the Testing

To carry out usability testing effectively, the team followed these structured steps:

5.3.6.a Step 1: Prepare for Testing

Identify the facilitator, participants, tasks, and appropriate testing strategy.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 46/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

5.3.6.b Step 2: Conduct Testing with Participants

We conduct usability test using Google Form with four participants for a maximum of two rounds to
ensure comprehensive feedback and usability insights.
Link of the survey: Google form link

5.3.6.c Step 3: Collect Feedback

Gather participant feedback after each round using Google Forms to document their experiences,
observations, and any issues they encountered.

5.3.6.d Step 4: Refine MVP1 Based on Feedback

After reviewing feedback from each round, make necessary refinements to MVP1 to address identified
issues and enhance usability.

5.3.6.e Step 5: Repeat Testing as Needed

1. Continue this process for up to two rounds, refining MVP1 after each round based on participant
feedback.

2. The testing will conclude once all stakeholders are satisfied with the product or after completing
the third round, whichever comes first.

5.3.7 Collecting Feedback and Reporting Results

After conducting usability testing according to the predefined tasks and strategy, the team focused on
collecting feedback from participants. This process provided deeper insights into the user experience,
helping the team identify areas for improvement in their printing system. Based on the collected results,
the team can make adjustments to the HCMUT_SPSS interface to better meet user needs and
expectations, ensuring it delivers an optimal user experience.
In the first test, we got the detail result:

Figure 33: First Test

Assignment for Software Engineering - Academic year 2024 - 2025 Page 47/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

As can be observed, there exists unsatified responses in all of the test case UI except the purchase page,
which exists in the result of 1 over 6 testcases passed.
After collecting responses and analyzing the improvement feedback from participants, we adjust the
Figma UI and begin to conduct the second test. We got the result:

Figure 34: Second Test

It can be seen that all the participants all satified with the User Interface, implying that our teams have
make progress in the User Interface implementation. We will applying that in the second MVP
implementation. All of the responses can be access via: Google form link

Assignment for Software Engineering - Academic year 2024 - 2025 Page 48/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

6 Task 5: Implementation - Sprint 2


Due to the time limit, we only implement the client side by React and making a pseudo-server to
interacting with client through API by json-server - an package for creating a full fake REST APIs.
All the data will be stored in to a db.json file, and json-server will read the file and interact with the
client side.

6.1 Set Up
All the necessary applications, environment details, and instructions for running the demo application
are included in the README.med file on our GitHub repository. Additionally, we have provided account
credentials for both user roles, allowing everyone to try out the app.

6.2 User Interface


Base on the results from the Usability Test in part 4, we implementing the UI and functionality of our
application with a bit of different from our intiaial Figma design:

• Introduction

Figure 35: Introduction

In the Introduction page, we add a section to introduction more about our team and the role of
each members in the development of the application.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 49/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Login (Choosing Role)

Figure 36: Choosing Role

The "choosing role" page is still remain the same as the Figma design.

• Login (Student Login)

Figure 37: Student Login

Assignment for Software Engineering - Academic year 2024 - 2025 Page 50/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Student Dashboard

Figure 38: Student Dashboard

In the Student Dashboard, we change the UI with a little bit different but still remain the basic
information: Student Name and the Pages remain.

• Student Profile

Figure 39: Student Profile

Assignment for Software Engineering - Academic year 2024 - 2025 Page 51/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Upload file

Figure 40: Upload file

• Upload multiple files

Figure 41: Upload file

Assignment for Software Engineering - Academic year 2024 - 2025 Page 52/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Delete an uploaded file

Figure 42: Delete file

When click in the trash icon of a specific files to delete, an modal will be showed to confirm the
user actually want to delete that uploaded file or not.

• Document Config

Figure 43: Document Config

We change the UI design of the Document config page with a little bit different from the Figma
design.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 53/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Document config confirm

Figure 44: Document Config Confirm Modal

When the user choosing their desired configuration for the document and click ’Xác nhận’, an modal
will be opened contain the current configs and asking the user to confirm that config.

• Warning missing pages

Figure 45: Missing pages

In case the student do not have enough pages for the order, an pops-up modal will be opened and
asking the user to go to the purchasing page.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 54/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Status order

Figure 46: Status Order

After the order were updated successfully on the server side, an status page will be rendered to
show that the order has been created successfully.

• Orders History

Figure 47: Orders history

Assignment for Software Engineering - Academic year 2024 - 2025 Page 55/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Order detail

Figure 48: Order detail

We have updated the UI of the order details to make it more user-friendly. Additionally, we have
enhanced the functionality of the "Cancel Order" button. It is now only active for orders that do
not have the status "Đã huỷ" (Cancelled) or for orders in the "Đang in" (In Progress) state where
the start date is more than 4 days past the current date.

• Cancel order modal

Figure 49: Cancel order modal

Assignment for Software Engineering - Academic year 2024 - 2025 Page 56/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

An modal will be showed up for the user to confirm that he/she actually want to cancel that orders.

• Purchase form

Figure 50: Purchase form

• Purchase History

Figure 51: Purchase History

We add a new page for rendering all the users history of payments.

• SPSO Dashboard

Assignment for Software Engineering - Academic year 2024 - 2025 Page 57/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Figure 52: SPSO Dashboard

Due to the time limit, we cannot fully implemented the UI of the SPSO Dashboard as the same as
the UI.

• Printer Management

Figure 53: SPSO printer management

In the printer management page, there will be a button to add a new printer and a search bar
for finding a specific printer based on its name. In each printer section, there will be a button to
enable/disable a printer. There also a button to edit that printer.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 58/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

• Edit printer modal

Figure 54: Edit printer modal

When click an edit button of a specific printer, a modal will be open for the SPSO to edit the
printer configuration.

• System Configuration

Figure 55: Edit system configuration

In the system configuration page, the SPSO can change the allowed file extensions for the uploaded
document and the default pages supplied for each new student accounts.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 59/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

Unfortunally, we haven’t implemented two pages: The pages for SPSO to view all the orders of
students in each printer and the annual report due to the time limit. An implementation for those
pages may be considered in the future.

6.3 Lesson Learned


After the implementation of the HCMUT SSPS projects, we learned the following lessons:

• Figma Design: We learned how to design an mock-up UI by Figma, which can saved time in
implementation stage.

• API Design: We learned how to design and classified the API properly.

• Time Management: Effective time management was critical throughout the project. Although
trying our best, we cannot manage time as successfully as we expected, leaving some functionalities
of the system haven’t been implemented yet. We take this experience as a good lessons for our
future career.

• Use of New Technology: Throught the project implementation, we learned how to use new
technology for developing a standard software project.

Assignment for Software Engineering - Academic year 2024 - 2025 Page 60/61
Vietnam National University - Ho Chi Minh City
Ho Chi Minh City University of Technology

References
[1] Ian Sommerville (2015), Software Engineering (10th ed.), ISBN 978-0133943030, Pearson

Assignment for Software Engineering - Academic year 2024 - 2025 Page 61/61

You might also like