You are on page 1of 138

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


KHOA CÔNG NGHỆ THÔNG TIN 2


ĐỒ ÁN MÔN HỌC
MÔN PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN
ĐỀ TÀI: WEBSITE BÁN SÁCH, VĂN PHÒNG PHẨM ONLINE

SINH VIÊN MÃ SỐ SINH VIÊN LỚP

ĐOÀN NGỌC TÀI N20DCCN061 D20CQCNPM01-N

NGUYỄN VĂN THỌ N20DCCN076 D20CQCNPM01-N

LÊ XUÂN TRƯỜNG N20DCCN081 D20CQCNPM01-N

HÀ XUÂN THANH N20DCCN141 D20CQCNPM02-N

PHU DỰ THẮNG N20DCCN146 D20CQCNPM02-N

GIẢNG VIÊN HƯỚNG DẪN TH.S DƯƠNG THANH THẢO

Tp. Hồ Chí Minh, ngày 20 tháng 01 năm 2024


MỤC LỤC
A. XÁC ĐỊNH YÊU CẦU HỆ THỐNG ................................................................... 1
1. SƠ ĐỒ MÔ HÌNH HOẠT ĐỘNG, WORKFLOW HỆ THỐNG ................ 1
1.1. Sơ đồ mô hình hoạt động ........................................................................... 1
1.2. Sơ đồ workflow hệ thống............................................................................ 2
2. MÔ TẢ YÊU CẦU HỆ THỐNG..................................................................... 3
2.1. Các tác nhân tham gia hệ thống ................................................................ 3
2.2. Bảng thuật ngữ ........................................................................................... 3
2.3. Yêu cầu nghiệp vụ ...................................................................................... 6
2.4. Yêu cầu hệ thống ...................................................................................... 11
3. CÁC BIỂU ĐỒ USECASE TƯƠNG ỨNG ................................................. 14
3.1. Sơ đồ tổng quát ......................................................................................... 14
3.2. Sơ đồ chi tiết ............................................................................................. 14
4. CÁC BIỂU ĐỒ TUẦN TỰ/GIAO TIẾP TƯƠNG ỨNG ............................ 46
5. CÁC BIỂU ĐỒ HOẠT ĐỘNG TƯƠNG ỨNG ........................................... 86
B. PHÂN TÍCH HỆ THỐNG .................................................................................. 90
1. MÔ TẢ PHÂN TÍCH HỆ THỐNG .............................................................. 90
2. CÁC BIỂU ĐỒ LỚP TƯƠNG ỨNG ............................................................ 93
2.1. Sơ đồ tổng quát ......................................................................................... 93
2.2. Sơ đồ chi tiết ............................................................................................. 94
3. CÁC BIỂU ĐỒ TRẠNG THÁI TƯƠNG ỨNG ........................................ 110
C. THIẾT KẾ HỆ THỐNG ................................................................................... 113
1. KIẾN TRÚC HỆ THỐNG .......................................................................... 113
1.1. Lựa chọn công nghệ mạng – kiến trúc hạ tầng .................................... 113
1.2. Biểu đồ triển khai hình trạng mạng ...................................................... 114
1.3. Biểu đồ gói .............................................................................................. 114
2. LỰA CHỌN CƠ SỞ DỮ LIỆU VÀ CÁC CÔNG NGHỆ......................... 115
2.1. Hệ quản trị cơ sở dữ liệu ....................................................................... 115
2.2. Công nghệ lập trình phía Server ........................................................... 117
2.3. Công nghệ lập trình phía Client ............................................................ 119
2.4. Các công nghệ khác ...............................................................................121
3. BIỂU ĐỒ THIẾT KẾ CƠ SỞ DỮ LIỆU ...................................................124
4. LƯỢC ĐỒ PHÂN RÃ HỆ THỐNG CON .................................................124
5. GIAO DIỆN NGƯỜI DÙNG CHÍNH ........................................................125
PHỤ LỤC ...................................................................................................................135
A. XÁC ĐỊNH YÊU CẦU HỆ THỐNG
1. SƠ ĐỒ MÔ HÌNH HOẠT ĐỘNG, WORKFLOW HỆ THỐNG
1.1. Sơ đồ mô hình hoạt động

Diagram - Sơ đồ mô hình hoạt động

1
1.2. Sơ đồ workflow hệ thống
a) Workflow nhập hàng

b) Workflow bán hàng

2
2. MÔ TẢ YÊU CẦU HỆ THỐNG
2.1. Các tác nhân tham gia hệ thống
a) Các tác nhân tham gia
❑ Nhà cung cấp
❑ Khách hàng thân thiết
❑ Khách hàng vãng lai
❑ Nhân viên bán hàng
❑ Nhân viên quản lý
❑ Nhân viên kho
❑ Hệ thống vận chuyển
❑ Hệ thống thanh toán
❑ Hệ thống hóa đơn điện tử
❑ Hệ thống báo cáo – thống kê
b) Quan hệ kế thừa giữa các tác nhân

2.2. Bảng thuật ngữ

Thuật ngữ Chú thích

Category Nhóm các sản phẩm cùng chung chức năng hoặc
(Danh mục sản phẩm) thể loại như “Sách kinh doanh”, “Truyện tranh”,
hoặc “Dụng cụ học tập”.

3
Brand Nhóm sản phẩm cùng chung nhà xuất bản hoặc nhà
(Thương hiệu sản phẩm) sản xuất như “NXB Trẻ”, “NXB Kim Đồng”, hoặc
“Thiên Long”.

BusinessPartner Người tham gia thực hiện hoặc xử lý các giao dịch
(Đối tác kinh doanh) thương mại như nhập – xuất hàng hoặc mua hàng
trong hệ thống.

Supplier Đơn vị sản xuất, nhà phân phối hoặc bất kỳ tổ chức
(Nhà cung cấp) nào hợp tác với hệ thống để cung cấp hàng hóa
hoặc dịch vụ bán hàng.

E-Invoice Chứng từ kế toán lưu trữ các thông tin về bán hàng
(Hóa đơn điện tử) hoá hoặc cung ứng dịch vụ được thể hiện dưới dạng
dữ liệu điện tử.

Inventory Tổng số lượng sản phẩm mà một hệ thống đang sở


(Hàng tồn kho) hữu và lưu trữ trong kho hàng để thực hiện các giao
dịch thương mại với khách hàng.

Contract Code Tập hợp các quy tắc và điều khoản mà cả hai hoặc
(Mã hợp đồng) nhiều cá nhân hoặc tổ chức cam kết tuân thủ trong
một mối quan hệ kinh doanh, giữa hệ thống và nhân
viên hoặc nhà cung cấp.

Tax Code Chuỗi số hoặc ký tự được cơ quan quản lý thuế cấp


(Mã số thuế) theo quy định pháp luật để có thể nhận diện và quản
lý nghĩa vụ thuế cá nhân hoặc doanh nghiệp trong
hệ thống thuế.

Loyal Customer Nhóm khách hàng có xu hướng mua sắm ổn định và


(Khách hàng thân thiết) trung thành với thương hiệu hoặc doanh nghiệp mà
họ thường xuyên theo dõi và liên tục mua sắm sản
phẩm hoặc sử dụng dịch vụ.

Casual Customer Nhóm khách hàng có xu hướng mua sắm không ổn


(Khách hàng vãng lai) định và thường xuyên thay đổi lựa chọn của họ tùy
thuộc vào nhu cầu hoặc tình huống cụ thể trong một
khoảng thời gian ngắn.

4
Potential Customer Nhóm khách hàng có xung hướng quan tâm đến sản
(Khách hàng tiềm năng) phẩm hoặc dịch vụ nhưng chưa thực hiện bất kỳ
giao dịch nào, và có khả năng trở thành khách hàng
thân thiết cho một doanh nghiệp.

B2B Quá trình trao đổi sản phẩm hoặc dịch vụ giữa các
(Business to Business) doanh nghiệp, giao dịch kinh doanh giữa hai doanh
nghiệp hoặc tổ chức, thường đi kèm với các thỏa
thuận và điều kiện kinh doanh.

B2C Quá trình mua sắm và sử dụng dịch vụ giữa khách


(Business to Customer) hàng và doanh nghiệp, giao dịch kinh doanh giữa
một doanh nghiệp và khách hàng tiêu dùng, thường
đi kèm với các chính sách bán hàng.

Voucher Một loại ưu đãi giảm giá có thời hạn sử dụng được
(Ưu đãi mua hàng) cung cấp cho các khách hàng thân thiết nhằm tăng
cường trải nghiệm mua sắm.

Shopping Experience Trải nghiệm tổng thể của các khách hàng trong quá
(Trải nghiệm mua sắm) trình mua sắm hoặc sử dụng dịch vụ, gồm các yếu
tố như chất lượng sản phẩm, dịch vụ khách hàng và
các yếu tố khác.

User Experience Trải nghiệm tổng thể của các khách hàng trong quá
(Trải nghiệm người dùng) trình tương tác với ứng dụng website, gồm các yếu
tố như giao diện và cấu hình, cũng như các tiện ích
mà website cung cấp.

Cart Một tính năng đặc trưng trên ứng dụng thương mại
(Giỏ hàng) điện tử cho phép khách hàng tạm lưu các sản phẩm
muốn mua trước khi tiến hành thanh toán để có thể
thực hiện mua nhiều sản phẩm cùng lúc.

Order Tracking Một tính năng đặc trưng trên ứng dụng thương mại
(Theo dõi đơn hàng) điện tử cho phép khách hàng theo dõi trạng thái và
thông tin của đơn hàng kể từ thời điểm đặt mua đến
khi giao hàng hoàn tất.

5
2.3. Yêu cầu nghiệp vụ
Đối với nhân viên hệ thống, nhân viên phải thực hiện đăng nhập để có thể thực
hiện các tác vụ quản lý. Đối với khách hàng, khi truy cập vào hệ thống, khách hàng
có thể sử dụng một số chức năng mặc định là xem chi tiết thông tin sản phẩm và tìm
kiếm sản phẩm mà không cần đăng nhập, và để có thể sử dụng các chức năng khác
thì khách hàng phải sở hữu tài khoản và thực hiện đăng nhập vào hệ thống trước, nếu
chưa có thì phải thực hiện đăng ký tài khoản. Hệ thống được phân thành 2 site, bao
gồm site quản trị và site khách hàng.
a) Site quản trị

− Nhân viên quản lý


o Quản lý kho hàng
❑ Xem thông tin kho hàng.
❑ Tạo kho hàng mới.
❑ Cập nhật thông tin kho hàng.
❑ Xóa kho hàng.
o Quản lý tài khoản
❑ Xem thông tin tài khoản.
❑ Cấp tài khoản người dùng.
❑ Khóa tài khoản người dùng.
❑ Xóa tài khoản người dùng.
o Quản lý quyền hạn
❑ Xem thông tin quyền hạn.
❑ Tạo quyền hạn mới.
❑ Cập nhật thông tin quyền hạn.
❑ Xóa quyền hạn.
❑ Phân quyền tài khoản người dùng.
o Quản lý nhân viên
❑ Xem thông tin nhân viên.
❑ Tạo nhân viên mới.
❑ Cập nhật thông tin nhân viên.

6
❑ Xóa nhân viên.
o Quản lý đặt hàng
❑ Nhận thông tin sản phẩm từ các nhà cung cấp.
❑ Quyết định các sản phẩm cần đặt hàng từ các nhà cung cấp.
o Quản lý nhập hàng
❑ Duyệt phiếu nhập hàng.
❑ Hủy phiếu nhập hàng.
o Quản lý xuất hàng
❑ Duyệt phiếu nhập hàng.
❑ Hủy phiếu nhập hàng.
o Báo cáo – thống kê
❑ Xem thông tin báo cáo – thống kê.
❑ Tạo báo cáo cuối ngày.
❑ Thống kê doanh thu theo thời gian.
❑ Thống kê các chỉ số kinh doanh theo thời gian.
❑ Xuất báo cáo – thống kê.

− Nhân viên kho


