0% found this document useful (0 votes)
6 views56 pages

Warehouse Management System Specs

Uploaded by

phucdthe186871
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)
6 views56 pages

Warehouse Management System Specs

Uploaded by

phucdthe186871
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

Requirement & Design Specification

WAREHOUSE MANAGEMENT SYSTEM


Version: 1.0

– Hanoi,June 2025 –

​ ​ Page 1 / 23
Record of Changes
Version Date A*​ In charge Change Description
M, D
V1.0 19/5 A HauHDHE170303 Add context diagram, feature diagram.
V1.0 19/5 A Vietldhe180008 Add Actors.
V1.0 26/5 A HauHDHE170303 Add screen flows, screen authorization.
V1.0 27/05 A PhucDTHE186871 Add register function.
V1.0 28/05 A PhucDTHE186871 Add login function.
V1.0 28/05 A PhucDTHE186871 Add forgot password function.
V1.0 30/5 A Vietldhe180008 Add Use Case Diagram: Warehouse manager,
Warehouse keeper, Partner, Admin.
V1.0 30/5 A HauHDHE170303 Add database schema, table description.
V1.0 30/5 M DuongnaHE187376 Modified Context Diagram, feature diagram.
V1.0 1/6 M HauHDHE170303 Modified database schema, table description.
V1.0 2/6 A Vietldhe180008 Add package diagram, package description.
V1.0 2/6 A Duongnahe187376 Add View profile, Edit profile function.
V1.0 2/6 M Vietldhe180008 Modified Use case Diagram.
V1.0 2/6 A Vietldhe180008 Add Use case Descriptions.
V1.0 3/6 M Duongnahe187376 Modified View profile, Edit profile function.
V1.0 5/6 M HauHDHE170303 Modified Context diagram
V1.0 6/6 A PhucDTHE186871 Add Warehouse Capacity
v1.0 6/6 M Vietldhe180008 Modified Actors, Use Case Diagram
v1.0 6/6 M Duongnahe187376 Modified View profile, Edit profile function.
v1.0 13/6 M Duongnahe187376 Modified View profile, Edit profile function.
v1.0 13/6 A Duongnahe187376 Add Change Password.
V1.0 15/6 A PhucDTHE186871 Modified Warehouse Capacity
V1.0 23/6 A Vietldhe180008 Add Non-UI functions
V1.0 15/7 M HauHDHE170303 Modified Context diagram, Database Schema,Screen
Flow, Screen Authorization, Non-UI functions.
V1.0 15/7 A HauHDHE170303 Add Functional Requirement-1.2,3.2
V1.0 15/7 A PhucDTHE186871 Add Warehouse Status Management for Keeper

​ ​ Page 2 / 23
V1.0 21/7 M HauHDHE170303 Modified Database Schema, User Requirements,
V1.0 21/7 M Duongnahe187376 Modified Use case
V1.0 21/7 A PhucDTHE186871 Modified Warehouse Status Management for Keeper
V1.0 22/7 M Duongnahe187376 UCs for Warehouse Manager

V1.0 24/7 M Duongnahe187376 Modified Functional Requirement


V1.0 25/7 M Duongnahe187376 Modified Functional Requirement

*A - Added M - Modified D - Deleted

​ ​ Page 3 / 23
Contents
Record of Changes.........................................................................................................................................2
I. Overview.................................................................................................................................................... 4
1. System Context...................................................................................................................................... 4
2. User Requirements.................................................................................................................................4
2.1 Actors............................................................................................................................................... 4
2.2 Diagrams.......................................................................................................................................... 5
2.3 Descriptions..................................................................................................................................... 6
3. System Functionalities...........................................................................................................................6
3.1 Screens Flow.................................................................................................................................... 6
3.2 Screen Authorization........................................................................................................................6
3.3 Non-UI Functions............................................................................................................................ 7
II. Functional Requirements...........................................................................................................................8
1. Feature Name1.......................................................................................................................................8
1.1 SubFeature Name1.1........................................................................................................................8
1.2 SubFeature Name1.2........................................................................................................................8
2. User Authentication............................................................................................................................... 8
2.1 User Register....................................................................................................................................8
2.2 User Login........................................................................................................................................8
2.3 Password Reset................................................................................................................................ 8
2.4 User Profile...................................................................................................................................... 8
3. System Administration.......................................................................................................................... 9
3.1 Master Data...................................................................................................................................... 9
3.2 User Management.......................................................................................................................... 10
III. System Design....................................................................................................................................... 10
1. Database Design.................................................................................................................................. 10
1.1 Database Schema........................................................................................................................... 10
1.2 Table Descriptions..........................................................................................................................10
2. Code Packages..................................................................................................................................... 11
2.1 Package Diagram........................................................................................................................... 11
2.2 Package Descriptions..................................................................................................................... 11

​ ​ Page 4 / 23
I. Overview
1. System Context
The Warehouse Management System is a new software system that replaces the current manual and
telephone processes for placing warehouse orders and managing inventory. The context diagram below
illustrates the external entities and system interfaces for the 1.0 release. The system is expected to evolve
over several releases, eventually connecting to Partners and representing warehouse rentals and inventory
management for the system.

1.1 Context Diagram


2. User Requirements
2.1 Actors

# Actor Description
System administrator, fully responsible for managing accounts and assigning
1 Admin user rights.

Warehouse Main supervisor of all warehouse operations.


