Warehouse Management System Specs
Warehouse Management System Specs
– 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
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.
# Actor Description
System administrator, fully responsible for managing accounts and assigning
1 Admin user rights.
Page 5 / 23
2.2 Diagrams
2.2.1 UCs for Warehouse Manager
Page 6 / 23
2.2.2 UCs for Warehouse keeper
Page 7 / 23
2.2.3: UCs for Partner
Page 8 / 23
2.2.4: 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
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
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
○ 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 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:
● Row-level actions:
○ 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
○ The Partner enters the Check-in Date, Check-out Date, and an optional 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:
Page 17 / 23
1.1.3 Request Detail
Page 18 / 23
○ Status, Total Price, Total Volume, Note
■ Category
● Data relationship:
Page 19 / 23
1.1.4 Request Management of Partner
Page 20 / 23
● Each shipment includes volume, price, and categories.
● Each shipment can contain multiple products with name, note, and status.
Page 21 / 23
1.1.5 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.
● “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.
■ 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.
Page 23 / 23
1.1.6 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.
Display each request’s information including ID, original checkout date, early export date, status, note,
total price, and total volume.
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.
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.
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.
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
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
[Link] Early Export Request of Manager.
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.
[Link] Early Export Request of Keeper.
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.
[Link] Export Request detail of manager.
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
[Link] Export Request detail of keeper.
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)
Logic:
Page 33 / 23
Content #3: Field Details
● Check Email + Password matches the record in Users table and Status = 1.
Page 34 / 23
● If false: display error message.
● 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.
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.
● 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
Page 37 / 23
2.5 Edit profile.
Content #1: UI Layout (Mockup Screen)
Page 38 / 23
2.5.3 Update profile for Partner.
Content #2: Function Description
Purpose: Allows users to change their personal information.
● Step 1: Get the information of the user currently logged in the system.
● Step 3: Get the information entered from the form and change the user information.
Content #3: Field Details
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
● 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
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.6 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.
● 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:
● 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.
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)
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:
● 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.
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.
Page 45 / 23
Content #2: Function Description
Purpose: Allow manager to manage category
.
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.
Page 46 / 23
Content #2: Function Description
Purpose: Allow manager to manage category
.
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
Page 47 / 23
.
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)
Page 48 / 23
Content #2: Function Description
Purpose: Allow manager to manage category
.
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.
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.
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
Page 54 / 23
Field Name Description
Date of birth Field allows the admin to choose date of birth of staff.
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
Page 56 / 23