o Quản lý đặt hàng
❑ Nhận thông tin quyết định đặt hàng từ nhân viên quản lý.
❑ Liên hệ và đặt hàng với nhà cung cấp.
o Quản lý nhập hàng
❑ Nhập hàng vào kho.
❑ Xem thông tin phiếu nhập hàng.
❑ Tạo phiếu nhập hàng khi đặt hàng từ nhà cung cấp.
❑ Hủy phiếu nhập hàng.
o Quản lý xuất hàng
❑ Xuất hàng ra kho.
❑ Xem thông tin phiếu xuất hàng.

7
❑ Tạo phiếu xuất hàng tương ứng với các đơn hàng của khách hàng
hoặc khi xuất kho nội bộ.
❑ Hủy phiếu xuất hàng.
o Quản lý tồn kho sản phẩm
❑ Xem thông tin sản phẩm.
❑ Cập nhật thông tin tồn kho của sản phẩm.

− Nhân viên bán hàng


o Quản lý thương hiệu sản phẩm
❑ Xem thông tin thương hiệu.
❑ Tạo thương hiệu mới.
❑ Cập nhật thông tin thương hiệu.
❑ Xóa thương hiệu.
o Quản lý danh mục sản phẩm
❑ Xem thông tin danh mục sản phẩm.
❑ Tạo danh mục sản phẩm mới.
❑ Cập nhật thông tin danh mục sản phẩm.
❑ Xóa danh mục sản phẩm.
o Quản lý giá sản phẩm
❑ Xem thông tin giá sản phẩm.
❑ Tạo giá mới (giá bán, giá khuyến mãi, giá ưu đãi, …).
❑ Cập nhật thông tin giá sản phẩm.
❑ Xóa giá sản phẩm.
o Quản lý sản phẩm
❑ Xem thông tin sản phẩm.
❑ Tạo sản phẩm mới.
❑ Cập nhật thông tin sản phẩm.
❑ Xóa sản phẩm.
o Quản lý đơn hàng
❑ Xem thông tin đơn hàng.

8
❑ Duyệt đơn hàng.
❑ Hủy đơn hàng.
o Quản lý hóa đơn
❑ Xem thông tin hóa đơn.
❑ Xuất hóa đơn điện tử.
o Quản lý ưu đãi khách hàng thân thiết
❑ Xem thông tin ưu đãi.
❑ Tạo ưu đãi mới.
❑ Cập nhật thông tin ưu đãi.
❑ Xóa ưu đãi.
b) Site khách hàng

− Không đăng nhập


❑ Đăng nhập hệ thống.
❑ Đăng ký tài khoản.
❑ Nhận email xác thực khi đăng ký tài khoản.
❑ Khôi phục mật khẩu khi đã có tài khoản.
❑ Nhận email xác thực khi khôi phục mật khẩu.
❑ Xem chi tiết thông tin sản phẩm.

− Đã đăng nhập
o Quản lý tài khoản cá nhân
❑ Đổi mật khẩu.
❑ Xem thông tin cá nhân.
❑ Cập nhật thông tin cá nhân.
❑ Nhận email xác thực khi thay đổi email.
o Quản lý địa chỉ giao hàng
❑ Xem thông tin địa chỉ giao hàng.
❑ Tạo địa chỉ giao hàng mới.
❑ Cập nhật thông tin địa chỉ giao hàng.

9
❑ Xóa địa chỉ giao hàng.
❑ Thiết lập địa chỉ giao hàng mặc định.
o Quản lý giỏ hàng
❑ Xem thông tin giỏ hàng.
❑ Thêm sản phẩm vào giỏ hàng.
❑ Tăng số lượng sản phẩm.
❑ Giảm số lượng sản phẩm.
❑ Xóa sản phẩm trong giỏ hàng.
❑ Đặt hàng thông qua giỏ hàng.
o Đặt hàng
❑ Đặt hàng ngay một sản phẩm.
❑ Nhập thông tin giao hàng.
❑ Tùy chọn phương thức thanh toán.
❑ Áp dụng ưu đãi khách hàng thân thiết.
❑ Nhận email xác nhận khi đặt hàng.
❑ Nhận email thông báo khi nhân viên duyệt hoặc hủy đơn hàng.
❑ Nhận hóa đơn điện tử khi đơn hàng thành công.
❑ Tích lũy điểm thưởng khi đơn hàng thành công.
❑ Nâng cấp bậc khách hàng thân thiết khi tích lũy đủ điểm thưởng.
o Quản lý đơn hàng
❑ Xem thông tin đơn hàng.
❑ Hủy đơn hàng chỉ khi đơn hàng chưa được vận chuyển.
❑ Theo dõi trạng thái đơn hàng.
❑ Lọc đơn hàng theo trạng thái.
o Quản lý đánh giá sản phẩm
❑ Xem thông tin bài đánh giá.
❑ Tạo bài đánh giá khi đơn hàng thành công.
❑ Cập nhật thông tin bài đánh giá.
❑ Được like/unlike bài đánh giá của người khác.
10
2.4. Yêu cầu hệ thống
a) Yêu cầu chức năng
Hệ thống được xây dựng có khả năng hỗ trợ các chức năng cơ bản như xem
thông tin và tra cứu thông tin các đối tượng trong hệ thống cho người dùng, cả
khách hàng và nhân viên, đồng thời đáp ứng các yêu cầu chức năng tối thiểu để
đảm bảo hệ thống hoạt động với đầy đủ chức năng của một hệ thống bán hàng.

− Site quản trị


o Nhân viên quản lý
❑ Cung cấp các chức năng quản lý nhân viên, kho hàng và quyền hạn
như tạo mới, cập nhật thông tin và xóa bỏ đối tượng.
❑ Cung cấp chức năng quản lý tài khoản như cấp mới, khóa và xóa
tài khoản người dùng.
❑ Cung cấp chức năng quản lý việc nhập và xuất hàng hóa như duyệt
hoặc hủy phiếu nhập và phiếu xuất hàng hóa.
❑ Cung cấp chức năng báo cáo – thống kê như tạo báo cáo cuối ngày,
thống kê doanh thu, chỉ số kinh doanh (sản phẩm, đơn hàng, người
dùng, giá thành, …) theo thời gian và xuất báo cáo – thống kê.
o Nhân viên kho
❑ Cung cấp các chức năng quản lý phiếu nhập và xuất hàng hóa như
tạo mới và hủy bỏ phiếu.
❑ Cung cấp chức năng quản lý tồn kho như cập nhật số lượng tồn.
o Nhân viên bán hàng
❑ Cung cấp các chức năng quản lý sản phẩm, thương hiệu, danh mục,
giá sản phẩm và ưu đãi khách hàng thân thiết như tạo mới, cập nhật
và xóa bỏ đối tượng.
❑ Cung cấp chức năng quản lý hóa đơn như xuất hóa đơn điện tử.
❑ Cung cấp chức năng quản lý đơn hàng như duyệt và hủy đơn hàng.

− Site khách hàng


❑ Cung cấp các chức năng cơ bản như đăng nhập, đăng ký tài khoản và
khôi phục mật khẩu.
❑ Cung cấp chức năng quản lý tài khoản cá nhân như cập nhật thông tin
cá nhân và đổi mật khẩu tài khoản.
11
❑ Cung cấp chức năng quản lý giỏ hàng như thêm mới, tăng hoặc giảm
số lượng và xóa sản phẩm trong giỏ hàng.
❑ Cung cấp chức năng quản lý địa chỉ giao hàng như tạo mới, cập nhật,
xóa địa chỉ và thiết lập địa chỉ giao hàng mặc định.
❑ Cung cấp chức năng quản lý ưu đãi khách hàng thân thiết như lưu trữ
và áp dụng ưu đãi cho các đơn hàng.
❑ Cung cấp chức năng quản lý đơn hàng như hủy đơn hàng, theo dõi
trạng thái đơn hàng và lọc đơn hàng theo trạng thái.
❑ Cung cấp khả năng tích lũy điểm thưởng khi đơn hàng được giao thành
công và nâng cấp bậc khách hàng thân thiết cho tài khoản khách hàng
khi đạt ngưỡng điểm thưởng tích lũy theo yêu cầu.
❑ Cung cấp khả năng thông báo đến khách hàng qua hình thức email như
gửi “email xác nhận” khi đặt hàng, “email thông báo” khi đơn hàng
được duyệt hoặc hủy, “email xác thực” khi đăng ký tài khoản, khôi
phục mật khẩu hoặc khách hàng thay đổi thông tin email tài khoản và
“email hóa đơn điện tử” khi đơn hàng được giao thành công.
❑ Cung cấp khả năng đặt hàng thông qua mua ngay một sản phẩm hoặc
mua nhiều sản phẩm thông qua giỏ hàng, có thể nhập thông tin giao
hàng và thông tin thanh toán gồm ưu đãi và phương thức thanh toán.
b) Yêu cầu phi chức năng

− Hiệu năng
❑ Hệ thống phải đảm bảo được hiệu suất hoạt động ổn định để có thể xử
lý đồng thời các giao dịch từ khách hàng và nhân viên. (Thời gian đáp
ứng yêu cầu < 2 giây)
❑ Thông tin giao dịch và thống kê của người dùng và hệ thống phải được
đảm bảo tuyệt đối chính xác, khách quan và luôn được cập nhật theo
thời gian thực.

− Tính bảo mật


❑ Hệ thống phải đảm bảo việc phân quyền chức năng cho tài khoản người
dùng. (Chỉ có tài khoản được cấp quyền mới được phép thực hiện tác
vụ trên hệ thống)
❑ Hệ thống phải đảm bảo việc bảo vệ thông tin cá nhân của người dùng
khỏi sự truy cập trái phép. (Mã hóa thông tin “nhạy cảm”)

12
❑ Hệ thống có khả năng chống các loại tấn công, đặc biệt là web-based
như SQL Injection, Command Injection, Cross-Site Scripting, Cross-
Site Request Forgery, …

− Tính khả dụng


❑ Hệ thống phải đảm bảo luôn trong tình trạng sẵn sàng và có thể truy
cập. (Thời gian ngưng hoạt động cho phép < 1 giờ)
❑ Hệ thống phải đảm bảo việc sao lưu dự phòng định kỳ để có thể phục
hồi dữ liệu khi xảy ra sự cố. (Dữ liệu được sao lưu mỗi 30 phút)

− Tính tương thích


❑ Hệ thống có thể hoạt động trên nhiều loại thiết bị khác nhau, từ máy
tính đến điện thoại di động.
❑ Hệ thống có thể hoạt động trên nhiều trình duyệt để đảm bảo mọi người
dùng đều có thể truy cập.

− Tính tích hợp


❑ Hệ thống có khả năng tích hợp một cách dễ dàng và hiệu quả với các
hệ thống khác như thanh toán, hóa đơn điện tử và vận chuyển.
❑ Hệ thống có khả năng hỗ trợ liên kết và giao tiếp với các đối tác và bên
thứ ba thông qua API – Application Programming Interface.

− Các yêu cầu khác


❑ Giao diện cần được thiết kế theo phong cách hiện đại sao cho thông tin
được thể hiện trực quan và dễ sử dụng đối với người dùng.
❑ Hệ thống cần có khả năng mở rộng các chức năng mà không làm ảnh
hưởng đến hiệu suất chung của toàn hệ thống.
❑ Hệ thống cần được tối ưu hóa công cụ tìm kiếm để tăng khả năng xuất
hiện trên các trang kết quả tìm kiếm.
❑ Hệ thống có thể phân biệt các loại tiền tệ khác nhau, hỗ trợ đa ngôn
ngữ và tự động thể hiện ngôn ngữ theo định vị của người dùng.
❑ Hệ thống cần cung cấp các kênh hỗ trợ, như trò truyện trực tuyến, email
hoặc số điện thoại, để giúp người dùng khi gặp vấn đề.
❑ Hệ thống cần cung cấp tài liệu hướng dẫn trực tuyến để người dùng có
thể tự tìm hiểu và giải quyết vấn đề nhanh chóng.

13
3. CÁC BIỂU ĐỒ USECASE TƯƠNG ỨNG
3.1. Sơ đồ tổng quát

Diagram - Lược đồ USECASE tổng quát