2
Manager
The person directly checks and updates the quantity of goods during the
Warehouse
3 import or export process.
keeper
External partners use the system to perform warehouse-related activities.
4 Partner
A third party is responsible for authenticating users for the system.
5 Mail

​ ​ Page 5 / 23
2.2 Diagrams
2.2.1 UCs for Warehouse Manager

[Link] UCs for Warehouse Manager

​ ​ Page 6 / 23
2.2.2 UCs for Warehouse keeper

[Link] UCs for Warehouse keeper

​ ​ Page 7 / 23
2.2.3: UCs for Partner

[Link] UCs for Partner

​ ​ Page 8 / 23
2.2.4: UCs for Admin

[Link] UCs for Admin

2.3 Descriptions
ID Use Case Actor(s) Use Case Description
01 Register Account Guest (New - As a new user, I want to register an account with my
User) information so that I can access the features of the system.
02 Login System Registered - As a user with a specific role, I want to be redirected to the
Partner; appropriate page after login so that I can immediately access
Warehouse the features relevant to my role.
Manager;
Warehouse

​ ​ Page 9 / 23
keeper;
Admin
03 Reset Password Registered - As a registered user, I want to request a password reset by
Partner; entering my email so that I can regain access to my account if
Warehouse I forget my password.
Manager;
Warehouse
keeper;
04 View profile Partner; - As a Partner, I want to view my profile so that I can manage
Warehouse my personal information.
Manager; - As a warehouse manager, I want to view my profile so that I
Warehouse can manage my account details.
keeper; - As a warehouse keeper, I want to view my profile so that I
Admin can review my contact information.
- As an admin, I want to view user profiles so that I can
manage user information.
05 Edit Profile Partner; - As a user, I want to edit my profile so that I can keep my
Warehouse personal information up to date.
Manager; - As a warehouse manager, I want to edit my profile so that I
Warehouse can update my contact details.
keeper; - As a warehouse keeper, I want to edit my profile so that I
Admin can ensure my information is correct.
- As an Admin, I want to edit any staff account to ensure
number of staff
06 List Partner Warehouse - As a Warehouse Manager, I want to view the list of partners
Manager; so that I can coordinate warehouse operations with relevant
Warehouse stakeholders.
keeper - As a Warehouse Keeper, I want to view the list of partners
so that I can know who to contact.
07 Manage user Admin - As an Admin, I want to view the list of users so that I can
manage users accounts.
08 Create Account Admin - As an Admin, I want to create staff accounts so that I can
manage staff roles securely.
09 Send Request Partner - As a Partner, I want to send a request so that I can notify the
Details warehouse about incoming goods.
10 Manage Request Warehouse - As a Warehouse Manager, I want to manage the status of
Manager; requests so that I can control the inventory.
Warehouse - As a Warehouse Keeper, I want to receive information on
keeper; requests to ensure accurate preparation of the correct goods.
Partner - As a Partner, I want to manage my own requests while they
are pending so that I can manage my own requests.
11 Change password Partner; - As a registered user, I would like to request a password
Warehouse change by entering my old password and changing it to the
Manager; new password I wish to enter.
Warehouse
keeper;
Admin
12 Manage category Warehouse - As a Warehouse Manager, I want to manage categories so
Manager that I can control which categories are put into my
warehouse.

​ ​ Page 10 / 23
13 Manage Partner Warehouse - As a Warehouse Manager, I want to manage the partners
Manager who are using our system so I can see who is using my
warehouse.
14 Manage Early Warehouse As a Warehouse Manager, I want to manage the status of
Export Request Manager;​ Early Export requests so that I can control inventory.
Warehouse - As a Warehouse Keeper, I want to receive information about
keeper; Early Export requests to ensure accurate preparation of
Partner goods.
- As a Partner, I want to manage my Early Export requests
while they are pending so that I can manage my requests
myself.
15 Create Early Partner - As a Partner, I want to create Early Export requests so that I
Export Request can control the export time of my requests.

3. System Functionalities
3.1 Screens Flow

3.1.1 Screens Flow


3.2 Screen Authorization

Admin Warehouse Partner Warehouse


Screen Manager keeper
Home page X X X X

​ ​ Page 11 / 23
User profile X X X X
Update profile X X X X
Request Management X X
Update request information X X
Manage Early Export X X
Request
Update Early Export X X
Request
Password reset X X X X
Change Password X X X X
User login X X X X
User management X
Update user information X
Create new user X
My request X
Create new request X
My Early Export Request X
Create early export request X
View all information of X
request
Update request X
Warehouse management X X
View warehouse X X
information
Update warehouse X
information
Category management X

3.3 Non-UI Functions


# Feature System Function Description
1 Security & Send email OTP When partners register in the system, the system
authorization will create OTP and send it by email. Email will
send this OTP for the mail of the user for
authentication when creating an account or
forgetting password.
2 Request Auto change status of When the manager enters the request management
management request page, unprocessed requests that have passed the
warehouse entry date will automatically change
status to rejected with a note.
3 User management Authenticate User When different roles access the same
functionality, there will be differences in the
interface and actions that can be performed
between different roles.
4 Request Auto check and assign When a manager applies a request, the system will
management warehouse for request. automatically check if the first warehouse has

