SoftEngineer 1
SoftEngineer 1
UNIVERSITY OF TECHNOLOGY
FACULTY OF COMPUTER SCIENCE AND ENGINEERING
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
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
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
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. 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.
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.
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.
(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.
(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.
(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.
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.
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
Description: For student, the system requires HCMUT email and password for authentication.
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
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
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
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.
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
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.
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
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
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
Description: When click on the tab "Printer management", the System will render the list of all
printers, containing their basic information.
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
• 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
• 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.
• 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.
• 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.
• 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.
• 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.
• 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.
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.
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.
• 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
• 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 );
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
• 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 );
• 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.
• 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
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
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
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
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.
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
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.
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.
To carry out usability testing effectively, the team followed these structured steps:
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
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
Gather participant feedback after each round using Google Forms to document their experiences,
observations, and any issues they encountered.
After reviewing feedback from each round, make necessary refinements to MVP1 to address identified
issues and enhance usability.
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.
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:
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:
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.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.
• 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
The "choosing role" page is still remain the same as the Figma design.
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
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
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
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
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
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
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.
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
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
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
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.
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
• 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
Due to the time limit, we cannot fully implemented the UI of the SPSO Dashboard as the same as
the UI.
• 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
When click an edit button of a specific printer, a modal will be open for the SPSO to edit the
printer configuration.
• 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.
• 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