3.2. Sơ đồ chi tiết

− Usecase đăng nhập

14
Tên usecase Đăng nhập

Tác nhân chính Người dùng

Điều kiện trước o Người dùng truy cập giao diện đăng nhập.
o Người dùng đã có tài khoản người dùng hợp lệ.

Đảm bảo tối thiểu o Hệ thống xác thực thông tin tài khoản người dùng.
o Người dùng chỉ có thể đăng nhập bằng tài khoản hợp
lệ được cấp thông qua đăng ký tài khoản.

Điều kiện sau  Người dùng đã đăng nhập thành công và được chuyển
hướng đến giao diện trang chủ.
 Hệ thống sẽ hiển thị thông báo lỗi chi tiết và yêu cầu
người dùng đăng nhập lại.

Chuỗi sự kiện chính


1. Người dùng truy cập website.
2. Hệ thống hiển thị giao diện đăng nhập.
3. Người dùng nhập thông tin đăng nhập (tên tài khoản và mật khẩu).
4. Hệ thống kiểm tra tính hợp lệ của thông tin.
5. Hệ thống xác thực thông tin tài khoản.
6. Hệ thống ghi lại hoạt động và cấp phiên làm việc.
7. Người dùng được chuyển hướng đến giao diện trang chủ.
8. Kết thúc usecase.

− Usecase đăng xuất

Tên usecase Đăng xuất

Tác nhân chính Người dùng

15
Điều kiện trước Người dùng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu Người dùng được đăng xuất an toàn.

Điều kiện sau Người dùng được chuyển hướng đến giao diện trang chủ
ở trạng thái không có tài khoản.

Chuỗi sự kiện chính


1. Người dùng chọn chức năng đăng xuất.
2. Hệ thống hiển thị giao diện đăng xuất (nếu có).
3. Hệ thống tiến hành đăng xuất tài khoản người dùng.
4. Hệ thống hủy bỏ phiên làm việc của người dùng.
5. Người dùng được chuyển hướng đến giao diện trang chủ.
6. Kết thúc usecase.

− Usecase cập nhật thông tin cá nhân

Tên usecase Cập nhật thông tin cá nhân

Tác nhân chính Người dùng

Điều kiện trước Người dùng đã đăng nhập vào hệ thống.

16
Đảm bảo tối thiểu Hệ thống cập nhật thông tin cá nhân người dùng theo yêu
cầu an toàn.

Điều kiện sau  Thông tin cá nhân người dùng được lưu vào cơ sở dữ
liệu và hệ thống thông báo cập nhật thành công.
 Hệ thống sẽ hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Người dùng chọn chức năng cập nhật thông tin cá nhân.
2. Hệ thống hiển thị biểu mẫu cập nhật thông tin cá nhân.
3. Người dùng nhập thông tin cá nhân mới và chọn nút “Lưu”.
4. Hệ thống kiểm tra tính hợp lệ của thông tin.
5. Hệ thống cập nhật thông tin cá nhân trong cơ sở dữ liệu và hiển thị thông
báo thành công.
6. Kết thúc usecase.

− Usecase đổi mật khẩu

Tên usecase Đổi mật khẩu

Tác nhân chính Người dùng

Điều kiện trước Người dùng đã đăng nhập vào hệ thống.

17
Đảm bảo tối thiểu Hệ thống cập nhật thông tin mật khẩu người dùng theo
yêu cầu an toàn.

Điều kiện sau  Thông tin mật khẩu người dùng được lưu vào cơ sở dữ
liệu và hệ thống thông báo cập nhật thành công.
 Hệ thống sẽ hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Người dùng chọn chức năng đổi mật khẩu.
2. Hệ thống hiển thị biểu mẫu đổi mật khẩu.
3. Người dùng nhập thông tin mật khẩu mới và chọn nút “Lưu”.
4. Hệ thống kiểm tra tính hợp lệ của thông tin.
5. Hệ thống cập nhật thông tin mật khẩu trong cơ sở dữ liệu và hiển thị thông
báo thành công.
6. Kết thúc usecase.

− Usecase đăng ký

Tên usecase Đăng ký

Tác nhân chính Khách hàng

Điều kiện trước Khách hàng chưa đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống tạo tài khoản mới tương ứng với thông tin
đăng ký từ người dùng.

18
❑ Người dùng được đăng nhập tự động sau khi đăng ký
thành công.

Điều kiện sau  Hệ thống tạo tài khoản mới và người dùng được đăng
nhập tự động vào hệ thống.
 Hệ thống sẽ hiển thị thông báo lỗi chi tiết và yêu cầu
đăng ký lại.

Chuỗi sự kiện chính


1. Khách hàng truy cập website.
2. Hệ thống hiển thị giao diện đăng ký.
3. Khách hàng nhập thông tin đăng ký (tên tài khoản, email và mật khẩu).
4. Hệ thống kiểm tra tính hợp lệ của thông tin.
5. Hệ thống xác thực thông tin tài khoản.
6. Hệ thống gửi email xác thực tài khoản khách hàng.
7. Hệ thống đăng nhập tự động cho tài khoản mới được tạo.
8. Kết thúc usecase.

− Usecase khôi phục mật khẩu

19
Tên usecase Khôi phục mật khẩu

Tác nhân chính Người dùng

Điều kiện trước Người dùng chưa đăng nhập vào hệ thống

Đảm bảo tối thiểu Hệ thống cập nhật thông tin mật khẩu người dùng theo
yêu cầu an toàn.

Điều kiện sau  Mật khẩu mới được cập nhật và người dùng được
chuyển hướng đến giao diện đăng nhập.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Người dùng truy cập website.
2. Người dùng chọn chức năng quên mật khẩu.
3. Hệ thống hiển thị biểu mẫu khôi phục mật khẩu.
4. Người dùng nhập thông tin gồm tên tài khoản và email và gửi yêu cầu
khôi phục mật khẩu.
5. Hệ thống kiểm tra tính hợp lệ của thông tin.
6. Hệ thống gửi email chứa liên kết khôi phục mật khẩu đến địa chỉ email
đã nhập.
7. Người dùng mở email, nhấp vào liên kết và được chuyển hướng đến giao
diện khôi phục mật khẩu.
8. Người dùng nhập mật khẩu mới và xác nhận mật khẩu mới.
9. Hệ thống kiểm tra tính hợp lệ của thông tin.
10. Hệ thống cập nhật thông tin mật khẩu trong cơ sở dữ liệu và hiển thị
thông báo thành công.
11. Người dùng được chuyển hướng đến giao diện đăng nhập.
12. Kết thúc usecase.

20
− Usecase tìm kiếm sản phẩm

Tên usecase Tìm kiếm sản phẩm

Tác nhân chính Người dùng

Điều kiện trước Người dùng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu Hệ thống hiển thị kết quả tìm kiếm dựa trên từ khóa nhập
vào của người dùng.

Điều kiện sau Hệ thống hiển thị danh sách sản phẩm có thông tin chứa
từ khóa cần tìm hoặc danh sách trống.

Chuỗi sự kiện chính


1. Người dùng truy cập website.
2. Người dùng chọn vào thanh tìm kiếm và nhập từ khóa.
3. Hệ thống tự động gợi ý kết quả tìm kiếm khi người dùng nhập từ khóa.
4. Người dùng chọn một từ khóa từ gợi ý hoặc nhấn Enter để tìm kiếm.
5. Hệ thống hiển thị danh sách sản phẩm liên quan đến từ khóa tìm kiếm.
6. Người dùng có thể thực hiện các hành động như thêm vào giỏ hàng hoặc
chọn mua sản phẩm.
7. Kết thúc usecase.

21
− Usecase xem chi tiết sản phẩm

Tên usecase Xem chi tiết sản phẩm

Tác nhân chính Người dùng

Điều kiện trước Người dùng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu Hệ thống hiển thị đầy đủ thông tin chi tiết về sản phẩm.

Điều kiện sau Hệ thống hiển thị đầy đủ thông tin chi tiết về sản phẩm,
bao gồm hình ảnh, mô tả, giá cả, và các chi tiết khác.

Chuỗi sự kiện chính


1. Người dùng truy cập website.
2. Người dùng chọn sản phẩm từ kết quả tìm kiếm hoặc danh sách sản phẩm.
3. Người dùng được chuyển hướng đến giao diện chi tiết sản phẩm.
4. Người dùng xem hình ảnh sản phẩm, mô tả, giá cả và các thông tin liên
quan.
5. Người dùng có thể cuộn xuống để xem các đánh giá và đánh giá từ người
dùng khác (nếu có).
6. Người dùng có thể thực hiện các hành động như thêm vào giỏ hàng hoặc
chọn mua sản phẩm.
7. Kết thúc usecase.

22
− Usecase quản lý địa chỉ giao hàng

Tên usecase Quản lý địa chỉ giao hàng

Tác nhân chính Khách hàng

Điều kiện trước Khách hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống cho phép khách hàng thêm mới, chỉnh sửa
hoặc xóa các địa chỉ giao hàng.
❑ Khách hàng có thể đặt một địa chỉ làm mặc định cho
giao hàng.

Điều kiện sau  Các thay đổi về địa chỉ giao hàng được cập nhật và
lưu trữ trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Khách hàng chọn chức năng sổ địa chỉ.
2. Hệ thống hiển thị danh sách các địa chỉ giao hàng đã lưu trữ.
3. Khách hàng thực hiện các chức năng như: thêm mới, chỉnh sửa, xóa bỏ
hoặc đặt làm địa chỉ mặc định.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

23
− Usecase quản lý giỏ hàng

Tên usecase Quản lý giỏ hàng

Tác nhân chính Khách hàng

Điều kiện trước Khách hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách các sản phẩm trong giỏ
hàng của khách hàng.
❑ Khách hàng có thể thay đổi số lượng, xóa sản phẩm
hoặc tiến hành thanh toán.

Điều kiện sau  Các thay đổi về giỏ hàng được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Khách hàng chọn chức năng giỏ hàng.
2. Hệ thống hiển thị danh sách các sản phẩm trong giỏ hàng.
3. Khách hàng thực hiện các chức năng như: tăng hoặc giảm số lượng sản
phẩm, xóa bỏ sản phẩm khỏi hoặc đặt hàng.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

24
− Usecase quản lý đánh giá

Tên usecase Quản lý đánh giá

Tác nhân chính Khách hàng

Điều kiện trước Khách hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách các đánh giá của khách
hàng đã đánh giá sản phẩm.
❑ Khách hàng có thể thêm mới, chỉnh sửa, xóa đánh giá
cá nhân và like/unlike đánh giá của người khác.

Điều kiện sau  Các thay đổi về giỏ hàng được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Người dùng ở giao diện chi tiết sản phẩm.
2. Hệ thống hiển thị danh sách các đánh giá đã được khách hàng đưa ra.
3. Khách hàng thực hiện các chức năng như: thêm mới, chỉnh sửa, xóa đánh
giá cá nhân và like/unlike đánh giá của người khác.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

25
− Usecase quản lý đơn hàng (Khách hàng)

Tên usecase Quản lý đơn hàng

Tác nhân chính Khách hàng

Điều kiện trước Khách hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách các đơn hàng của khách
hàng.
❑ Khách hàng có thể xem chi tiết đơn hàng, hủy đơn
hàng và theo dõi tình trạng của chúng.

Điều kiện sau  Các thay đổi về đơn hàng được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Khách hàng chọn chức năng lịch sử đơn hàng.
2. Hệ thống hiển thị danh sách các đơn hàng của khách hàng.
3. Khách hàng có thể xem chi tiết đơn hàng, hủy đơn hàng và theo dõi tình
trạng của chúng.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

26
− Usecase đặt hàng

Tên usecase Đặt hàng

Tác nhân chính Khách hàng

Điều kiện trước ❑ Khách hàng đã đăng nhập vào hệ thống.


❑ Khách hàng có ít nhất 1 sản phẩm trong giỏ hàng (nếu
đặt hàng thông qua giỏ hàng).

Đảm bảo tối thiểu Hệ thống rollback nếu có lỗi xảy ra.