​ ​ Page 12 / 23
enough space to accommodate that request. If not,
it will automatically check the next warehouse. If
all warehouses are not enough, the status will not
be changed.
5 Security & CheckPermission Check the right to perform the function
authorization
6 Login Session Create Session Create a login session for the user
Control
7 Login Session Refresh Session Refresh login session
Control

​ ​ Page 13 / 23
II. Functional Requirements
1. Request management
1.1 Create request
1.1.1 My request

​ ​ ​ ​ ​ [Link] Request management for Partner


Purpose:​
Allows the Partner to view, search, filter, and manage their own requests, including viewing details,
editing, and deleting (if permitted).
Role:​
Partner
Logic:
●​ Data retrieval:​

○​ Query all Request records that belong to the currently logged-in Partner (based on
partnerId from the session).​

○​ Displayed data includes: Request ID, Check-in Date, Check-out Date, Status, Total Price,
and Total Volume.​

●​ Search & filter:​

○​ Search by ID: Users can enter an ID in the "Search by Id" field to filter the list by Request
ID.​

​ ​ Page 14 / 23
○​ Filter by status: The "Status" dropdown allows filtering by request status such as
Pending, Apply, or Rejected.​

●​ Pagination:​

○​ The request list is paginated (e.g., 10 rows per page).​

○​ Supports navigation like << < 1 2 3 ... > >>.​

●​ Row-level actions:​

○​ Detail: Navigates to a detail page (ViewRequestDetailServlet) displaying all shipments,


products, and categories related to the request.​

○​ Change: Allowed only if the request is in Pending status. Redirects to the update page
([Link]).​

○​ Del: Allows deletion of the request if it is in Pending status. Triggers a servlet to delete
the request and associated shipments.
Field Name Description
Select (Checkbox) Select shipments you want to include in the early export request.
Search by ID Button to search for a specificrẻquest using its ID.
Detail(button) Button to view detail of that product
Change(button) Button to update the request.
Del(button) Button to delete the request.
Create new Request (button) Click to create new request.
Ealy export Request(button) Click to submit the early export request with the selected shipments.
Table List all request in database
Pagination Split requests into pages for easier viewing and management.

​ ​ Page 15 / 23
1.1.2 Create request

​ ​ ​ [Link] Create Request of Partner


Purpose:​
Allows the Partner to create a new request, including entering time information, notes, and adding a list
of shipments with products, categories, volume, and price.
Role:​
Partner
Logic:
●​ Input data:​

○​ The Partner enters the Check-in Date, Check-out Date, and an optional note.​

○​ Multiple shipments can be added. Each shipment includes:​

■​ Volume, Price, Category.​

■​ A list of products with Product Name and Product Note.​

​ ​ Page 16 / 23
●​ Dynamic interaction:​

○​ Add new Product: Allows the user to add multiple products under the same shipment.​

○​ Add new Shipment: Creates an additional shipment section, each with its own volume,
price, category, and product list.​

●​ Request creation:​

○​ The Create Request button submits all input data to the server to be stored in the
database.​

○​ The Return button navigates back to the request list page ([Link]).​

●​ Data persistence:​

○​ Upon creation, data is saved to the following tables:​

■​ Request: general request info (dates, notes, partner ID, etc.)​

■​ Shipment: includes shipment details linked to the request.​

■​ Product: product details within each shipment.​

■​ Category: assigned to each shipment.

Field Name Description


Check in Date Date when the goods were checked into the warehouse
Check out Date The export date of the shipments.
Note Optional field to provide a reason or comment for the early export request.
Send Request Click to submit the early export request.
Return Click to go back to the previous page without submitting.
Volume Volume of the shipment.
Price Price of the shipment.
Category Dropdown to select the shipment’s category.
Product Name Name of the product included in the shipment.
Note for Product Additional note or comment specific to the product.
Update Button to apply changes or updates to the shipment.
+ Add new Product Button to add another product under the same shipment.
+ Add new shipment Button to add another shipment to the request.
Create Request (button) Click to submit the early export request with the selected shipments.

​ ​ Page 17 / 23
1.1.3 Request Detail

​ ​ ​ ​ ​ [Link] Request Detail of Partner


Purpose:​
Allows the Partner to view the details of a specific request, including general information and the list of
related shipments and products.
Role:​
Partner
Logic:
●​ Display general request information:​

○​ Request ID, Check-in Date, Check-out Date​

​ ​ Page 18 / 23
○​ Status, Total Price, Total Volume, Note​

●​ Display all shipments related to the request.​

○​ Each shipment includes:​

■​ Shipment ID, Volume, Price, Status​

■​ Product Name and Note​

■​ Category​

●​ Enable shipment search by ID (input field to filter the shipment list).​

●​ Data relationship:​

○​ A request contains multiple shipments.​

○​ Each shipment contains products and categories.

Field Name Description


Search shipment by ID Button to search for a specific shipment using its ID.
Pagination Split shipments in the requests into pages for easier viewing.
Table List all shipments in request in database

​ ​ Page 19 / 23
1.1.4 Request Management of Partner

​ ​ ​ ​ ​ [Link] Request Management of Partner


Purpose:
Allows the partner to manage and update a specific request, including general request details and its
related shipments and products.
Role:​
Partner
Logic:
●​ Retrieve the request by ID, including its check-in/check-out time, note, and shipment list.​

​ ​ Page 20 / 23
●​ Each shipment includes volume, price, and categories.​

●​ Each shipment can contain multiple products with name, note, and status.​