Điều kiện sau  Đơn hàng được tạo và lưu trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Khách hàng chọn chức năng mua ngay sản phẩm hoặc đặt hàng thông
qua tính năng giỏ hàng.
2. Hệ thống hiển thị giao diện xác nhận đặt hàng với thông tin chi tiết như
danh sách sản phẩm, địa chỉ giao hàng và các thông tin khác.
3. Khách hàng nhập thông tin đơn hàng và chọn tùy chọn "Xác nhận”.
4. Hệ thống kiểm tra tính hợp lệ của thông tin đơn hàng.
5. Hệ thống giảm số lượng tồn sản phẩm dựa trên đơn hàng được tạo.

27
6. Khách hàng thực hiện giao dịch thanh toán (nếu có).
7. Hệ thống tạo đơn hàng và gửi email xác nhận đơn hàng đến khách hàng.
8. Khách hàng nhận xác nhận đơn hàng.
9. Kết thúc use case.

− Usecase quản lý nhân viên

Tên usecase Quản lý nhân viên

Tác nhân chính Nhân viên quản lý

Điều kiện trước Nhân viên quản lý đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách nhân viên cùng với các
thông tin liên quan.
❑ Nhân viên quản lý có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về nhân viên được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên quản lý chọn chức năng quản lý nhân viên.
2. Hệ thống hiển thị danh sách nhân viên với các thông tin cơ bản như tên,
chức vụ, và trạng thái.

28
3. Nhân viên quản lý có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

− Usecase quản lý tài khoản

Tên usecase Quản lý tài khoản

Tác nhân chính Nhân viên quản lý.

Điều kiện trước Nhân viên quản lý đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách tài khoản cùng với các
thông tin liên quan.
❑ Nhân viên quản lý có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về nhân viên được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên quản lý chọn chức năng quản lý tài khoản.
2. Hệ thống hiển thị danh sách tài khoản với các thông tin cơ bản như tên
tài khoản, email, và trạng thái.

29
3. Nhân viên quản lý có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

− Usecase quản lý kho hàng

Tên usecase Quản lý kho hàng

Tác nhân chính Nhân viên quản lý

Điều kiện trước Nhân viên quản lý đã đang nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách kho hàng cùng với các
thông tin liên quan.
❑ Nhân viên quản lý có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về kho hàng được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên quản lý chọn chức năng quản lý kho hàng.
2. Hệ thống hiển thị danh sách kho hàng với các thông tin cơ bản như ảnh
đại diện, tên kho, địa chỉ, và mô tả.

30
3. Nhân viên quản lý có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

− Usecase quản lý quyền hạn

Tên usecase Quản lý quyền hạn

Tác nhân chính Nhân viên quản lý

Điều kiện trước Nhân viên quản lý đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách quyền hạn cùng với các
thông tin liên quan.
❑ Nhân viên quản lý có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa, tìm kiếm và phân quyền tài
khoản người dùng.

Điều kiện sau  Các thay đổi về quyền hạn được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên quản lý chọn chức năng quản lý quyền hạn.

31
2. Hệ thống hiển thị danh sách quyền hạn với các thông tin cơ bản như tên
và mô tả.
3. Nhân viên quản lý có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa, tìm kiếm và phân quyền tài khoản người dùng.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

− Usecase quản lý nhập – xuất

Tên usecase Quản lý nhập – xuất

Tác nhân chính Nhân viên quản lý

Điều kiện trước Nhân viên quản lý đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách phiếu nhập – xuất cùng
với các thông tin liên quan.
❑ Nhân viên quản lý có thể thực hiện các thao tác quản
lý như duyệt/hủy phiếu nhập và xuất.

Điều kiện sau  Các thay đổi về phiếu nhập – xuất được cập nhật và
lưu trữ trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên quản lý chọn chức năng quản lý nhập – xuất.

32
2. Hệ thống hiển thị danh sách phiếu nhập – xuất với các thông tin cơ bản
như mã phiếu, ngày lập phiếu và người lập phiếu.
3. Nhân viên quản lý có thể thực hiện các thao tác quản lý như duyệt/hủy
phiếu nhập và xuất.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

− Usecase báo cáo – thống kê

Tên usecase Báo cáo – thống kê

Tác nhân chính Nhân viên quản lý và hệ thống báo cáo thống kê.

Điều kiện trước ❑ Nhân viên quản lý đã đăng nhập vào hệ thống.
❑ Hệ thống báo cáo – thống kê đã được triển khai.

Đảm bảo tối thiểu Nhân viên quản lý có thể truy cập và tạo các báo cáo
thống kê dựa trên các thông tin cụ thể.

Điều kiện sau Báo cáo thống kê được tạo và có sẵn để xem và tải về.

Chuỗi sự kiện chính


1. Nhân viên quản lý chọn chức năng báo cáo – thống kê.
2. Hệ thống hiển thị giao diện cho việc tạo và quản lý báo cáo thống kê.
3. Nhân viên quản lý có thể truy cập và tạo các báo cáo thống kê dựa trên
các thông tin cụ thể.
4. Kết thúc usecase.

33
− Usecase thanh toán

Tên usecase Thanh toán

Tác nhân chính Hệ thống thanh toán và hệ thống hóa đơn điện tử.

Điều kiện trước ❑ Khách hàng thực hiện thanh toán trực tuyến.
❑ Hệ thống thanh toán và hệ thống hóa đơn điện tử đã
được triển khai và kết nối.

Đảm bảo tối thiểu ❑ Hệ thống rollback nếu có lỗi xảy ra.
❑ Hệ thống hóa đơn điện tử có khả năng tạo và lưu trữ
hóa đơn liên quan đến thanh toán.

Điều kiện sau  Đơn hàng được ghi nhận và xác nhận thanh toán và
hóa đơn điện tử được tạo và lưu trữ trong hệ thống.
 Hệ thống thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Khách hàng thực hiện thanh toán trực tuyến.
2. Hệ thống thanh toán kiểm tra tính hợp lệ của thông tin thanh toán.
3. Hệ thống thanh toán xác nhận thanh toán và gửi thông tin đến hệ thống
hóa đơn điện tử.
4. Hệ thống hóa đơn điện tử tạo và lưu trữ hóa đơn liên quan đến đơn hàng.
5. Người dùng nhận được xác nhận đặt hàng với thông tin chi tiết.

34
6. Đơn hàng và hóa đơn điện tử được chuyển đến quá trình xử lý và vận
chuyển.
7. Kết thúc usecase.

− Usecase quản lý tồn kho

Tên usecase Quản lý tồn kho

Tác nhân chính Nhân viên kho

Điều kiện trước Nhân viên kho đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách sản phẩm và thông tin tồn
kho hiện tại.
❑ Nhân viên kho có thể thực hiện các thao tác quản lý
như tìm kiếm sản phẩm và cập nhật số lượng tồn.

Điều kiện sau  Các thay đổi về tồn kho sản phẩm được cập nhật và
lưu trữ trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên kho chọn chức năng quản lý tồn kho.
2. Hệ thống hiển thị danh sách sản phẩm và thông tin tồn kho hiện tại.
3. Nhân viên kho có thể thực hiện các thao tác quản ly như tìm kiếm sản
phẩm và cập nhật số lượng tồn.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

35
− Usecase quản lý phiếu nhập

Tên usecase Quản lý phiếu nhập

Tác nhân chính Nhân viên kho

Điều kiện trước Nhân viên kho đã đăng nhập vào hệ thống,

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách phiếu nhập và thông tin
chi tiết về từng phiếu.
❑ Nhân viên kho có thể thực hiện các thao tác quản lý
như tạo mới, hủy phiếu và tìm kiếm.

Điều kiện sau  Các thay đổi về phiếu nhập được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên kho chọn chức năng quản lý phiếu nhập.
2. Hệ thống hiển thị danh sách phiếu nhập và thông tin chi tiết về từng phiếu
như mã phiếu, ngày lập và người lập phiếu.
3. Nhân viên kho có thể thực hiện các thao tác quản lý như tạo mới, hủy
phiếu và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

36
− Usecase quản lý phiếu xuất

Tên usecase Quản lý phiếu xuất

Tác nhân chính Nhân viên kho

Điều kiện trước Nhân viên kho đã đăng nhập vào hệ thống,

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách phiếu xuất và thông tin
chi tiết về từng phiếu.
❑ Nhân viên kho có thể thực hiện các thao tác quản lý
như tạo mới, hủy phiếu và tìm kiếm.

Điều kiện sau  Các thay đổi về phiếu xuất được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên kho chọn chức năng quản lý phiếu xuất.
2. Hệ thống hiển thị danh sách phiếu xuất và thông tin chi tiết về từng phiếu
như mã phiếu, ngày lập và người lập phiếu.
3. Nhân viên kho có thể thực hiện các thao tác quản lý như tạo mới, hủy
phiếu và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

37
− Usecase quản lý đơn hàng (Nhân viên bán hàng)

Tên usecase Quản lý đơn hàng

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách đơn hàng và thông tin chi
tiết về từng đơn hàng.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như duyệt/hủy và tìm kiếm đơn hàng.

Điều kiện sau  Các thay đổi về đơn hàng được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên bán hàng chọn chức năng quản lý đơn hàng.
2. Hệ thống hiển thị danh sách đơn hàng và thông tin chi tiết về từng đơn
hàng như mã đơn hàng, ngày lập và người đặt hàng.
3. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như duyệt/hủy
và tìm kiếm đơn hàng.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

38
− Usecase quản lý sản phẩm

Tên usecase Quản lý sản phẩm

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách sản phẩm và thông tin chi
tiết về từng sản phẩm.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm sản phẩm.

Điều kiện sau  Các thay đổi về sản phẩm được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên bán hàng chọn chức năng quản lý sản phẩm.
2. Hệ thống hiển thị danh sách sản phẩm và thông tin chi tiết về từng sản
phẩm như mã sản phẩm, hình ảnh và các thông tin khác.
3. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm sản phẩm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

39
− Usecase quản lý giá

Tên usecase Quản lý giá

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh sách giá và thông tin chi tiết
về từng giá.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về giá được cập nhật và lưu trữ trong hệ
thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên bán hàng chọn chức năng quản lý giá.
2. Hệ thống hiển thị danh sách giá sản phẩm và thông tin chi tiết về từng
giá như mã giá và giá tiền.
3. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

40
− Usecase quản lý danh sách giá

Tên usecase Quản lý danh sách giá

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh danh sách giá và thông tin chi
tiết về từng danh sách giá.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về danh sách giá được cập nhật và lưu
trữ trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên bán hàng chọn chức năng quản lý danh sách giá.
2. Hệ thống hiển thị danh sách danh sách giá và thông tin chi tiết về từng
danh sách giá như mã danh sách giá và loại giá.
3. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

41
− Usecase quản lý danh mục

Tên usecase Quản lý danh mục

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh danh mục và thông tin chi tiết
về từng danh mục.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về danh mục được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


6. Nhân viên bán hàng chọn chức năng quản lý danh mục.
7. Hệ thống hiển thị danh sách danh mục và thông tin chi tiết về từng danh
mục như mã danh mục, hình ảnh và tên danh mục.
8. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
9. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
10. Kết thúc usecase.

42
− Usecase quản lý thương hiệu

Tên usecase Quản lý thương hiệu

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh thương hiệu và thông tin chi
tiết về từng thương hiệu.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về thương hiệu được cập nhật và lưu trữ
trong hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên bán hàng chọn chức năng quản lý thương hiệu.
2. Hệ thống hiển thị danh sách thương hiệu và thông tin chi tiết về từng
thương hiệu như mã thương hiệu, hình ảnh và tên thương hiệu.
3. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

43
− Usecase quản lý ưu đãi khách hàng thân thiết

Tên usecase Quản lý ưu đãi

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh ưu đãi và thông tin chi tiết về
từng ưu đãi.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như thêm, sửa, xóa và tìm kiếm.

Điều kiện sau  Các thay đổi về ưu đãi được cập nhật và lưu trữ trong
hệ thống.
 Hệ thống hiển thị thông báo lỗi chi tiết.

Chuỗi sự kiện chính