●​ Allow partner to search shipment by ID and add new shipment or product.​

●​ Updated data will be saved to tables: Request, Shipment, and Product.

Field Name Description


Check in Date Date when the goods were checked into the warehouse
Check out Date The export date of the shipments.
Search shipment by ID Button to search for a specific shipment using its ID.
Note Optional field to provide a reason or comment for the early export request.
Send Request Click to submit the early export request.
Return Click to go back to the previous page without submitting.
Volume Volume of the shipment.
Price Price of the shipment.
Category Dropdown to select the shipment’s category.
Product Name Name of the product included in the shipment.
Note for Product Additional note or comment specific to the product.
Update Button to apply changes or updates to the shipment.
Add new Product Button to add another product under the same shipment.
Add new shipment Button to add another shipment to the request.
Pagination Split shipments in request into pages for easier viewing and management.

​ ​ Page 21 / 23
1.1.5 Create Early Export Request of Partner

​ ​ ​ ​ ​ [Link] Create Early Export Request of Partner

Purpose:

Allows a Partner to select shipments from an original export request to create a new early export
request, specify the desired early export date, and submit it to the system.

Logic:

●​ Retrieve the list of shipments belonging to an original export request (only those not already
included in an early export request).​

​ ​ Page 22 / 23
●​ Display the following information for each shipment: ID, Volume, Price.​

●​ The Partner can select multiple shipments to include in the request.​

●​ “Check-in Date” and “Original Check-out Date” are shown as read-only fields.​

●​ The Partner selects a single “Early Export Date” that applies to all selected shipments.​

●​ A note field is available for any additional information.​

●​ Clicking “Send Request” will:​

○​ Validate the input:​

■​ At least one shipment must be selected.​

■​ The early export date must be valid (earlier than the original check-out date, and
later than the check-in date).​

○​ If valid, the system saves the request into the corresponding tables: EarlyExportRequest,
ProcessEarly, ShipmentRequest, etc.​

●​ Clicking “Return” will navigate back to the previous screen.

Field Name Description


Select (Checkbox) Select shipments you want to include in the early export request.
Shipment ID Unique ID of the shipment available for early export.
Volume Volume of the selected shipment.
Price Price of the selected shipment.
Early Export Date New export date requested to export earlier than scheduled.
Note Optional field to provide a reason or comment for the early export request.
Send Request Click to submit the early export request.

​ ​ Page 23 / 23
1.1.6 Early Export Request Management of Partner

[Link] Early Export Request Management of Partner

Purpose:

This screen allows Partners to view all their submitted early export requests, check request details, filter
by status, and delete requests if needed.

Logic:
Retrieve all early export requests from the database that belong to the logged-in Partner.​

Support filtering by request status and searching by original request ID.​

Display each request’s information including ID, original checkout date, early export date, status, note,
total price, and total volume.​

Provide a "Detail" button to view full information of a specific request.​

Allow deletion of requests that are still in Pending status via the "Del" button.​

Include pagination logic to split the result set into pages and enable navigation across them.

Field Name Description


Search Enter number, word to search request in database

​ ​ Page 24 / 23
Field Name Description
Table List all request in database
Status View status of request.
View View all information of request
Search Enter number or keyword to find early export requests in the database.
Delete Remove the request if it is still in Pending status.
Status filter Click to choose the status of request you want to see.
Filter button Take and sort requests with the kind you choose in the filter.
View warehouse capacity Click to switch to page view capacity of the warehouse.
Pagination Split requests into pages for easier viewing and management.
Chose number of request Click to select the number of requests displayed on one page.

1.2 Verify requests


1.2.1 Request management of manager
Content #1: UI layout (Mockup Screen)

[Link] Request management for manager


Content #2 Function Description
Purpose: Allows the manager to view and change the status of all requests
Use case mapping: UC-10: “Request management”.
Logic:
●​ Get all requests in the database.
●​ Change of data will be saved into the table Request, Request Process, Shipment.
●​ Check can use the volume of the warehouse and assign for request.
Content #3: Field Detail
.
Field Name Description
Search Enter number, word to search request in database
Table List all request in database
Status Status of request. Can be changed.
View View all information of request

​ ​ Page 25 / 23
Field Name Description
Search button Click to find a request that has info like in the search bar.
Status filter Click to choose the status of request you want to see.
Sort by filter Click to choose information to sort and filter.
Asc des filter Choose the kind of sort you want to use.
Filter button Take and sort requests with the kind you choose in the filter.
View warehouse capacity Click to switch to page view capacity of the warehouse.
Pagination Split requests into pages for easier viewing and management.
Chose number of request Click to select the number of requests displayed on one page.

1.2.2 Request management of keeper


Content #1: UI layout (Mockup Screen)

[Link] Request management for keeper


Content #2 Function Description
Purpose: Allows the keeper to view and change the status of all requests
Use case mapping: UC-10: “Request management”.
Logic:
●​ Get all requests in table ProcessRequest in database.
●​ Change of data will be saved into the table Request Process, Shipment.
Content #3: Field Detail

Field Name Description