1. Nhân viên bán hàng chọn chức năng quản lý ưu đãi.
2. Hệ thống hiển thị danh sách ưu đãi và thông tin chi tiết về từng ưu đãi
như mã ưu đãi, tên ưu đãi, phần trăm, ngày áp dụng và ngày hết hạn.
3. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như thêm, sửa,
xóa và tìm kiếm.
4. Hệ thống kiểm tra và cập nhật vào cơ sở dữ liệu.
5. Kết thúc usecase.

44
− Usecase quản lý hóa đơn

Tên usecase Quản lý hóa đơn

Tác nhân chính Nhân viên bán hàng

Điều kiện trước Nhân viên bán hàng đã đăng nhập vào hệ thống.

Đảm bảo tối thiểu ❑ Hệ thống hiển thị danh hóa đơn và thông tin chi tiết về
từng hóa đơn.
❑ Nhân viên bán hàng có thể thực hiện các thao tác quản
lý như tìm kiếm hóa đơn và xuất hóa đơn điện tử.

Điều kiện sau Hệ thống xuất được hóa đơn cho khách hàng.

Chuỗi sự kiện chính


1. Nhân viên bán hàng chọn chức năng quản lý hóa đơn.
2. Hệ thống hiển thị danh sách hóa đơn và thông tin chi tiết về từng hóa đơn
như mã hóa đơn, mã khách hàng và các thông tin khác.
3. Nhân viên bán hàng có thể thực hiện các thao tác quản lý như tìm kiếm
hóa đơn và xuất hóa đơn điện tử.
4. Hệ thống kiểm tra và xuất hóa đơn cho khách hàng.
5. Kết thúc usecase.

45
4. CÁC BIỂU ĐỒ TUẦN TỰ/GIAO TIẾP TƯƠNG ỨNG

− Biểu đồ tuần tự đăng nhập

− Biểu đồ tuần tự đăng ký

46
− Biểu đồ tuần tự đăng xuất

− Biểu đồ tuần tự cập nhật thông tin cá nhân

47
− Biểu đồ tuần tự khôi phục mật khẩu

48
− Biểu đồ tuần tự đổi mật khẩu

− Biểu đồ tuần tự tìm kiếm sản phẩm

49
− Biểu đồ tuần tự xem chi tiết sản phẩm

− Biểu đồ tuần tự đặt hàng

50
− Biểu đồ tuần tự thanh toán

− Biểu đồ tuần tự báo cáo – thống kê

51
− Quản lý nhân viên
❑ Biểu đồ tuần tự thêm nhân viên

❑ Biểu đồ tuần tự cập nhật nhân viên

52
❑ Biểu đồ tuần tự xóa nhân viên

❑ Biểu đồ tuần tự tìm kiếm nhân viên

53
− Quản lý tài khoản
❑ Biểu đồ tuần tự thêm tài khoản

❑ Biểu đồ tuần tự cập nhật tài khoản

54
❑ Biểu đồ tuần tự xóa tài khoản

❑ Biểu đồ tuần tự tìm kiếm tài khoản

55
− Quản lý kho hàng
❑ Biểu đồ tuần tự thêm kho hàng

❑ Biểu đồ tuần tự cập nhật kho hàng

56
❑ Biểu đồ tuần tự xóa kho hàng

❑ Biểu đồ tuần tự tìm kiếm kho hàng

57
− Quản lý quyền hạn
❑ Biểu đồ tuần tự thêm quyền hạn

❑ Biểu đồ tuần tự cập nhật quyền hạn

58
❑ Biểu đồ tuần tự xóa quyền hạn

❑ Biểu đồ tuần tự tìm kiếm quyền hạn

59
❑ Biểu đồ tuần tự phân quyền tài khoản người dùng

− Quản lý nhập xuất


❑ Biểu đồ tuần tự duyệt phiếu nhập

60
❑ Biểu đồ tuần tự hủy phiếu nhập

❑ Biểu đồ tuần tự duyệt phiếu xuất

❑ Biểu đồ tuần tự hủy phiếu xuất

61
− Quản lý giá
❑ Biểu đồ tuần tự thêm giá

❑ Biểu đồ tuần tự cập nhật giá

62
❑ Biểu đồ tuần tự xóa giá

❑ Biểu đồ tuần tự tìm kiếm giá

63
− Quản lý danh sách giá
❑ Biểu đồ tuần tự thêm danh sách giá

❑ Biểu đồ tuần tự cập nhật danh sách giá

64
❑ Biểu đồ tuần tự xóa danh sách giá

❑ Biểu đồ tuần tự tìm kiếm danh sách giá

65
− Quản lý sản phẩm
❑ Biểu đồ tuần tự thêm sản phẩm

❑ Biểu đồ tuần tự cập nhật sản phẩm

66
❑ Biểu đồ tuần tự xóa sản phẩm

❑ Biểu đồ tuần tự tìm kiếm sản phẩm

67
− Quản lý đơn hàng (Khách hàng)
❑ Biểu đồ tuần tự xem chi tiết đơn hàng

❑ Biểu đồ tuần tự theo dõi trạng thái đơn hàng

❑ Biểu đồ tuần tự tìm kiếm đơn hàng

68
❑ Biểu đồ tuần tự lọc đơn hàng theo trạng thái

❑ Biểu đồ tuần tự hủy đơn hàng

− Quản lý hóa đơn


❑ Biểu đồ tuần tự tìm kiếm hóa đơn

69
❑ Biểu đồ tuần tự xuất hóa đơn điện tử

− Quản lý danh mục


❑ Biểu đồ tuần tự thêm danh mục

70
❑ Biểu đồ tuần tự cập nhật danh mục

❑ Biểu đồ tuần tự xóa danh mục

71
❑ Biểu đồ tuần tự tìm kiếm danh mục

− Quản lý thương hiệu


❑ Biểu đồ tuần tự thêm thương hiệu

72
❑ Biểu đồ tuần tự cập nhật thương hiệu

❑ Biểu đồ tuần tự xóa thương hiệu

73
❑ Biểu đồ tuần tự tìm kiếm thương hiệu

− Quản lý ưu đãi khách hàng thân thiết


❑ Biểu đồ tuần tự thêm ưu đãi

74
❑ Biểu đồ tuần tự cập nhật ưu đãi

❑ Biểu đồ tuần tự xóa ưu đãi

75
❑ Biểu đồ tuần tự tìm kiếm ưu đãi

− Quản lý địa chỉ giao hàng


❑ Biểu đồ tuần tự thêm địa chỉ giao hàng

76
❑ Biểu đồ tuần tự cập nhật địa chỉ giao hàng

❑ Biểu đồ tuần tự xóa địa chỉ giao hàng

77
❑ Biểu đồ tuần tự thiết lập địa chỉ mặc định

− Quản lý đánh giá


❑ Biểu đồ tuần tự thêm đánh giá

❑ Biểu đồ tuần tự cập nhật đánh giá

78
❑ Biểu đồ tuần tự xóa đánh giá

❑ Biểu đồ tuần tự like/unlike đánh giá

− Quản lý giỏ hàng


❑ Biểu đồ tuần tự thêm sản phẩm

79
❑ Biểu đồ tuần tự xóa sản phẩm

❑ Biểu đồ tuần tự điều chỉnh số lượng

80
− Quản lý phiếu nhập
❑ Biểu đồ tuần tự thêm phiếu nhập

❑ Biểu đồ tuần tự hủy phiếu nhập

81
❑ Biểu đồ tuần tự tìm kiếm phiếu nhập

− Quản lý phiếu xuất


❑ Biểu đồ tuần tự thêm phiếu xuất

82
❑ Biểu đồ tuần tự hủy phiếu xuất

❑ Biểu đồ tuần tự tìm kiếm phiếu xuất

83
− Quản lý tồn kho sản phẩm
❑ Biểu đồ tuần tự tìm kiếm sản phẩm

❑ Biểu đồ tuần tự cập nhật số lượng tồn

84
− Quản lý đơn hàng (Nhân viên)
❑ Biểu đồ tuần tự duyệt đơn hàng

❑ Biểu đồ tuần tự hủy đơn hàng

❑ Biểu đồ tuần tự tìm kiếm đơn hàng

85
5. CÁC BIỂU ĐỒ HOẠT ĐỘNG TƯƠNG ỨNG

− Biểu đồ hoạt động đăng nhập

− Biểu đồ hoạt động đăng ký

86
− Biểu đồ hoạt động khôi phục mật khẩu

− Biểu đồ hoạt động cập nhật thông tin cá nhân

− Biểu đồ hoạt động đổi mật khẩu

87
− Biểu đồ hoạt động đặt hàng

− Biểu đồ hoạt động thanh toán

88
− Biểu đồ hoạt động tích lũy điểm thưởng

− Biểu đồ hoạt động thống kê kinh doanh

89
B. PHÂN TÍCH HỆ THỐNG
1. MÔ TẢ PHÂN TÍCH HỆ THỐNG

Đối tượng Hoạt động trong hệ thống

❖ Đối tượng lưu trữ thông tin người tham gia hoặc xử lý
Đối tác kinh doanh
giao dịch trong hệ thống.

Nhà cung cấp ❖ Đối tượng cung cấp sản phẩm cho hệ thống.

❖ Đối tượng quản lý nhân sự và kinh doanh.


❑ Đăng nhập vào hệ thống quản lý.
Nhân viên quản lý ❑ Quản lý nhân viên và kho hàng.
❑ Quản lý quyền hạn và tài khoản.
❑ Quản lý báo cáo – thống kê kinh doanh.

❖ Đối tượng quản lý nhập và xuất hàng hóa tài kho.


❑ Đăng nhập vào hệ thống quản lý.
Nhân viên kho
❑ Quản lý nhập và xuất hàng hóa.
❑ Quản lý tồn kho sản phẩm.

❖ Đối tượng quản lý sản phẩm và đơn hàng.


❑ Đăng nhập vào hệ thống quản lý.
❑ Quản lý thương hiệu và danh mục sản phẩm.
Nhân viên bán hàng
❑ Quản lý sản phẩm.
❑ Quản lý đơn hàng của khách hàng.
❑ Quản lý ưu đãi khách hàng thân thiết.

❖ Đối tượng mua hàng trong hệ thống.


❑ Đăng nhập vào hệ thống bán hàng.
❑ Quản lý thông tin tài khoản cá nhân.
Khách hàng
❑ Quản lý giỏ hàng cá nhân.
❑ Quản lý đơn hàng cá nhân.
❑ Quản lý địa chỉ giao hàng cá nhân.

90
❑ Quản lý đánh giá sản phẩm cá nhân.
❑ Được hệ thống quản lý việc tích lũy điểm thưởng và
cấp bậc khách hàng thân thiết.
❑ Xem, tìm kiếm và lọc sản phẩm.
❑ Đặt hàng.

❖ Đối tượng khách hàng không đăng nhập.


Khách hàng vãng lai
❑ Xem, tìm kiếm và lọc sản phẩm.

❖ Đối tượng lưu trữ thông tin tài khoản người dùng.
Tài khoản
 Trạng thái: “Hoạt động”, “Đã khóa”.

Quyền hạn ❖ Đối tượng lưu trữ thông tin quyền hạn hệ thống.

❖ Đối tượng lưu trữ thông tin quyền hạn được cấp cho
Chi tiết quyền hạn
tài khoản người dùng.

❖ Đối tượng lưu trữ thông tin sản phẩm.


Sản phẩm  Trạng thái: “Đang mở bán”, “Đã hết hàng”, “Ngừng
kinh doanh”.

Thương hiệu ❖ Đối tượng lưu trữ thông tin thương hiệu sản phẩm.

Danh mục ❖ Đối tượng lưu trữ thông tin danh mục sản phẩm.

❖ Đối tượng lưu trữ thông tin danh sách giá sản phẩm
Danh sách giá theo loại.
 Trạng thái: “Đang áp dụng”, “Ngừng áp dụng”.

Giá ❖ Đối tượng lưu trữ thông tin giá.

❖ Đối tượng lưu trữ thông tin giá của sản phẩm trong
Chi tiết giá
danh sách giá.