Search Enter number, word to search request in database
Table List all request in database
Status Status of request. Can be changed.
View View all information of request
Kepper note The note keeper wants to update.
Update button Update change of status, note keeper changed into database.
Search button Click to find a request that has info like in the search bar.
Status filter Click to choose the status of request you want to see.
Sort by filter Click to choose information to sort and filter.
Asc des filter Choose the kind of sort you want to use.
Filter button Take and sort requests with the kind you choose in the filter.
Pagination Split requests into pages for easier viewing and management.
Chose number of request Click to select the number of requests displayed on one page.
1.2.3 Request detail of manager
Content #1: UI layout (Mockup Screen)

​ ​ Page 26 / 23
[Link] Request detail of manager
Content #2 Function Description
Purpose: Allows the manager to view and change the status of all requests
Use case mapping: UC-11: “Request management”.
Logic:
●​ Get all information of request in the database.
●​ Change of data will be saved into the table Request, Request Process, Shipment.
Content #3: Field Detail

​ ​ Page 27 / 23
Field Name Description
Status Choose status want to change
Note Update note of request
Update button Click to update change into database
View all shipment Click to show pop up to list all shipment in request
View all product Click to show pop up to list all product in request
Back to list Click to back to request management

1.2.4 Request detail of keeper


Content #1: UI layout (Mockup Screen)

[Link] Request details for keeper

​ ​ Page 28 / 23
Content #2 Function Description
Purpose: Allows the keeper to view and change the status of all requests
Use case mapping: UC-10: “Request management”.
Logic:
●​ Get all information of request in the database.
●​ Change of data will be saved into the table Request Process, Shipment.
Content #3: Field Detail

Field Name Description


Keeper Status Choose status want to change
Keeper Note Update note of request
Update button Click to update change into database
View all shipment Click to show pop up to list all shipment in request
View all product Click to show pop up to list all product in request
Back to list Click to back to request management

1.3. Verify early export requests

1.3.1 Manage Early Export Request of Manager.​


Content #1: UI Layout (Mockup Screen)


[Link] Early Export Request of Manager.​

Content #2 Function Description


Purpose: Allows the manager to view and change the status of all requests
Use case mapping: UC-15: “Manage Early Export Request”.
Logic:
●​ Get all early export requests in the database.
●​ Change of data will be saved into the table Early Export Request, Process Early, Shipment.
Content #3: Field Detail
.
Field Name Description
Search Enter number, word to search request in database
Table List all request in database

​ ​ Page 29 / 23
Field Name Description
Status Status of early export request. Can be changed.
View View all information of request
Status filter Click to choose the status of request you want to see.
Sort by filter Click to choose information to sort and filter.
Asc des filter Choose the kind of sort you want to use.
Filter button Take, sort and search requests with the kind you choose in the filter.
View Click to go to the early export request detail page
Pagination Split requests into pages for easier viewing and management.
Chose number of request Click to select the number of requests displayed on one page.

1.3.2 Manage Early Export Request of Keeper.​


Content #1: UI Layout (Mockup Screen)


[Link] Early Export Request of Keeper.​

Content #2 Function Description


Purpose: Allows the manager to view and change the status of all requests
Use case mapping: UC-15: “Manage Early Export Request”.
Logic:
●​ Get all early export requests in the database.
●​ Change of data will be saved into the table Early Export Request, Process Early, Shipment.
Content #3: Field Detail
.
Field Name Description
Search Enter number, word to search request in database
Table List all request in database
Status Status of early export request. Can be changed.
View View all information of request
Status filter Click to choose the status of request you want to see.
Sort by filter Click to choose information to sort and filter.
Asc des filter Choose the kind of sort you want to use.

​ ​ Page 30 / 23
Field Name Description
Filter button Take, sort and search requests with the kind you choose in the filter.
View Click to go to the early export request detail page
Pagination Split requests into pages for easier viewing and management.
Chose number of request Click to select the number of requests displayed on one page.

1.3.3 Early Export Request detail of manager.​


Content #1: UI Layout (Mockup Screen)


[Link] Export Request detail of manager.​

Content #2 Function Description


Purpose: Allows the manager to view and change the status of all requests
Use case mapping: UC-15: “Manage Early Export Request”.
Logic:
●​ Get all early export requests in the database.
●​ Change of data will be saved into the table Early Export Request, Process Early, Shipment.
Content #3: Field Detail

Field Name Description


Status Choose status want to change
Note Update note of early export request

​ ​ Page 31 / 23
Field Name Description
Update button Click to update change into database
View all shipment Click to show pop up to list all shipment in early export request
View all product Click to show pop up to list all product in early export request
Back to list Click to back to manage early export request

1.3.4 Early Export Request detail of keeper.​


Content #1: UI Layout (Mockup Screen)


[Link] Export Request detail of keeper.​

Content #2 Function Description


Purpose: Allows the manager to view and change the status of all requests
Use case mapping: UC-15: “Manage Early Export Request”.
Logic:
●​ Get all early export requests in the database.
●​ Change of data will be saved into the table Early Export Request, Process Early, Shipment.
Content #3: Field Detail

Field Name Description


Status Choose status want to change
Note Update note of early export request

​ ​ Page 32 / 23
Field Name Description
Update button Click to update change into database
View all shipment Click to show pop up to list all shipment in early export request
View all product Click to show pop up to list all product in early export request
Back to list Click to back to manage early export request


2. User Authentication
2.1 User Register
Content #1: UI Layout (Mockup Screen)

2.1.1 Register Screen


Content #2: Function Description
Purpose: Allows users to create new accounts.​

Use Case Mapping: UC-02 “Register New User”.

Logic:

●​ Check for duplicate emails


●​ Check duplicate phone number
●​ Match password and confirm password.​

●​ Default Status = 1 (active).​

●​ Valid data will be saved to the table [Users]

​ ​ Page 33 / 23
Content #3: Field Details

Field Name Description


Full Name User name. text type, Required
Email Login Email. text type, Required, Unique
Phone Number Phone number. number type, Required, Format: number
Address Address. text type, Required
Age Age. int, Optional, Range 10–100
Gender Gender. bit: 1 = Male, 0 = Female
Company name Company Name. text type, Optional
Password Password. text type, Required, Encrypted when saving
Confirm Password Confirm Password. Matches Password
Role Role. text type, Dropdown: User, Admin, Manager
Status Automatically set to 1 (Active) when registration is successful

2.2 User Login


Content #1: UI Layout (Mockup Screen)

2.2.1 Login Screen

Content #2: Function Description


Purpose: Allows users to log into the system.​

Use Case Mapping: UC-03 “Authenticate User”.


Logic:

●​ Check Email + Password matches the record in Users table and Status = 1.​

●​ If correct: login successful → go to dashboard.​

​ ​ Page 34 / 23
●​ If false: display error message.

Content #3: Field Details

Field Name Description


Email Email registered. text type, Required
Password Password. text type, Required, Compare after encryption

2.3 Password Reset


Content #1: UI Layout (Mockup Screen)

Content #2: Function Description

Purpose: Provides password reset functionality.

Use Case Mapping: UC-04 “Reset Password”.


Logic:

●​ Step 1: Enter email → Send OTP code to email.​

●​ Step 2: Enter the OTP code in the email → Enter new password.​

●​ Check token is valid and not expired → update new Password in Users table.

Content #3: Field Details

Field Name Description


Email Registration Email. text type, Required
New Password New password. text type, Required, min 6 characters
Confirm Password Confirm new password. Must match New Password
OTP Unique OTP code sent via email, used to verify reset request

2.4 User profile.​


Content #1: UI Layout (Mockup Screen)

​ ​ Page 35 / 23

2.4.1 User profile for Manager, Keeper.


2.4.2 User profile for Admin.​

​ ​ Page 36 / 23
2.4.3 User profile for Partner.​


Content #2: Function Description​
Purpose: Allows users to view their own information.

Use Case Mapping: UC-04 ”View profile”​


Logic:​

●​ Step 1: Get the information of the user currently logged in the system.
●​ Step 2: Check the user's Role:​
-If the role is Admin, display the admin's information.​
- If the role is Partner, display the partner's information (with the company name).​
- If the role is Keeper, manager, display the information (with age and gender).​


Content #3: Field Details

Field Name Description


Edit profile button Click to go to edit mode
Change password button Click to go to the change password screen

​ ​ Page 37 / 23
2.5 Edit profile.​
Content #1: UI Layout (Mockup Screen)

2.5.1 Update profile for Manager, Keeper.​



2.5.2 Update profile for Admin..​



​ ​ Page 38 / 23

2.5.3 Update profile for Partner.​


Content #2: Function Description​
Purpose: Allows users to change their personal information.

Use Case Mapping: UC-05 ”Edit profile”​


Logic:

●​ Step 1: Get the information of the user currently logged in the system.​

●​ Step 2: Check the user's Role:​


- If the role is partner -> display the form including name, phone number, address, company
name.​
- If the role is keeper, manager, admin -> display the form including phone number, address.​

●​ Step 3: Get the information entered from the form and change the user information.


Content #3: Field Details

Field Name Description


Phone Number Enter new phone number, number type.
Address Enter new address, text type.
Full Name Enter new full name, text type.
Company Name Enter new company name,text type.
Image Click on the avatar section and you will be able to choose the avatar image
you want from your computer.
Cancel button Click to cancel edit and return to profile view

​ ​ Page 39 / 23
Save change button Click to save edits and return to profile view
Change password button Click to go to the change password screen

2.6 Change password.


Content #1: UI Layout (Mockup Screen)

2.6 Change Password.


Content #2: Function Description​
Purpose: Allow users to change their password

Use Case Mapping: UC-012 ”Change password”


Logic:

●​ Step 1: Get current password, new password and confirm new password from form.
●​ Step 2: Check if the password taken from the form is the same as the password saved on the
system and compare the new password and confirm new password:​
- If the current password entered is incorrect or the new password and new confirmation password
are not the same or the current password is equal to the new password, a message is displayed and
the user is prompted to re-enter it.​
-If the current password entered is correct, the new password and the new confirmation password
are the same, and the current password is different from the new password, a message will be
displayed and the password saved in the system will be changed for the user.​
-


Content #3: Field Details

Field Name Description


Current password Enter current password.
New password New password. text type, Required, min 6 characters.
Confirm new password Confirm new password. Must match New Password.

​ ​ Page 40 / 23
Back to Profile button Click to go to view profile page
Change password button Clicking will change your password if it is valid.

2.7 Warehouse Status Management


Content #1: UI Layout (Mockup Screen)


2.6 Warehouse Status Management

Content #2: Function Description


Purpose: Allows users to manage the status, capacity, and damaged volume of warehouses in the
[Link] Case Mapping:UC-XX "Warehouse Status Management"

Logic:

Step 1:Retrieve the list of all warehouses in the system, including information such as warehouse name,
current status, capacity, and damaged volume.