❖ Đối tượng lưu trữ thông tin đơn hàng theo loại.
 Trạng thái:
Đơn hàng
o Đơn đặt hàng: “Chờ xác nhận” hoặc “Đơn hủy”,
“Không xác nhận” hoặc “Đã xác nhận”, “Đang

91
xử lý”, “Đang vận chuyển”, “Giao hàng không
thành công”, “Đã giao hàng” hoặc “Chuyển
hoàn” và “Giao hàng thất bại”.
o Phiếu nhập hàng: “Chờ xác nhận”, “Đơn hủy”,
“Không xác nhận” hoặc “Đã xác nhận”, “Đang
kiểm hàng”, “Xử lý thừa thiếu”, “Đã thanh toán”
hoặc “Nhập hàng thất bại”.
o Phiếu xuất hàng: “Chờ xác nhận”, “Đơn hủy”,
“Không xác nhận” hoặc “Đã xác nhận”, “Đang
kiểm hàng”, “Xử lý thừa thiếu”, “Đã thanh toán”
hoặc “Xuất hàng thất bại”.

❖ Đối tượng lưu trữ thông tin các sản phẩm có trong đơn
Chi tiết đơn hàng
hàng.

❖ Đối tượng lưu trữ thông tin trạng thái đơn hàng được
Trạng thái đơn hàng
dùng để theo dõi trạng thái đơn hàng.

Hóa đơn ❖ Đối tượng lưu trữ thông tin giao dịch đơn hàng.

❖ Đối tượng lưu trữ thông tin ưu đãi của khách hàng thân
thiết được dùng trong quá trình đặt hàng.
Ưu đãi
 Trạng thái: “Đang áp dụng”, “Đã hết hạn” hoặc “Đã
sử dụng”.

❖ Đối tượng lưu trữ thông tin đánh giá sản phẩm của
Đánh giá
khách hàng khi đơn hàng thành công.

❖ Đối tượng lưu trữ thông tin sản phẩm mà khách hàng
Giỏ hàng
dự định mua.

Kho hàng ❖ Đối tượng lưu trữ thông tin kho hàng.

❖ Đối tượng lưu trữ thông tin địa chỉ giao hàng của
Địa chỉ giao hàng khách hàng dùng trong quá trình đặt hàng.
 Trạng thái: “Không mặc định”, “Mặc định”.

92
− Quan hệ kế thừa giữa các đối tượng

Diagram - Quan hệ kế thừa giữa các đối tượng


2. CÁC BIỂU ĐỒ LỚP TƯƠNG ỨNG
2.1. Sơ đồ tổng quát

Diagram - Biểu đồ lớp tổng quát

93
2.2. Sơ đồ chi tiết

− Lớp BusinessPartner

Định nghĩa Đối tác kinh doanh

Thuộc tính id_partner Mã đối tác


image Ảnh đại diện
name Tên đại diện
birthdate Ngày sinh
phone Số điện thoại
address Địa chỉ
email Email
tax_code Mã số thuế
is_active Trạng thái hoạt động
is_customer Trạng thái khách hàng
is_employee Trạng thái nhân viên
is_supplier Trạng thái nhà cung cấp

Phương thức get Lấy thông tin đối tượng


update Cập nhật thông tin đối tượng

94
− Lớp Customer

Định nghĩa Khách hàng

Thuộc tính bonus Điểm thưởng tích lũy


rank Cấp bậc khách hàng thân thiết

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng

− Lớp Supplier

Định nghĩa Nhà cung cấp

Thuộc tính contract_code Mã hợp đồng

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng

95
− Lớp SaleEmployee

Định nghĩa Nhân viên bán hàng

Thuộc tính

Phương thức create Tạo đối tượng

− Lớp DepotEmployee

Định nghĩa Nhân viên kho

Thuộc tính depot_id Mã kho hàng

Phương thức create Tạo đối tượng


update Cập nhật thông tin đối tượng

− Lớp ManagerEmployee

Định nghĩa Nhân viên quản lý

Thuộc tính

Phương thức create Tạo đối tượng


report Tạo báo cáo – thống kê

96
− Lớp Account

Định nghĩa Tài khoản

Thuộc tính username Tên tài khoản


password Mật khẩu
is_active Trạng thái hoạt động
partner_id Mã đối tác

Phương thức get Lấy thông tin tài khoản của đối tác
create Tạo đối tượng
setPassword Điều chỉnh mật khẩu
setState Điều chỉnh trạng thái hoạt động
login Đăng nhập
logout Đăng xuất
register Đăng ký tài khoản

− Lớp Permission

97
Định nghĩa Quyền hạn

Thuộc tính id_permission Mã quyền hạn


name Tên quyền hạn

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

− Lớp AccountPermission

Định nghĩa Quyền hạn của tài khoản

Thuộc tính account_id Tên tài khoản


permission_id Mã quyền hạn

Phương thức get Lấy danh sách quyền của tài khoản
create Tạo đối tượng
delete Xóa đối tượng

− Lớp DeliveryAddress

98
Định nghĩa Địa chỉ giao hàng

Thuộc tính id_address Mã địa chỉ giao hàng


name Tên người nhận
phone Số điện thoại người nhận
address Địa chỉ giao hàng
is_default Trạng thái mặc định
partner_id Mã đối tác

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

− Lớp Cart

Định nghĩa Giỏ hàng

Thuộc tính id_partner Mã đối tác


id_product Mã sản phẩm
quantity Số lượng

Phương thức get Lấy danh sách giỏ hàng của đối tác
create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

99
− Lớp Brand

Định nghĩa Thương hiệu

Thuộc tính id_brand Mã thương hiệu


image Logo thương hiệu
name Tên thương hiệu
description Mô tả

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

− Lớp Category

Định nghĩa Danh mục

Thuộc tính id_category Mã danh mục

100
image Logo danh mục
name Tên danh mục
description Mô tả

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

− Lớp Product

Định nghĩa Sản phẩm

Thuộc tính id_product Mã sản phẩm


image Ảnh minh họa
name Tên sản phẩm
inventory_quantity Số lượng tồn
sold_quantity Số lượng bán
in_stock Đã có sẵn để bán
description Mô tả
brand_id Mã thương hiệu

101
category_id Mã danh mục

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng
search Tìm kiếm sản phẩm theo từ khóa
getProductVote Lấy tổng điểm của sản phẩm

− Lớp PriceList

Định nghĩa Danh sách giá sản phẩm

Thuộc tính id_pricelist Mã danh sách giá


type Kiểu giá (I: Nhập, S: Bán, E: Xuất)
apply_date Ngày áp dụng
expire_date Ngày hết hạn

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

102
− Lớp Price

Định nghĩa Giá tiền

Thuộc tính id_price Mã giá


price Giá tiền

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

− Lớp ProductPrice

Định nghĩa Giá tiền sản phẩm

Thuộc tính product_id Mã sản phẩm


price_id Mã giá
pricelist_id Mã danh sách giá

Phương thức get Lấy danh sách giá của sản phẩm

103
create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

− Lớp Review

Định nghĩa Đánh giá sản phẩm

Thuộc tính id_review Mã đánh giá


image Hình ảnh kèm theo
content Nội dung đánh giá
vote Số điểm đánh giá
created_date Ngày tạo đánh giá
updated_date Ngày cập nhật đánh giá
product_id Mã sản phẩm
partner_id Mã đối tác

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

104
− Lớp Depot

Định nghĩa Kho hàng

Thuộc tính id_depot Mã kho hàng


name Tên kho hàng
address Địa chỉ kho hàng

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

− Lớp Order

105
Định nghĩa Đơn hàng

Thuộc tính id_order Mã đơn hàng


type Loại (I: Nhập, S: Bán, E: Xuất)
delivery_information Thông tin giao hàng
note Ghi chú giao hàng
ship_fee Phí giao hàng
pricelist_id Mã danh sách giá
total_price Thành tiền
created_date Ngày tạo đơn hàng
delivery_date Ngày giao hàng dự kiến
state_id Mã trạng thái
voucher_id Mã ưu đãi
partner_id Mã đối tác
depot_id Mã kho hàng

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
delete Xóa đối tượng
setState Điều chỉnh trạng thái đơn hàng
cancelOrder Hủy đơn hàng
filterByState Lọc đơn hàng theo trạng thái

− Lớp OrderDetail

106
Định nghĩa Chi tiết đơn hàng

Thuộc tính order_id Mã đơn hàng


product_id Mã sản phẩm
quantity Số lượng
price Giá tiền tại thời điểm đặt hàng
discount Giảm giá ưu đãi
total_price Tổng trị giá

Phương thức get Lấy danh sách sản phẩm của đơn hàng
create Tạo đối tượng

− Lớp OrderState

Định nghĩa Trạng thái đơn hàng

Thuộc tính id_state Mã trạng thái


name Tên trạng thái
description Mô tả

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

107
− Lớp Voucher

Định nghĩa Ữu đãi khách hàng thân thiết

Thuộc tính id_voucher Mã ưu đãi


name Tên ưu đãi
percentage Phần trăm giảm giá
is_freeship Trạng thái miễn phí giao hàng
apply_date Ngày áp dụng
expire_date Ngày hết hạn
is_used Trạng thái sử dụng
partner_id Mã đối tác

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
update Cập nhật thông tin đối tượng
delete Xóa đối tượng

108
− Lớp Invoice

Định nghĩa Hóa đơn

Thuộc tính id_invoice Mã hóa đơn


create_date Ngày tạo hóa đơn
tax_code Mã số thuế
order_id Mã đơn hàng
employee_id Mã nhân viên lập hóa đơn

Phương thức get Lấy thông tin đối tượng


create Tạo đối tượng
issue Xuất hóa đơn điện tử cho đối tác

109
3. CÁC BIỂU ĐỒ TRẠNG THÁI TƯƠNG ỨNG

− Biểu đồ trạng thái tài khoản

− Biểu đồ trạng thái địa chỉ giao hàng

− Biểu đồ trạng thái ưu đãi

− Biểu đồ trạng thái sản phẩm

110
− Biểu đồ trạng thái danh sách giá sản phẩm

− Biểu đồ trạng thái đơn hàng (Loại: Bán)

111
− Biểu đồ trạng thái đơn hàng (Loại: Nhập)

− Biểu đồ trạng thái đơn hàng (Loại: Xuất)

112
C. THIẾT KẾ HỆ THỐNG
1. KIẾN TRÚC HỆ THỐNG
1.1. Lựa chọn công nghệ mạng – kiến trúc hạ tầng
Hệ thống website được xây dựng theo mô hình Client – Server với hướng kiến
trúc 3 tầng. Hướng thiết kế này là sự lựa chọn phù hợp cho môi trường thương mại
điện tử, giúp dễ dàng phát triển và triển khai hệ thống trên đa dạng các nền tảng.
a) Sơ đồ tổng quát

b) Ưu và nhược điểm

− Ưu điểm
❑ Thuận tiện phát triển và triển khai: Phân chia hệ thống thành các tầng
riêng biệt với chức năng cụ thể rõ ràng giúp cho lập trình viên thuận
tiện trong công việc lập trình và triển khai hệ thống.
❑ Ứng dụng kiến trúc máy tính: Phân chia hệ thống thành các tầng riêng
biệt cho phép lựa chọn đa dạng và ứng dụng linh hoạt các kiến trúc
máy tính phục vụ cho các nhiệm vụ khác nhau.
❑ Cải tiến hiệu năng: Phân chia hệ thống thành các tầng riêng biệt cho
phép mở rộng hệ thống mạng và máy tính ở từng tầng giúp chống tình
trạng quá tải, dễ dàng chuyên môn hóa và tối ưu hóa.
❑ Nâng cao tính bảo mật: Phân chia hệ thống thành các tầng riêng biệt
cho ứng dụng các cơ chế bảo mật khác nhau cho mỗi tầng, đảm bảo an
toàn dữ liệu tốt khi có sự cố bất ngờ xảy ra.
❑ Đầu tư linh hoạt: Phân chia hệ thống thành các tầng riêng biệt cho
phép điều chỉnh số lượng máy tính trong hệ thống một cách dễ dàng
và linh hoạt theo quy mô của hệ thống.
❑ Đa dạng kiểu máy người dùng: Hệ thống cho phép người dùng thao
tác trên bất kỳ kiểu máy nào như mobile, PC, PDAs, … miễn là có giao
thức truyền thông phù hợp.

113
− Nhược điểm
❑ Bảo trì hệ thống: Hệ thống yêu cầu yếu tố phần cứng phải đủ mạnh mẽ
để duy trì độ ổn định, và cần được bảo trì, kiểm tra thường xuyên trong
suốt quá trình hoạt động.
❑ Bảo mật hệ thống: Hệ thống hạn chế trong việc bảo mật dữ liệu, vì có
khả năng xuất hiện các lỗ hổng bảo mật khi trao đổi dữ liệu giữa các
máy chủ và máy khách thông qua môi trường Internet.
1.2. Biểu đồ triển khai hình trạng mạng

1.3. Biểu đồ gói

Diagram - Biểu đồ gói

114
2. LỰA CHỌN CƠ SỞ DỮ LIỆU VÀ CÁC CÔNG NGHỆ
2.1. Hệ quản trị cơ sở dữ liệu

− Microsoft SQL Server

Microsoft SQL Server là một phần mềm cung cấp giao diện cho hệ thống quản
trị cơ sở dữ liệu quan hệ – Relational Database Management System, được phát
triển bởi Microsoft vào năm 1988. SQL Server được sử dụng để thiết kế và triển
khai hệ thống RDBMS.
Phần mềm SQL Server được sử dụng rộng rãi vì nó được tối ưu để có thể chạy
trên môi trường dữ liệu rất lớn lên đến TeraByte, cùng lúc phục vụ cho hàng ngàn
người dùng. Bên cạnh đó, ứng dụng này cung cấp đa dạng kiểu lập trình SQL từ
cơ bản đến nâng cao như ANSI SQL đến SQL và cả T-SQL.
Thông qua phân tích những ưu điểm cũng như thuận lợi trên, dễ dàng nhận
thấy SQL Server có khả năng hỗ trợ cho các hệ thống bán hàng yêu cầu hiệu năng
cao trong khả năng lưu trữ và trích xuất dữ liệu.
❑ SQL Server hỗ trợ nhiều loại dữ liệu khác nhau, từ dữ liệu văn bản đến dữ
liệu đa phương tiện như hình ảnh và âm thanh. Tính năng JSON Support
hỗ trợ thao tác với các định dạng dữ liệu một cách linh hoạt, đặc biệt hữu
ích trong môi trường website.
❑ SQL Server cung cấp các tính năng bảo mật mạnh mẽ, bao gồm cơ chế xác
thực – phân quyền người dùng một cách chi tiết, mã hóa dữ liệu quan trọng
bằng công nghệ TDE, và hỗ trợ tích hợp ứng dụng thông qua các giao thức
kết nối như JDBC, ODBC, SOAP & HTTP, …
❑ SQL Server cung cấp hệ thống giao diện người dùng thân thiện và các tính
năng hỗ trợ giám sát và báo cáo việc thực thi truy vấn. Tính năng này cung
cấp thông tin chi tiết về hiệu suất và sự kiện trong hệ thống theo thời gian
thực, giúp cho việc thao tác với dữ liệu trở nên dễ dàng hơn.

115
− MonetDB

MonetDB là một hệ quản trị cơ sở dữ liệu không quan hệ mã nguồn mở, được
phát triển tại Centrum Wiskunde & Informatica ở Hà Lan. MonetDB được thiết
kế để đáp ứng hiệu suất cao cho các truy vấn phức tạp đối với dữ liệu lớn, chẳng
hạn như kết hợp các bảng dữ liệu với hàng trăm cột và hàng triệu hàng. MonetDB
được áp dụng trong các ứng dụng hiệu suất cao để xử lý và phân tích dữ liệu trực
tuyến, khai thác dữ liệu, hệ thống thông tin địa lý, …
MonetDB là giải pháp phần mềm Other Non-Relational Databases Software
với chức năng và chi phí phù hợp cho các doanh nghiệp từ nhỏ và vừa tới các
doanh nghiệp lớn. MonetDB được đánh giá cao bởi cả người dùng lẫn chuyên gia
trong lĩnh vực Database Software.
Thông qua phân tích những ưu điểm cũng như thuận lợi trên, dễ dàng nhận
thấy MonetDB có khả năng hỗ trợ cho các hệ thống báo cáo – thống kê yêu cầu
hiệu năng cao trong khả năng lưu trữ và trích xuất lượng dữ liệu lớn.
❑ MonetDB hỗ trợ đa dạng các ngôn ngữ truy vấn như SQL, XQuery và nhiều
ngôn ngữ truy vấn mở rộng khác. Đồng thời, MonetDB cung cấp mô hình
mở rộng linh hoạt, giúp tối ưu hóa hiệu suất và khả năng mở rộng hệ thống
khi kích thước cơ sở dữ liệu tăng lên.
❑ MonetDB sử dụng kiến trúc cột, có khả năng tăng cường hiệu suất cho các
truy vấn dữ liệu liên quan đến các cột thay vì toàn bộ hàng. Ứng dụng kiến
trúc này, MonetDB sở hữu hiệu suất cao vượt trội trong việc thực hiện các
truy vấn thống kê phức tạp trên dữ liệu lớn.
❑ MonetDB có sẵn trên nhiều nền tảng, bao gồm Linux, Windows và macOS,
giúp tích hợp dễ dàng vào các môi trường khác nhau. Ngoài ra, MonetDB
được phát triển và duy trì bởi cộng đồng mã nguồn mở, cho phép linh hoạt
trong việc kiểm soát và tùy chỉnh theo nhu cầu hệ thống.

116
2.2. Công nghệ lập trình phía Server

− Ngôn ngữ lập trình Java

Java là một ngôn ngữ lập trình hướng đối tượng, được khởi xướng bởi James
Gosling vào năm 1991. Thay vì trực tiếp biên dịch mã nguồn thành mã máy hoặc
thông dịch mã nguồn, thì Java thực hiện biên dịch mã nguồn thành bytecode, sau
đó bytecode sẽ được môi trường thực thi chạy.
“Write Once, Run Anywhere” là nguyên tắc lập trình phần mềm đặc biệt được
phổ biến bởi ngôn ngữ lập trình Java. Phần mềm Java có thể hoạt động trên mọi
nền tảng khác nhau thông qua một môi trường thực thi, được gọi là JVM – Java
Virual Machine.
Thông qua phân tích những ưu điểm cũng như thuận lợi trên, dễ dàng nhận
thấy ngôn ngữ lập trình Java có những ưu điểm mạnh mẽ hỗ trợ cho việc thiết kế
và phát triển hệ thống bán hàng.
❑ Hiệu suất cao: Java cung cấp các cơ chế an toàn cho việc kiểm soát truy
cập vào bộ nhớ, dòng thực thi và quản lý bộ nhớ tự động nhờ vào khả năng
thu hồi bộ nhớ thông minh của Garbage Collection.
❑ Bảo mật mạnh mẽ: Java sử dụng JVM để thực thi mã nguồn, cung cấp một
lớp trừu tượng giữa ứng dụng và hệ điều hành giúp kiểm soát quyền truy
cập đến tài nguyên hệ thống và ngăn chặn mã nguồn độc hại.
❑ Hỗ trợ SSL/TLS: Java hỗ trợ các giao thức truyền thông bảo mật SSL/TLS
giúp bảo vệ quá trình truyền thông và đảm bảo tính an toàn khi truyền tải
dữ liệu trong môi trường Internet.
❑ Hỗ trợ đa luồng: Java hỗ trợ lập trình đa luồng, tận dụng tối đa tài nguyên
và sức mạnh thiết kế đa nhân của kiến trúc máy tính hiện đại. Đồng thời,
Java cũng cung cấp các giải pháp đồng bộ giữa các tiến trình thực thi như
synchronized, priority, threadpool, …

117
− Framework Spring Boot

Spring Boot là một framework thuộc hệ sinh thái Spring Framework của ngôn
ngữ lập trình Java, được phát triển bởi Spring Team vào năm 2014. Spring Boot
đơn giản hóa quá trình xây dựng ứng dụng Spring, giúp lập trình viên chỉ cần tập
trung vào việc phát triển nghiệp vụ cho ứng dụng.
Trước đây, công đoạn khởi tạo một dự án Spring rất phức tạp từ việc khai báo
các Dependencies, cấu hình bằng XML hoặc Annotation, cho đến việc tạo Server
cấu hình Spring MVC, … thì với Spring Boot, việc khởi tạo một dự án Spring đã
có thể được thực hiện tự động một cách nhanh chóng và đơn giản hơn.
Thông qua phân tích những ưu điểm cũng như thuận lợi trên, dễ dàng nhận
thấy Spring Boot framework có những ưu điểm mạnh mẽ hỗ trợ cho việc thiết kế
và phát triển hệ thống bán hàng.
❑ Tự động cấu hình: Spring Boot cung cấp tính năng cốt lõi của một dự án
phần mềm là tự động cấu hình một số thành phần dựa trên các quy ước và
mặc định thông thường, cụ thể là các dependencies được cung cấp.
❑ Tích hợp mạnh mẽ: Spring Boot tích hợp nhiều thư viện và framework phổ
biến trong cộng đồng Java, giúp đơn giản hóa quá trình phát triển và tích
hợp các thành phần khác nhau.
❑ Triển khai độc lập: Spring Boot cho phép thiết lập và khởi động ứng dụng
Spring độc lập mà không cần triển khai chúng trên máy chủ web. Một ứng
dụng Java Spring Boot chỉ cần đóng gói và sau đó có thể sẵn sàng để chạy
bằng cách sử dụng các lệnh đơn giản.
❑ Hỗ trợ phát triển: DevTools module được hỗ trợ bởi Spring Boot cung cấp
các công cụ hỗ trợ phát triển mạnh mẽ, giúp tăng cường hiệu suất và linh
hoạt trong quá trình phát triển ứng dụng web như tái khởi động nhanh,
theo dõi và cập nhật tự động khi có sự thay đổi trong mã nguồn.

118
2.3. Công nghệ lập trình phía Client

− HTML, CSS và JS

HTML – Hypertext Markup Language là một ngôn ngữ đánh dấu, được Tim
Berners-Lee – nhà phát minh World Wide Web, tạo ra như một cách để chia sẻ tài
liệu giữa các nhà nghiên cứu với nhau tại CERN vào năm 1989. HTML được sử
dụng với mục đích mô tả cấu trúc và nội dung của website, giúp định nghĩa các
phần tử và các thuộc tính, mỗi phần tử đại diện cho một thành phần cụ thể trên
trang web, như đoạn văn bản, hình ảnh, đường liên kết, biểu mẫu, và nhiều thành
phần khác trên một chương trình đặc biệt gọi là Browser.
CSS – Cascading Style Sheets là một ngôn ngữ định dạng, được tạo ra và phát
triển bởi nỗ lực của nhiều chuyên gia trong lĩnh vực web bắt đầu vào năm 1990.
CSS được sử dụng với mục đích mô tả cách mà các phần tử HTML sẽ được hiển
thị trên trình duyệt – Browser, giúp điều chỉnh kiểu dáng, bố cục và giao diện
người dùng của trang web, đồng thời giúp tách rời riêng biệt và rõ ràng phần nội
dung và phần trình bày của trang web, mang lại khả năng kiểm soát và tùy chỉnh
một cách linh hoạt hơn trong việc thiết kế website.
JS – JavaScript là một ngôn ngữ lập trình bậc cao, hướng đối tượng, đa nền
tảng và hỗ trợ kịch bản, được sử dụng phổ biến nhất trong lập trình website, được
tạo ra bởi Brendan Eich tại Netscape Communications Corporation vào năm
1995. JS được sử dụng với mục đích tạo ra khả năng tương tác động cho website,
tăng cường trải nghiệm đối với người dùng. JS có thể được tích hợp trực tiếp vào
tài liệu HTML hoặc sử dụng như một tệp riêng biệt, giúp cho website trở nên linh
hoạt và sống động hơn, đồng thời cho phép kiểm soát hành vi tốt hơn so với việc
sử dụng HTML đơn thuần.
Tổng cộng, HTML, CSS, và JavaScript là bộ 3 ngôn ngữ quan trọng trong lĩnh
vực web. Mỗi ngôn ngữ đóng một vai trò then chốt và đảm nhiệm một chức năng
riêng biệt trong quá trình thiết kế và xây dựng những website mang lại trải nghiệm
tuyệt vời cho người dùng.