Step 2:Display each warehouse as a card, showing:

●​ Warehouse name
●​ Current status (Active/Maintenance/Closed, etc.)
●​ Maximum capacity
●​ Current usable capacity
●​ Damaged volume

​ ​ Page 41 / 23
●​ Buttons/functions to update status, capacity, damaged volume individually or simultaneously

Step 3:Allow users to perform the following actions for each warehouse:

●​ Update warehouse status (select from a dropdown list)


●​ Update warehouse capacity (enter new value in m³)
●​ Update damaged volume (enter new value in m³)
●​ Update both status and capacity at once
Step 4:When the user submits an update, the system validates the input:

●​ Capacity and damaged volume must be non-negative numbers; damaged volume cannot
exceed capacity.
●​ Status must be a valid option.

Step 5:Update the warehouse information in the system and display a success or error message.

Content #3: Field Details

Field Name Description

Warehouse Name Name of the warehouse, display only, not editable.

Status Warehouse status (Active/Maintenance/Closed...), select


from dropdown.

Capacity Maximum capacity of the warehouse (m³), number input.

Damaged Volume Damaged volume (m³), number input.

Update Status Button Button to update the warehouse status.

Update Capacity Button Button to update the warehouse capacity.

Update Damaged Volume Button Button to update the damaged volume.

Update All Button Button to update both status and capacity at once.

​ ​ Page 42 / 23
2.8 Warehouse capacity statistics
Content #1: UI Layout (Mockup Screen)

Warehouse capacity stastics


Content #2: Function Description
Purpose: Allows managers to view, filter, and analyze warehouse capacity statistics over time, including
used and available capacity, request counts, and shipment [Link] Case Mapping:UC-XX "View
Warehouse Capacity Statistics"

Logic:

Step 1:When a manager accesses the screen, the system checks the user's role. If the user is not a
manager, they are redirected to an access denied [Link] 2:The system retrieves a list of all
warehouses and displays a filter form allowing the user to:

●​ Select a start and end date/time


●​ Choose the statistic type (by day or by month)
●​ Select a specific warehouse or view all warehouses
Step 3:Upon submitting the filter form, the system fetches and displays:

●​ Overview statistics (total data points, total requests, highest used capacity, lowest available
capacity)
●​ A bar chart showing total, used, and available capacity over time

​ ​ Page 43 / 23
●​ A line chart showing trends for the same metrics
●​ A detailed table listing, for each time point:
●​ Date
●​ Number of requests
●​ Used capacity
●​ Available capacity
●​ Total capacity

Step 4:Each date in the table is clickable. When clicked, a modal popup appears showing detailed
shipment information for that date, including:

●​ Shipment ID
●​ Volume
●​ Check-in date
●​ Expected and actual check-out dates
●​ Early/late export status
●​ Shipment status
Step 5:If no data matches the selected filters, an informational message is displayed.

Content #3: Field Detail

Field Name Description

Start Date/Time Date and time to begin statistics (datetime-local input).

End Date/Time Date and time to end statistics (datetime-local input).

Statistic Type Dropdown to select grouping: by day or by month.

Warehouse Selector Dropdown to select a specific warehouse or all warehouses.

Filter Button Submits the filter form to update statistics.

Total Data Points Number of time points in the current statistics.

Total Requests Total number of requests in the selected period.

​ ​ Page 44 / 23
Max Used Capacity Highest used capacity value in the period (m³).

Min Available Capacity Lowest available capacity value in the period (m³).

Bar Chart Visualizes total, used, and available capacity per time point.

Line Chart Shows trends of total, used, and available capacity over time.

Statistics Table Lists date, request count, used/available/total capacity for each
time point.

Shipment Detail Modal Popup showing detailed shipment info for a selected date.

2.8 Manage Category.​


Content #1: UI Layout (Mockup Screen)

2.8 User management.

​ ​ Page 45 / 23
Content #2: Function Description​
Purpose: Allow manager to manage category

Use Case Mapping: UC-013 ”Manage category”


Logic:

●​ Get all categories from the database.


●​ Changes or new creations will be saved in the database.

Content #3: Field Detail

.
Field Name Description
Search Enter number, word to search category
Table List all category in database
Status Status of category. Can be changed with out role manager
Search button Click to find a category that has info like in the search bar.
Sort Click on the attributes on the table header to sort by that attribute.
Create category Click to switch to create new category and add to the database.
Pagination Split categories into pages for easier viewing and management.
Show Click to select the number of requests displayed on one page.

2.8.1 Add category.

2.8.1 Add category.

​ ​ Page 46 / 23
Content #2: Function Description​
Purpose: Allow manager to manage category

Use Case Mapping: UC-013 ”Manage category”


Logic:

●​ New creations will be saved in the database.

Content #3: Field Detail

.
Field Name Description
Category Name Enter the name of the category you want to add
Note Enter a note for your new category
Add category button Click to create a new category in the database
Cancel button Click to close the form add category

2.8.1 Edit category.

2.8.1 Edit category.

​ ​ Page 47 / 23

Content #2: Function Description​


Purpose: Allow manager to manage category

Use Case Mapping: UC-014 ”Manage partner”


Logic:

●​ Get all information of category from the database.


●​ Changes will be saved in the database.

Content #3: Field Detail

.
Field Name Description
Category Name Enter the new name of the category you want to edit.
Note Enter the new note you want
Status Select the new status you want to edit
Edit button Clicking will save your entry, close the form and display a message.
Cancel button Clicking will cancel the changes and close the form.


2.9 Manage status Partner.​
Content #1: UI Layout (Mockup Screen)

2.9 User management.

​ ​ Page 48 / 23
Content #2: Function Description​
Purpose: Allow manager to manage category

Use Case Mapping: UC-014 ”Manage partner”


Logic:

●​ Get all partner from the database.


●​ Changes or new creations will be saved in the database.

Content #3: Field Detail

.
Field Name Description
Search Enter number, word to search category
Table List all partner in database
Status Status of partner . Can be changed with out role manager
Search button Click to find a category that has info like in the search bar.
Sort Click on the attributes on the table header to sort by that attribute.
View requests button Clicking will redirect to that partner's request viewing page
Pagination Split categories into pages for easier viewing and management.
Show Click to select the number of requests displayed on one page.

3. System Administration
3.1 User Management
3.1.1 User List
Content #1: UI layout (Mockup Screen)

​ ​ Page 49 / 23
[Link] User management
Content #2: Function Description
Purpose: Allows the admin to view and change the status of all requests
Use case mapping: UC-07: “Manage User”.
Logic:
●​ Get all users in the database.
●​ Change of data will be saved into the table User.
Content #3: Field Detail

.
Field Name Description
Search Enter number, word to search user in database
Table List all user in database
Status Status of user. Can be changed with out role admin
View View all information of user
Search button Click to find a user that has info like in the search bar.
Status filter Click to choose the status of request you want to see.
Sort by filter Click to choose information to sort and filter.
Asc des filter Choose the kind of sort you want to use.
Filter button Take and sort requests with the kind you choose in the filter.
Create new staff Click to switch to create new staff and add to the database.
Pagination Split users into pages for easier viewing and management.
Chose number of users Click to select the number of requests displayed on one page.

3.1.2 User Details


Content #1: UI layout (Mockup Screen)

​ ​ Page 50 / 23
[Link] User Details of Admin

​ ​ Page 51 / 23
[Link] User details of Manager or keeper

​ ​ Page 52 / 23
[Link] User details of Partner
Content #2: Function Description
Purpose: Allows the admin to view and change the status of requests
Use case mapping: UC-07: “Manage User”.
Logic:
●​ Get all information of users in the database.
●​ Change of data will be saved into the table User.
Content #3: Field Detail

.
Field Name Description
Name Display name of user, can be changed
Status Status of user. Can be changed with role manager, keeper and partner.
Company Only displays with users have role partners. Can be changed
Status Display status of user. Can be changed with role manager, keeper and partner.
Role Display role of user. Only display with role manager and keeper. Can be
change from manager to keeper and vice versa
Gender Display gender of user. Can choose 1 of 2 gender
Phone Display phone number of user. Can be changed with all roles.
Address Display address of user. Can be changed with all roles.

3.1.3 Create staff


Content #1: UI layout (Mockup Screen)

​ ​ Page 53 / 23
Content #2: Function Description
Purpose: Allows the admin to view and change the status of requests
Use case mapping: UC-08: “Create User”.
Logic:
●​ Create new staff and add into database
●​ Change of data will be saved into the table User.
Content #3: Field Detail

Field Name Description


Full Name The Insert field allows the admin to enter the name of staff.
Email Insert field allows admin to enter email of staff.
Password The Insert field allows the admin to enter the password of the staff.
Role Choose a field to allow the admin to choose the role of staff.
Gender Choose the gender of staff. Default is male
Phone The Insert field allows the admin to enter the phone number of staff.
Create button Click this button to insert data into the database.

​ ​ Page 54 / 23
Field Name Description
Date of birth Field allows the admin to choose date of birth of staff.

III. System Design


1. Database Design
1.1 Database Schema

1.1.1 Database Diagram

1.2 Table Descriptions

No Table Description
01 User - Primary keys: ID
- Foreign keys: none
- Unique keys: none
02 Request - Primary keys: ID
-Foreign keys: PartnerID
- Unique keys: none
03 Request - Primary key: none
Process - Foreign key: RequestID; ManagerID
- Unique keys: none
04 Shipment - Primary keys: ID
-Foreign keys: RequestID
-Unique keys: none
05 Warehouse - Primary keys: ID
- Foreign keys: none
- Unique keys: none

​ ​ Page 55 / 23
06 Category - Primary keys: ID
- Foreign keys: none
- Unique keys: none
07 Product - Primary keys: none
- Foreign keys: ShipmentID
- Unique keys: none
08 ShipmentCate - Primary keys: none
gory - Foreign keys: ShipmentID; CategoryID
- Unique keys: none
09 EarlyExportRe - Primary keys: ID
quest - Foreign keys: RequestID
- Unique keys: none
10 ProcessEarly - Primary keys: none
- Foreign keys: none
- Unique keys: none

2. Code Packages
2.1 Package Diagram

2.2 Package Descriptions


No Package Description
01 controller Contains servlets that process business logic, receive requests from
clients, and return responses.
02 dao Contains classes that access and manipulate data with the database.
03 model Contains entity classes and business objects of the system.
04 util Contains utility classes that are shared across the system.
05 web-pages Contains interface files (JSP, HTML, CSS, JS) and static resources

​ ​ Page 56 / 23

You might also like