119
− Framework NextJS

NextJS là một framework JavaScript mã nguồn mở phổ biến khởi xướng bởi
Zeit vào năm 2016, được sử dụng để xây dựng các ứng dụng web React. NextJS
được xây dựng dựa trên nền tảng React và bổ sung các khả năng tối ưu hóa như
Server Side Rendering – SSR, Static Site Generation – SSG, …
Ưu điểm chính của NextJS là hỗ trợ tích hợp SSR để tối ưu hóa SEO. Với tất
cả thông tin trên Server, nó sẽ xử lý để tạo ra thông tin HTML của trang. Sau đó,
Client có thể gửi một yêu cầu đến Server và nhận toàn bộ trang HTML thay vì
yêu cầu từng thành phần riêng lẻ với Client Render.
Thông qua phân tích những ưu điểm cũng như thuận lợi trên, dễ dàng nhận
thấy NetxtJS framework có những ưu điểm mạnh mẽ hỗ trợ cho việc thiết kế và
phát triển hệ thống bán hàng.
❑ Server Side Rendering: NextJS có thể tạo và trả về HTML từ phía máy chủ
trước khi gửi đến trình duyệt. Điều này giúp giảm thời gian tải trang, tăng
cường trải nghiệm người dùng và cải thiện SEO, đặc biệt quan trọng đối
với các trang sản phẩm trong website bán hàng.
❑ Client Side Routing: NextJS cung cấp hệ thống định tuyến mạnh mẽ phía
người dùng, giúp quản lý các định tuyến trang một cách dễ dàng và tạo ra
trải nghiệm người dùng mượt mà khi điều hướng giữa các trang thông tin
sản phẩm và danh mục.
❑ Tối ưu hóa SEO: Cấu trúc SSR của NextJS giúp cải thiện SEO bằng cách
cung cấp nội dung tĩnh cho các công cụ tìm kiếm, đảm bảo rằng thông tin
sản phẩm được hiển thị chính xác.
❑ Hỗ trợ phát triển: NextJS cung cấp môi trường phát triển thuận tiện với
các tính năng như Hot Module Replacement để giảm thời gian phát triển
và làm cho việc thử nghiệm và thay đổi diễn ra nhanh chóng.

120
2.4. Các công nghệ khác

− Công cụ hỗ trợ lập trình

Visual Studio Code hay VSCode là một trình soạn thảo mã nguồn mở và miễn
phí được phát triển bởi Microsoft và phát hành lần đầu vào năm 2015. VSCode là
một phần mềm gọn nhẹ, linh hoạt và mạnh mẽ với nhiều tính năng tiện ích, được
thiết kế để hỗ trợ quá trình xây dựng và phát triển phần mềm trên nhiều nền tảng
khác nhau, bao gồm Windows, macOS và Linux.
❑ Mã nguồn mở: VSCode là một phần mềm mã nguồn mở tương thích tốt với
hầu hết các ngôn ngữ lập trình và cung cấp nhiều tính năng mạnh mẽ, giúp
tiết kiệm chi phí về mặt công cụ lập trình.
❑ Hiệu năng cao: VSCode hỗ trợ trên đa dạng nền tảng, đảm bảo tính nhất quán
khi làm việc trên các hệ điều hành khác nhau, và là một phần mềm nhẹ, khởi
động nhanh và sử dụng tài nguyên máy tính một cách hiệu quả.
❑ Hỗ trợ mở rộng: VSCode cung cấp khả năng mở rộng linh hoạt thông qua các
extensions được đóng góp bởi cộng đồng người dùng, có thể được cài đặt và
quản lý dễ dàng thông qua Marketplace.
❑ Hỗ trợ tích hợp: VSCode hỗ trợ tích hợp với các công cụ là Debugging và Git,
giúp lập trình viên dễ dàng theo dõi và quản lý mã nguồn, cũng như sửa lỗi
chương trình một cách thuận tiện và hiệu quả.
❑ Hỗ trợ cộng tác: Visual Studio Live Share là một tính năng đặc biệt cho phép
chia sẻ môi trường lập trình, giúp các thành viên cộng tác trực tuyến với nhau,
tiết kiệm thời gian trong quá trình phát triển phần mềm.
❑ Cộng đồng người dùng: VSCode được duy trì và phát triển bởi một cộng đồng
to lớn với nhiều đóng góp tích cực. Tài liệu hướng dẫn được trình bày chi tiết
trên trang web chính thức và các nguồn tài nguyên trực tuyến khác.

121
− Công cụ hỗ trợ quản lý mã nguồn

GitHub là một nền tảng phát triển phần mềm hàng đầu được tạo ra bởi Chris
Wanstrath, PJ Hyett và Tom Preston-Werner vào năm 2008. Github cung cấp một
loạt các dịch vụ lưu trữ mã nguồn và quản lý dự án phần mềm dựa trên hệ thống
kiểm soát phiên bản Git, được sử dụng phổ biến và rộng rãi trên toàn cầu.
❑ Lưu trữ mã nguồn: GitHub cung cấp một nơi để lưu trữ mã nguồn của dự án.
Mỗi dự án có thể được lưu trữ một kho lưu trữ riêng biệt để thuận tiện cho
việc theo dõi và quản lý mã nguồn.
❑ Kiểm soát phiên bản: Thông qua sử dụng Git, GitHub cho phép theo dõi các
thay đổi trong mã nguồn, giúp quản lý phiên bản và hợp nhất các nhánh khác
nhau của dự án.
❑ Giao diện đồ họa: Github cung cấp giao diện người dùng đơn giản và thân
thiện cả dưới dạng dòng lệnh và ứng dụng, giúp người dùng dễ dàng theo dõi
và thực hiện các hoạt động quản lý mã nguồn.
❑ Tính bảo mật: GitHub cung cấp các tính năng bảo mật như kiểm soát quyền
truy cập và xác minh hai yếu tố (2FA), cũng như quản lý nhóm và quyền truy
cập của người dùng.
❑ Tính tích hợp: Github hỗ trợ tích hợp với nhiều công cụ phát triển khác nhau,
giúp tối ưu hóa quy trình làm việc của nhóm phát triển, đặc biệt là công cụ hỗ
trợ Visual Studio Code.
❑ Hỗ trợ phát triển: GitHub có khả năng tự động nhận biết cú pháp trong nhiều
loại ngôn ngữ và cung cấp chức năng xem trước cho hầu hết các loại tệp tin,
bao gồm cả hình ảnh và văn bản.
❑ Hỗ trợ triển khai: GitHub tích hợp với nhiều dịch vụ hỗ trợ triển khai dự án
CI/CD như GitHub Actions, Jenkins, và Travis CI để tự động hóa quy trình
kiểm thử và triển khai ứng dụng.

122
− Công nghệ Design Pattern
Ứng dụng được xây dựng theo mô hình thiết kế phần mềm phổ biến MVC với
sự hỗ trợ của framework Spring Boot và ngôn ngữ lập trình Java. Qua đó, Design
Pattern được sử dụng với mục đích là để cung cấp hướng tiếp cận linh hoạt, hiệu
quả và dễ bảo trì cho việc thiết kế và xây dựng ứng dụng website. Design Pattern
là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ
biến trong thiết kế phần mềm.
a) Creational Pattern
❑ Singleton: Mẫu thiết kế đảm bảo ứng với mỗi lớp chỉ có một đối tượng
duy nhất được khởi tạo và cung cấp khả năng truy cập toàn cục đến đối
tượng đó. Trong ứng dụng Spring, Singleton được ứng dụng trong việc
quản lý các bean mặc định, mỗi bean được tạo ra một lần duy nhất và
quản lý bởi Spring Container.
❑ Factory Method: Mẫu thiết kế cung cấp một giao diện để quản lý việc
khởi tạo đối tượng trong một lớp con, nhưng cho phép lớp con thay đổi
loại đối tượng được tạo. Trong ứng dụng Spring, Factory Method được
ứng dụng thông qua các Factory Bean, một bean được sử dụng để tạo
và cấu hình một bean khác, cung cấp một cách linh hoạt để tạo ra các
đối tượng phức tạp.
b) Structural Pattern
❑ Proxy: Mẫu thiết kế cung cấp một đối tượng đại diện để kiểm soát truy
cập vào đối tượng thực và cung cấp các chức năng bổ sung khác. Trong
ứng dụng Spring, Proxy không được sử dụng như một mẫu thiết kế cụ
thể, mà được ứng dụng vào các khía cạnh đặc biệt của mô hình Spring,
cụ thể là AOP – Aspect Oriented Programming và DI – Dependency
Injection.
c) Behavioral Pattern
❑ Template Method: Mẫu thiết kế cung cấp một cấu trúc để kiểm soát và
triển khai quy trình trong một phương thức của một lớp, nhưng cho
phép lớp con triển khai các bước cụ thể của quy trình. Trong ứng dụng
Spring, Template Method được ứng dụng trong các mô hình cụ thể như
các loại template và callback trong framework Spring, chẳng hạn như
JdbcTemplate trong Spring JDBC, Spring Data JPA Repository, Spring
Boot Starter Template, …

123
3. BIỂU ĐỒ THIẾT KẾ CƠ SỞ DỮ LIỆU

Diagram - Lược đồ thiết kế cơ sở dữ liệu


4. LƯỢC ĐỒ PHÂN RÃ HỆ THỐNG CON

Diagram - Lược đồ phân rã hệ thống con

124
5. GIAO DIỆN NGƯỜI DÙNG CHÍNH

− Giao diện đăng nhập

− Giao diện đăng ký

125
− Giao diện khôi phục mật khẩu

126
− Giao diện trang chủ

127
128
− Giao diện chi tiết sản phẩm

129
130
− Giao diện giỏ hàng

131
− Giao diện thông tin cá nhân

− Giao diện đổi mật khẩu

132
− Giao diện địa chỉ giao hàng

133
− Giao diện lịch sử đơn hàng

− Giao diện lỗi kết quả xác thực

134
PHỤ LỤC
− TẤT CẢ DIAGRAM
https://drive.google.com/drive/folders/1JQfGTRFdBrpRWYqK50I_6fWgQeEnkr-
d?usp=drive_link

− TỔNG HỢP GIAO DIỆN


https://docs.google.com/document/d/1cshwEOSka76Tvc7PqYwHRn8tn6pBvA1l/edi
t?usp=drive_link&ouid=117185585535775433774&rtpof=true&sd=true

− TỔNG HỢP BIỂU ĐỒ USECASE


https://drive.google.com/file/d/10CrwptrTYUokJrChhteANTCEu8QVtSpY/view?us
p=drive_link

− TỔNG HỢP BIỂU ĐỒ TUẦN TỰ


https://drive.google.com/drive/folders/15tkwucFdmYXMyxZiP4L6FoCqe8bPowFC
?usp=drive_link

− TỔNG HỢP BIỂU ĐỒ HOẠT ĐỘNG


https://drive.google.com/file/d/135HJ5CwLdfffKUOIEZ79aaVVAKraCTSE/view?u
sp=drive_link

− TỔNG HỢP BIỂU ĐỒ LỚP


https://drive.google.com/file/d/1T_1H21NUwuEPqkR5Ia9Fof4mSgMDKKrn/view?
usp=drive_link

− TỔNG HỢP BIỂU ĐỒ TRẠNG THÁI


https://drive.google.com/file/d/1FPdXo7He0_QVabpi4TznhEBksgB_2RhC/view?us
p=drive_link

− TỔNG HỢP CÁC LƯỢC ĐỒ KHÁC


https://drive.google.com/file/d/11-
v3hvfAeM_gzJhnSWv0q9iu4MblGSuz/view?usp=drive_link

135

You might also like