You are on page 1of 65

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

BÁO CÁO CUỐI KỲ


MÔN HỌC: LẬP TRÌNH WEB
ĐỀ TÀI: XÂY DỰNG WEBSITE BÁN GIẦY

Giảng viên hướng dẫn : Đỗ Quang Hưng


Nhóm lớp : 01
Nhóm thực hiện : 15
Nhóm sinh viên thực hiện : Nguyễn Thị Trang – B20DCAT188
Lê Văn Quân – B20DCAT148
Nguyễn Văn Trung – B20DCAT196
Nguyễn Tiến Thành – B20DCAT176
Nguyễn Mạnh Thuần – B20DCAT184

Hà Nội – 2023
Mục lục
1. Phân tích thiết kế hệ thống ..................................................................................................... 1
1.1. Khảo sát, đặc tả yêu cầu ............................................................................................................... 1
1.1.1. Giới thiệu............................................................................................................................... 1
1.1.2. Tổng quan về phần mềm ....................................................................................................... 1
1.1.3. Quy trình nghiệp vụ............................................................................................................... 3
1.1.4. Đặc tả yêu cầu ....................................................................................................................... 4
1.2. Biểu đồ Use case .......................................................................................................................... 6
1.2.1. Biểu đồ Use case tổng quát ................................................................................................... 6
1.2.2. Use case Quản lý tất cả các tài khoản ................................................................................... 6
1.2.3. Use case quản lý thông tin cá nhân ....................................................................................... 8
1.2.4. Use case xem các sản phẩm ................................................................................................ 10
1.2.5. Use case tìm kiếm sản phẩm ............................................................................................... 12
1.2.6. Use case đặt hàng sản phẩm ................................................................................................ 14
1.2.7. Use case quản lý giỏ hàng ................................................................................................... 15
1.2.8. Use case xem báo cáo thống kê ........................................................................................... 17
1.2.9. Use case quản lý sản phẩm ................................................................................................. 19
1.2.10. Use case tạo tài khoản ....................................................................................................... 20
1.2.11. Use case quên mật khẩu .................................................................................................... 22
1.2.12. Use case quản lý nhà cung cấp .......................................................................................... 24
1.3. Biểu đồ lớp ................................................................................................................................. 25
1.4. Biểu đồ tuần tự ........................................................................................................................... 32
1.4.1. Biểu đồ đăng nhập ............................................................................................................... 32
1.4.2. Biểu đồ quản lý thông tin cá nhân ....................................................................................... 33
1.4.3. Biểu đồ quản lý nhà cung cấp ............................................................................................. 35
1.4.4. Biểu đồ quản lý tài khoản .................................................................................................... 36
1.4.5. Biểu đồ tìm kiếm sản phẩm ................................................................................................. 38
1.4.6. Biểu đồ đặt hàng.................................................................................................................. 39
2. Thiết kế cơ sở dữ liệu ........................................................................................................... 41
a. Diagram ......................................................................................................................................... 41
b. Mô tả các thuộc tính và kiểu dữ liệu ............................................................................................. 41
3. Công cụ sử dụng ................................................................................................................... 44
a. Công cụ sử dụng ............................................................................................................................ 44
b. Tổ chức các lớp của chương trình ................................................................................................. 44
4. Kết quả đạt được ................................................................................................................... 48
4.1. Giao diện trang HomePage ........................................................................................................ 48
4.2. Giao diện trang Shop .................................................................................................................. 50
4.3. Giao diện đăng nhập................................................................................................................... 50
4.4. Giao diện đăng ký tài khoản ....................................................................................................... 50
4.5. Giao diện quên mật khẩu ............................................................................................................ 51
4.6. Giao diện cập nhật thông tin ...................................................................................................... 51
4.7. Giao diện chi tiết sản phẩm ........................................................................................................ 51
4.8. Giao diện quản lý giỏ hàng ........................................................................................................ 53
4.9. Giao diện form đặt hàng ............................................................................................................. 54
4.10. Giao diện trang admin .............................................................................................................. 54
4.11. Giao diện trang quản lý tài khoản ............................................................................................ 55
4.12. Giao diện trang quản lý sản phẩm ............................................................................................ 55
4.12. Giao diện quản lý nhà cung cấp ............................................................................................... 56
4.13. Giao diện lịch sử xuất hóa đơn ................................................................................................. 56
4.14. Giao diện xem doanh thu theo tháng ........................................................................................ 57
4.15. Giao diện xem doanh thu theo ngày ......................................................................................... 57
4.16. Giao diện top sản phẩm bán chạy............................................................................................. 58
4.17. Giao diện cấu trúc thư gửi email xác nhận đơn hàng ............................................................... 58
4.18. Giao diện cấu trúc thư gửi qua email lấy lại mật khẩu ............................................................. 59
4.19. Giao diện thêm sản phẩm ......................................................................................................... 59
4.20. Giao diện cập nhật thông tin sản phẩm .................................................................................... 60
4.21. Giao diện thêm tài khoản ......................................................................................................... 60
4.22. Xuất hóa đơn thành file excel................................................................................................... 61
5. Kết luận ................................................................................................................................ 61
6. Phân chia công việc .............................................................................................................. 61
1. Phân tích thiết kế hệ thống
1.1. Khảo sát, đặc tả yêu cầu
1.1.1. Giới thiệu
a. Mục đích
Quản lý cửa hàng bán giày là quá trình tổ chức và điều hành một cửa hàng chuyên
mua bán các mặt hàng về giày để đạt được hiệu suất kinh doanh tốt nhất. Bao gồm nhiều khía
cạnh, từ quản lý hàng hóa và nhân viên đến tương tác với khách hàng và phân tích doanh số
sau đó đưa ra các chiến lược bán hàng.
Mục đích của tài liệu này là để cung cấp mô tả chi tiết về các yêu cầu cho hệ thống
phần mềm quản lý cửa hàng bán giày. Nó sẽ minh họa mục đích cụ thể và thông tin chi tiết
cho việc phát triển hệ thống.
b. Phạm vi
Hệ thống quản lý cửa hàng bán giày được phát triển trên ứng dụng web. Giúp khách
hàng có thể tham khảo, dễ dàng tìm kiếm, lựa chọn sản phẩm và đặt hàng trực tuyến. Hệ
thống giúp người bán thực hiện quản lý các sản phẩm, quản lý đơn hàng. Hệ thống giúp người
quản trị có thể quản lý người dùng trong hệ thống, đưa ra các phân tích thống kê đơn hàng
trong hệ thống.
c. Thuật ngữ
Thuật ngữ Định nghĩa
Admin Administrator. Người quản trị. Thuật ngữ này dùng để chỉ một vai trò
đối với hệ thống.
CSDL Cơ sở dữ liệu. Là một tập hợp các dữ liệu có tổ chức liên quan đến
nhau, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính.
d. Mô tả tài liệu
Phần Mô tả Mục đích
1. Giới thiệu Mô tả một cách khái quát Đưa ra các công việc cần thực hiện của
nhất, phạm vi, mục đích tài tài liệu.
liệu cần đạt được.
2. Tổng quan Khái quát phần mềm, đưa ra Khái quát phần mềm, đối tượng sử dụng,
phần mềm mô hình của phần mềm. mô hình ngữ cảnh.
3. Phân tích quy Các chức năng của hệ thống. Phân tích quy trình nghiệp vụ một cách
trình nghiệp vụ cụ thể nhất.
4. Đặc tả yêu cầu Các yêu cầu về chức năng và Trình bày các yêu cầu mà phần mềm cần
hiệu năng của phần mềm. phải thực hiện.

1.1.2. Tổng quan về phần mềm


a. Yêu cầu chung về phần mềm
Hệ thống phần mềm bao gồm: Quản lý việc tìm kiếm sản phẩm, xem chi tiết sản phầm
và đặt hàng của khách hàng. Quản lý sản phẩm, quản lý đơn hàng, thông báo và gửi email.
Quản lý người dùng và phân quyền, phân tích thống kê và báo cáo xuất dữ liệu.
- Tìm kiếm sản phẩm:
• Tìm kiếm và lọc sản phẩm theo ý của người mua (theo loại, theo hãng, theo
màu sắc).
1
- Xem chi tiết sản phẩm:
• Chức năng xem chi tiết sản phẩm cung cấp thông tin chi tiết về sản phẩm bao
gồm: hình ảnh, hãng, loại, kích cỡ, mô tả và các đánh giá của những người
mua khác.
- Đặt hàng trực tuyến:
• Chức năng đặt hàng trực tuyến thuận tiện và đơn giản. Tính năng giỏ hàng linh
hoạt và thuận tiện.
- Quản lý sản phẩm:
• Chức năng quản lý sản phẩm với các tính năng thêm, sửa, xóa, cập nhật dễ
dàng với các thông tin của sản phẩm như giá, mô tả, hình ảnh, số lượng, kích
cỡ.
- Quản lý đơn hàng:
• Chức năng quản lý đơn hàng cho phép xem chi tiết, xác nhận, hủy và theo dõi
tình trạng đơn hàng.
- Thông báo gửi email:
• Chức năng này sẽ tự động gửi email thông báo xác nhận về đơn hàng sau khi
khách hành thực hiện thành công việc đặt hàng trên hệ thống.
- Quản lý người dùng và phân quyền:
• Chức năng quản lý người dùng cho phép người quản trị tạo và quản lý các tài
khoản trên hệ thống như tạo, xóa tài khoản.
- Phân tích thông kế:
• Chức năng phân tích thống kê sẽ tính toán các số liệu để đưa ra các biểu đồ và
số liệu liên quan đến doanh số, lợi nhuận, số bình luận của sản phẩm theo các
mốc thời gian.
- Báo cáo xuất dữ liệu:
• Chức năng báo cáo xuất dữ liệu cung cấp báo cáo chi tiết và xuất dữ liệu ra
excel để phân tích.
- Quản lý thông tin trong CSDL:
• Lưu trữ các thông tin liên quan đến sản phẩm trong CSDL.
• Đưa ra các dữ liệu cần thiết khi có yêu cầu của hệ thống.
b. Đối tượng người dùng
- Người mua:
o Người mua hàng trực tuyến trên hệ thống quản lý bán giày
o Tìm kiếm, xem thông tin chi tiết về sản phẩm giày, và đặt hàng trực tuyến.
o Quyền truy cập hệ thống: Xem sản phẩm, đặt hàng, xem lịch sử đặt hàng
- Admin:
o Là người quản lý có trách nhiệm cao nhất trong hệ thống quản lý cửa hàng bán
giày.
o Quản lý toàn bộ hoạt động của hệ thống quản lý bán giày và đảm bảo hiệu suất
kinh doanh.
o Quản lý và phân quyền người dùng, bao gồm việc tạo, cập nhật và xoá tài
khoản với các mức độ quyền truy cập khác nhau.
o Phân tích thống kê về các sản phẩm và báo cáo chi tiết về doanh số bán hàng,
lợi nhuận, và xu hướng mua sắm của hệ thống.
o Quản lý thông tin chi tiết về sản phẩm bao gồm giá, mô tả, số lượng hàng và
hình ảnh.

2
o Quyền truy cập: Quản lý người dùng, theo dõi và phân tích doanh số bán hàng,
xuất các báo cáo chi tiết.
c. Các ràng buộc trong hệ thống quản lý cửa hàng bán giày
- Ràng buộc về sản phẩm:
o Ràng buộc số Lượng tồn kho: Số lượng tồn kho không thể âm và không thể
vượt quá mức tối đa cho phép.
o Ràng buộc giá sản phẩm: Giá sản phẩm không thể là số âm và phải nằm trong
khoảng giá quy định.
- Ràng buộc về khách hàng:
o Ràng buộc thông tin khách hàng: Thông tin khách hàng phải được nhập đầy đủ
và chính xác. Điều này đảm bảo rằng có đủ thông tin để liên lạc và vận chuyển
hàng đến địa chỉ chính xác.
o Ràng buộc tài khoản khách hàng: Mỗi khách hàng phải có một tài khoản và
không thể có nhiều tài khoản sử dụng cùng một địa chỉ email. Điều này giúp
duy trì tính nhất quán và dễ dàng quản lý thông tin khách hàng.
- Ràng buộc về tài khoản người dùng:
o Ràng buộc về quyền truy cập: Mỗi tài khoản phải có một quyền truy cập trong
hệ thống phù hợp với vai trò và trách nhiệm trong hệ thống.
o Ràng buộc về thông tin: Mỗi tài khoản phải có tối thiểu những thông tin cần
thiết để dễ dàng quản lý.
- Ràng buộc về hệ thống:
o Ràng buộc bảo mật: Hệ thống phải tuân thủ các tiêu chuẩn bảo mật để đảm bảo
an toàn thông tin của các tài khoản.
o Ràng buộc hiệu suất: Hệ thống phải đảm bảo hiệu suất cao để đối mặt với số
lượng lớn người dùng và đảm bảo trải nghiệm người dùng được mượt mà.
o Ràng buộc dữ liệu: Dữ liệu phải được sao lưu định kỳ để đảm bảo khả năng
khôi phục dữ liệu khi cần thiết. Điều này giúp đảm bảo tính an toàn và tin cậy
của hệ thống.
d. Giả đinh và phụ thuộc:
Mỗi sản phẩm trong hệ thống là độc lập với nhau và không có sự phụ thuộc đặc biệt
giữa chúng.
Mọi tài khoản người dùng đều có một hồ sơ đơn lập và không có sự chia sẻ thông tin
giữa các tài khoản khách hàng.
Quy trình thanh toán phụ thuộc vào thông tin đơn hàng để xác định số tiền cần thanh
toán và sản phẩm cụ thể được mua.
1.1.3. Quy trình nghiệp vụ
a. Quản lý sản phẩm
• Admin thêm sản phẩm mới vào hệ thống quả lý với thông tin chi tiết, bao gồm giá, mô
tả, và hình ảnh.
• Hệ thống cập nhật tồn kho sau khi thêm mới sản phẩm để đảm bảo thông tin lưu trữ
chính xác.
b. Tìm kiếm và lựa chọn sản phẩm

3
• Khách hàng truy cập trang web, sử dụng chức năng tìm kiếm và lọc để tìm sản phẩm
mong muốn.
• Khách hàng xem thông tin chi tiết, đánh giá và hình ảnh của sản phẩm để đưa ra quyết
định mua sắm.
c. Đặt hàng
• Khách hàng thêm sản phẩm vào giỏ hàng sau khi quyết định mua.
• Khách hàng nhập thông tin thanh toán và địa chỉ giao hàng trước khi xác nhận đơn
hàng.
d. Xác nhận đơn hàng
• Người bán xác nhận đơn hàng, kiểm tra thông tin và tính toán tổng số tiền cần thanh
toán.
• Hệ thống gửi email thông báo xác nhận thành công việc đặt hàng.
• Hệ thống tạo đơn vận chuyển để chuẩn bị sản phẩm cho quá trình giao hàng.
e. Giao hàng
• Người bán đóng gói sản phẩm và chuẩn bị cho quá trình giao hàng.
• Giao hàng cho khách hàng.
f. Nhận hàng
• Khách hàng xác nhận nhận được sản phẩm và kiểm tra tính đúng đắn và chất lượng.
• Khách hàng có thể đánh giá và viết nhận xét về sản phẩm sau khi nhận hàng.
1.1.4. Đặc tả yêu cầu
a. Các yêu cầu giao diện bên ngoài:
- Giao diện người dùng:
o Trang chủ thân thiện, hiển thị sản phẩm nổi bật.
o Trang sản phẩm dễ tìm kiếm, có lựa chọn lọc và hiển thị thông tin chi tiết.
o Giỏ hàng và thanh toán đơn giản và rõ ràng.
- Giao diện phần mềm:
o Hệ thống quản trị dễ quản lý danh sách sản phẩm và đơn hàng.
o Thống kê và báo cáo cung cấp thông tin chi tiết và dễ hiểu.
b. Yêu cầu chức năng:
- Đăng nhập:
o Người dùng đăng nhập vào hệ thống với tài khoản của mình. Có chức năng tự
động đăng nhập cho những lần sau.
o Người dùng có thể thay đổi mật khẩu theo ý muốn của riêng mình.
o Người dùng có thể đăng xuất sau khi kết thúc các thao tác trên hệ thống.
- Tìm kiếm sản phẩm:
o Hệ thống phải hỗ trợ linh hoạt và đơn gản, cho phép người mua lọc sản phẩm
theo nhiều tiêu chí như loại giày, hãng sản xuất, màu sắc và các thuộc tính
khác.
- Xem chi tiết sản phẩm:

4
o Giao diện xem chi tiết sản phẩm cần phải cung cấp thông tin đầy đủ và chi tiết
về sản phẩm, bao gồm hình ảnh chất lượng cao, thông tin về hãng, loại, kích
cỡ, mô tả chi tiết và đánh giá của người mua khác.
- Đặt hàng trực tuyến:
o Giao diện đặt hàng phải được thiết kế đơn giản, dễ sử dụng và thân thiện với
người dùng.
o Tính năng giỏ hàng nên hỗ trợ lưu giữ sản phẩm, tính tổng giá trị đơn hàng và
hiển thị chi tiết đơn hàng trước khi xác nhận.
- Quản lý sản phẩm:
o Chức năng quản lý sản phẩm cần hỗ trợ thêm mới, sửa đổi, xóa bỏ và cập nhật
thông tin của sản phẩm một cách linh hoạt và hiệu quả.
o Hệ thống phải có tính năng theo dõi số lượng tồn kho của sản phẩm hệ thống.
- Quản lý đơn hàng:
o Hệ thống cần tự động gửi email xác nhận đơn hàng ngay sau khi người mua
hoàn thành quá trình đặt hàng.
- Quản lý người dùng và phân quyền:
o Chức năng quản lý người dùng phải hỗ trợ tạo, xóa và quản lý tài khoản người
dùng.
o Hệ thống cần có chức năng phân quyền để xác định quyền truy cập của từng
loại người dùng như người quản trị (admin), người mua.
- Phân tích thống kê:
o Hệ thống cần tích hợp chức năng phân tích thống kê để tổng hợp và hiển thị
thông tin doanh số bán hàng, lợi nhuận và số lượng đánh giá theo các khoảng
thời gian.
o Biểu đồ và đồ thị nên được sử dụng để giúp người quản trị dễ dàng theo dõi và
đánh giá hiệu suất kinh doanh.
- Báo cáo xuất dữ liệu:
o Chức năng báo cáo xuất dữ liệu cần cung cấp khả năng xuất báo cáo chi tiết và
dữ liệu liên quan ra file Excel để hỗ trợ việc phân tích và quản lý.
- Quản lý thông tin trong CSDL:
o Hệ thống cần lưu trữ thông tin liên quan đến sản phẩm, đơn hàng, người dùng
và khách hàng một cách an toàn và hiệu quả.
o Hệ thống phải có khả năng truy xuất dữ liệu nhanh chóng và đáng tin cậy khi
cần thiết.

5
1.2. Biểu đồ Use case
1.2.1. Biểu đồ Use case tổng quát

1.2.2. Use case Quản lý tất cả các tài khoản

Mô tả: Cho phép admin có thể quản lý tất cả các tài khoản đã đăng ký và cung cấp thông tin
cho hệ thống

6
ADMIN THỰC HIỆN HỆ THỐNG HOẠT ĐỘNG

1. Quản trị viên vào trang web

2. Bấm vào nút Login

3. Đăng nhập vào với quyền là quản trị


viên

4.Bấm vào mục Manager Account

5.Truy xuất đến trang quản lý tất cả tài khoản

7
6. Sau đó quản trị viên có thể xem,
thêm, xóa các đối tượng trong danh
sách tài khoản đã được đăng ký trong
hệ thống

7.Hệ thống cập nhật dữ liệu tài khoản vào CSDL

1.2.3. Use case quản lý thông tin cá nhân

Mô tả: Cho phép admin, khách hàng, có thể quản lý, thay đổi thông tin tài khoản của mình
như username, password, email

8
ADMIN, KHÁCH HÀNG HỆ THỐNG HOẠT ĐỘNG

1.Truy cập vào trang web

2. Đăng nhập vào trang web với


quyền của mình

3.Bấm vào mục Edit Profile

4.Truy xuất đến trang cho phép cập nhật thông tin tài
khoản

5.Nhập thông tin cần thay đổi

6.Hệ thống cập nhật thông tin tài khoản trong CSDL
9
1.2.4. Use case xem các sản phẩm

Mô tả: Cho phép admin, khách hàng, khách vãng lai có thể xem thông tin tất cả sản phẩm có
trong cửa hàng có thể load more sản phẩm của loại đó, có thể xem chi tiết một sản phẩm

10
ADMIN, KHÁCH HÀNG, KHÁCH VÃNG LAI HỆ THỐNG HOẠT ĐỘNG

1.Admin, khách hàng, khách vãng lai vào trang web

2.Hệ thống truy xuất ra trang


homepage

3. Có thể xem tất cả sản phẩm có trong cửa hàng

4. Có thể thực hiện các chức năng tìm kiếm, xem chi
tiết, thêm vào giỏ, tải thêm sản phẩm, tìm theo loại
sản phẩm

11
1.2.5. Use case tìm kiếm sản phẩm

Mô tả: Cho phép admin, khách hàng, khách vãng lai thực hiện các chức năng lọc tìm kiếm sản
phẩm

12
ADMIN, KHÁCH HÀNG, KHÁCH VÃNG LAI HỆ THỐNG HOẠT ĐỘNG

1.Admin, khách hàng, khách vãng lai vào trang


web

2. Chọn vào mục Shop

3.Hệ trống truy xuất đến trang Shop

4. Người dùng nhập thông tin muốn tìm kiếm sản


phẩm theo tên tại ô tìm kiếm, theo màu sắc, theo
giá

5.Hệ thống nhận thông tin và phản


hồi lại cho người dùng những sản
phẩm được tìm kiếm

13
1.2.6. Use case đặt hàng sản phẩm

Mô tả: Cho phép khách hàng có thể tìm kiếm sản phẩm mình mua, thêm vào giỏ vào tiến hành
thanh toán

14
ADMIN, KHÁCH HÀNG HỆ THỐNG HOẠT ĐỘNG

1.Admin, khách hàng vào trang web

2. Bấm vào nút Login

3.Đăng nhập vào với quyền là Admin,


khách hàng

4.Hệ thống truy xuất đến trang của cửa hàng

5.Sau đó tìm kiếm sản phẩm muốn mua


thêm vào giỏ hàng

6. Sau đó bấm vào nút thanh toán

7. Cập nhật thông tin, thông tin đơn hàng


được gửi qua email

1.2.7. Use case quản lý giỏ hàng

Mô tả: Cho phép admin, khách hàng có thể quản lý thông tin giỏ hàng của chính mình

15
ADMIN, KHÁCH HÀNG HỆ THỐNG HOẠT ĐỘNG

1.Admin, khách hàng vào trang web

2. Bấm vào nút Login

3.Đăng nhập vào với quyền là Admin, khách


hàng

4.Vào biểu tượng giỏ hàng trên thanh menu

5.Hệ thống truy xuất đến trang quản lý giỏ


hàng

6. Xem thông tin giỏ hàng hoặc chỉnh sửa

7. Cập nhật thông tin cơ sở dữ liệu

16
1.2.8. Use case xem báo cáo thống kê

Mô tả: Cho phép admin có thể xem các thống kê về doanh số của hệ thống, thống kê về số
lượng comment, thống kê doanh số bán theo thứ trong tuần, trong tháng, xem tất cả các hóa
đơn

17
ADMIN HỆ THỐNG HOẠT ĐỘNG

1.Admin vào trang web

2. Bấm vào nút Login

3. Đăng nhập vào với quyền là admin

4.Vào mục Statistic

5.Hệ thống truy xuất đến trang thống kê

6.Admin xem các thông tin được thống kê

18
1.2.9. Use case quản lý sản phẩm

Mô tả: Cho phép admin có thể quản lý thông tin, thêm, sửa, xóa sản phẩm của mình.

ADMIN HỆ THỐNG HOẠT ĐỘNG

19
1.Admin vào trang web

2. Bấm vào nút Login

3. Đăng nhập vào hệ thống

4.Vào mục Manager Product

5.Hệ thống truy xuất đến trang quản lý sản


phẩm

6.Admin thực hiện xem, sửa hoặc xóa sản


phẩm

7. Cập nhật thông tin cơ sở dữ liệu

1.2.10. Use case tạo tài khoản

Mô tả: Cho phép khách hàng vãng lai có thể tạo tài khoản mới và có thể trở thành khách hàng

20
KHÁCH VÃNG LAI HỆ THỐNG HOẠT ĐỘNG

1.Khách vãng lai vào trang web

2. Bấm vào nút Login

3. Chọn Sign up New Account

4. Hệ thống truy xuất đến trang đăng ký tài khoản

21
5.Khách vãng lai nhập thông tin và gửi

6. Cập nhật thông tin cơ sở dữ liệu

1.2.11. Use case quên mật khẩu

Mô tả: Cho phép khách hàng lấy lại tài khoản của mình khi bị quên mật khẩu

22
KHÁCH HÀNG HỆ THỐNG HOẠT ĐỘNG

1.Khách hàng vào trang web

2.Chọn vào mục Forgot Password

3.Hệ thống truy xuất đến trang


Forgot Password

4. Người dùng nhập thông tin username và email để lấy


lại mật khẩu sau đó bấm nút Retrieve

5.Hệ thống gửi thông tin mật


khẩu qua email

23
1.2.12. Use case quản lý nhà cung cấp

Mô tả: Cho phép admin có thể quản lý thông tin, thêm, sửa, xóa nhà cung cấp

24
ADMIN HỆ THỐNG HOẠT ĐỘNG

1.Admin vào trang web

2. Bấm vào nút Login

3. Đăng nhập vào với quyền là admin

4.Chọn mục Statistic

5.Hệ thống truy xuất đến trang quản lý nhà


cung cấp

6.Admin xem, thêm hoặc xóa thông tin nhà


cung cấp

7.Cập nhật thông tin cơ sở dữ liệu

1.3. Biểu đồ lớp

Mô tả:

ST Thực thể Định Thuộc tính


T nghĩa

1 Account Chứa - id: mã tài khoản


thông - user,pass,email: lần lượt là tên,
tin tài mật khẩu và email của tài khoản
khoản - isSell: thuộc tính xác nhận bạn

25
trong hệ có phải nhân viên bán hàng hay
thống không
- isAdmin: thuộc tính xác nhận
bạn có phải quản trị viên hay
không
getAllAccount(): truy vấn lấy
thông tin tất cả các tài khoản từ
bảng Account
- checkAccountAdmin(): thực
hiện truy vấn kiểm tra xem một
tài khoản có userID có quyền
quản trị (isAdmin) hay không
- login(): kiểm tra thông tin
đăng nhập của người dùng với
thông tin kiểm tra là user và
pass
- checkAccountExist(): kiểm tra
xem một tên người dùng đã tồn
tại trong cơ sở dữ liệu hay chưa
-
checkAccountExistByUsername
AndEmail(): kiểm tra sự tồn tại
của một tài khoản trong cơ sở
dữ liệu dựa trên tên người dùng
và địa chỉ email
- signup(): thêm một tài khoản
mới vào cơ sở dữ liệu
- deleteAccount(): xóa một tài
khoản từ bảng Account dựa trên
uID
- editProfile(): chỉnh sửa thông
tin cá nhân của một tài khoản.
- insertAccount(): thêm một tài
khoản mới vào bảng Account

2 Category Chứa - cid: mã danh mục


thông - cname: tên của danh mục
tin các - getAllCategory(): lấy danh
hãng sách tất cả các danh mục từ
giày bảng Category
được
bán

3 Product Chứa - id: mã sản phẩm


thông - name, price, title, description,
tin tất cả model, color, delivery, quantity:
sản lần lượt là tên, giá, tiêu đề, mô
phẩm tả, mẫu, màu, đơn vị vận
trong hệ chuyển, số lượng của sản phẩm.
thống - image, image2, image3,

26
image4: lần lượt là các ảnh minh
họa sản phẩm
- getAllProduct(): truy vấn và
lấy tất cả các sản phẩm từ bảng
Product.
- insertProduct(): thêm một sản
phẩm mới vào cơ sở dữ liệu
- editProduct(): chỉnh sửa thông
tin của một sản phẩm trong cơ
sở dữ liệu
- deleteProduct(): xóa một sản
phẩm dựa trên id của sản phẩm
- deleteProductBySellID(): xóa
các sản phẩm dựa trên sell_ID
- countAllProduct(): đếm số
lượng sản phẩm trong bảng
Product.
- countAllProductBySellID():
đếm số lượng sản phẩm trong
bảng Product dựa trên một
sell_ID.
-
getQuantityFromProductTable()
:trả về số lượng của một sản
phẩm dựa trên ID sản phẩm từ
bảng Product.
- getSellIDByProductID(): lấy
sell_ID từ bảng Product dựa trên
productID.
- getCateIDByProductID(): lấy
cateID từ bảng Product dựa trên
id của sản phẩm
- getTop3(): lấy thông tin về top
3 sản phẩm từ bảng Product
- getNext3Product(): lấy thông
tin về 3 sản phẩm tiếp theo (theo
thứ tự id) từ bảng Product, bắt
đầu từ amount.
- getNext4NikeProduct(): lấy
thông tin về 4 sản phẩm Nike
tiếp theo (theo thứ tự id giảm
dần) từ bảng Product, bắt đầu từ
amount.
- getNext4AdidasProduct(): lấy
thông tin về 4 sản phẩm Adidas
tiếp theo (theo thứ tự id giảm
dần) từ bảng Product, bắt đầu từ
amount.
- getProductByCID(): truy vấn
để lấy thông tin về sản phẩm từ
bảng Product dựa trên mã danh

27
mục (cateID)
-
getProductBySellIDAndIndex():
lấy thông tin về sản phẩm từ
bảng Product dựa trên mã người
bán (sell_ID) và số trang
(indexPage)
- getProductByIndex(): lấy
thông tin về sản phẩm từ bảng
Product dựa trên số trang
(indexPage)
- searchByName(): lấy thông tin
về sản phẩm từ bảng Product
dựa trên tên sản phẩm
- searchPriceUnder100(): lấy
thông tin về sản phẩm từ bảng
Product có giá dưới 100
- searchPrice100To200(): lấy
thông tin về sản phẩm từ bảng
Product có giá trong khoảng từ
100 đến 200
- searchColorWhite(): lấy thông
tin về sản phẩm từ bảng Product
có màu trắng
- searchColorGray(): lấy thông
tin về sản phẩm từ bảng Product
có màu xám
- searchColorBlack(): lấy thông
tin về sản phẩm từ bảng Product
có màu đen
- searchColorYellow(): lấy
thông tin về sản phẩm từ bảng
Product có màu vàng
- searchByPriceMinToMax():
lấy thông tin về sản phẩm từ
bảng Product với giá nằm trong
một khoảng từ giá thấp nhất đến
giá cao nhất.
- searchPriceAbove200(): lấy
thông tin về các sản phẩm từ
bảng Product có giá trên 200.
- getRelatedProduct(): lấy danh
sách các sản phẩm có liên quan
dựa trên cateID của sản phẩm
chi tiết.
- getProductByID(): lấy thông
tin của một sản phẩm dựa trên id
- getLast(): lấy thông tin về sản
phẩm mới nhất từ bảng Product
- get8Last(): lấy thông tin của 8
sản phẩm mới nhất từ bảng

28
Product
- get4NikeLast(): lấy thông tin
của 4 sản phẩm mới nhất từ
bảng Product có cateID là Nike.
- get4AdidasLast(): lấy thông tin
của 4 sản phẩm mới nhất từ
bảng Product có cateID là
Adidas.
- decreaseProductQuantity():
giảm số lượng sản phẩm trong
cơ sở dữ liệu dựa trên productID
và một lượng cụ thể amount.

4 Cart Chứa - accountID: là mã tài khoản liên


thông kết với giỏ hàng
tin tất cả - productID: là mã sản phẩm
các giỏ liên kết với giỏ hàng
hàng có - maCart, amount, size: lần lượt
trong hệ là mã giỏ hàng, số lượng sản
thống phẩm trong giỏ hàng
- getCartByAccountID (): lấy
thông tin giỏ hàng dựa trên
accountID
- insertCart(): thêm một bản ghi
mới vào bảng "Cart" trong cơ sở
dữ liệu
- editAmountCart(): chỉnh sửa
thông tin số lượng của một sản
phẩm trong giỏ hàng của một tài
khoản người dùng cụ thể trong
cơ sở dữ liệu
- editAmountAndSizeCart():
chỉnh sửa thông tin về số lượng
và kích thước trong giỏ hàng
của một tài khoản người dùng
với một sản phẩm cụ thể trong
cơ sở dữ liệu
- deleteCart (): xóa các mục
trong giỏ hàng (Cart) dựa trên
productID
- deleteCartByAccountID():
xóa các mục trong bảng Cart
dựa trên accountID
- deleteCartByProductID(): xóa
các mục trong bảng Cart dựa
trên productID
- checkCartExist(): kiểm tra xem
một mục giỏ hàng có tồn tại
trong cơ sở dữ liệu cho một
accountID và productID đã cho
hay không.

29
5 Invoice Chứa - maHD, tongGia, ngayXuat: lần
thông lượt là mã hóa đơn, tổng giá trị
tin tất cả hóa đơn, ngày xuất hóa đơn.
các hóa - accountID: là mã tài khoản liên
đơn kết với hóa đơn.
- getAllInvoice(): lấy thông tin
về tất cả các hóa đơn từ bảng
Invoice
- searchByNgayXuat(): lấy
thông tin về hóa đơn từ bảng
Invoice dựa trên ngày xuất hóa
đơn.
- insertInvoice(): thêm một bản
ghi mới vào bảng Invoice trong
cơ sở dữ liệu
- deleteInvoiceByAccountId():
để xóa tất cả hóa đơn liên quan
đến một tài khoản dựa trên
accountID
- totalMoneyDay(): tính tổng số
tiền của các hóa đơn trong một
ngày cụ thể (dựa trên thứ trong
tuần) từ bảng Invoice
- totalMoneyMonth(): tính tổng
số tiền của các hóa đơn trong
một tháng cụ thể từ bảng
Invoice.
- sumAllInvoice(): tính tổng giá
của tất cả các hóa đơn từ bảng
Invoice.

6 Review Chứa - accountID: là mã tài khoản liên


thông kết với đánh giá
tin tất cả - productID: là mã sản phẩm
các đánh liên kết với đánh giá
giá của - contentReview: là nội dung
khách đánh giá
hàng - dateReview: là ngày đánh giá
- countAllReview(): đếm số
lượng đánh giá trong bảng
Review
- getAllReviewByProductID():
lấy danh sách tất cả đánh giá của
một sản phẩm dựa trên
productID
- getNewReview(): lấy đánh giá
mới nhất của một sản phẩm từ
một tài khoản cụ thể.
- insertReview(): thêm một bản
ghi mới vào bảng Review trong
cơ sở dữ liệu

30
- deleteReviewByProductID():
xóa các đánh giá trong bảng
Review dựa trên productID
- deleteReviewByAccountID():
xóa các đánh giá trong bảng
Review dựa trên accountID

7 TongChiTieuBanHang Chứa - userID: người dùng liên kết


thông với Tổng chi tiêu và doanh số
tin chi bán hàng
tiêu của - tongChiTieu: là tổng chi tiêu
khách của người dùng
hàng và - tongBanHang: là tổng doanh
thông số của người bán.
tin số - getTop5KhachHang(): lấy
tiền đã thông tin về top 5 khách hàng có
bán của tổng chi tiêu cao nhất từ bảng
người TongChiTieuBanHang
bán - getTop5NhanVien(): lấy thông
tin về top 5 nhân viên có tổng
doanh số bán hàng cao nhất từ
bảng TongChiTieuBanHang
- insertTongChiTieuBanHang():
thêm một bản ghi mới vào bảng
TongChiTieuBanHang trong cơ
sở dữ liệu
- editTongChiTieu():chỉnh sửa
tổng chi tiêu của một tài khoản
trong cơ sở dữ liệu
-
deleteTongChiTieuBanHangBy
UserID(): xóa thông tin tổng chi
tiêu bán hàng liên quan đến một
người dùng dựa trên userID
-
checkTongChiTieuBanHangExi
st(): kiểm tra xem đã có thông
tin tổng chi tiêu bán hàng cho
một người dùng có userID
tương ứng chưa
- editTongBanHang(): chỉnh sửa
thông tin về tổng tiền bán hàng
của một người bán trong cơ sở
dữ liệu

8 Supplier Chứa -idSupplier, nameSupplier,


thông phoneSupplier, emailSupplier,
tin về addressSupplier: lần lượt là mã,
nhà tên, số điện thoại, email, địa chỉ
cung của nhà cung cấp.
cấp -cateID: là danh mục của nhà

31
cung cấp.
- getAllSupplier(): lấy thông tin
tất cả các nhà cung cấp từ bảng
Supplier
- insertSupplier(): thêm một bản
ghi mới vào bảng Supplier trong
cơ sở dữ liệu
- deleteSupplier(): xóa một nhà
cung cấp từ bảng Supplier dựa
trên idSupplier.

9 Email Chưa - from: là địa chỉ email người


thông gửi
tin về - to: địa chỉ email người nhận
thông - fromPassword: password của
tin của người gửi.
email

1.4. Biểu đồ tuần tự


1.4.1. Biểu đồ đăng nhập

1. Tại trang chủ của hệ thống, người dùng click chọn vào đăng nhập.
2. Giao diện đăng nhập hiển thị ra.
3. Người dùng nhập thông tin đăng nhập.
4. Trang Login.jsp gọi lớp Dao yêu cầu kiểm tra thông tin đăng nhập của người dùng.
5. Lớp Dao gọi lớp User yêu cầu kiểm tra thông tin tài khoản của người dùng.
6. Lớp User trả lại kết quả sai thông tin tài khoản về cho lớp Dao nếu sau khi kiểm tra
thông tin tài khoản không hợp lệ.
7. Lớp Dao trả kết quả sai thông tin tài khoản về cho trang Login.jsp.
8. Trang giao diện Login.jsp hiển thị thông báo đăng nhập không thành công lại cho
người dùng.
32
9. Lớp User trả lại kết quả thông tin tài khoản hợp lệ về cho lớp Dao nếu sau khi kiểm tra
thông tin tài khoản hợp lệ.
10. Lớp Dao trả kết quả thông tin tài khoản hợp lệ về cho trang Login.jsp.
11. Trang giao diện Login.jsp hiển thị thông báo đăng nhập thành công lại cho người
dùng.

1.4.2. Biểu đồ quản lý thông tin cá nhân

1. Tại giao diện quản lí, admin click chọn thông tin.
33
2. Trang ManageDisplay gọi trang EditProfile.jsp.
3. Trang EditProfile.jsp trả về kết quả cho trang ManageDisplay.
4. Trang ManageDisplay hiển thị lại cho admin.
5. Admin nhập tên người dùng.
6. Trang ManageDisplay gọi trang Username.
7. Trang Username gọi lớp Dao yêu cầu kiểm tra thông tin đầu vào.
8. Lớp Dao gọi lớp User yêu cầu kiểm tra thông tin đầu vào.
9. Lớp User trả kết quả tên không hợp lệ về cho lớp Dao nếu thông tin đầu vào không
hợp lệ.
10. Lớp Dao trả kết quả lại cho trang Username.
11. Trang Username trả kết quả lại cho trang ManageDisplay.
12. Trang ManageDisplay hiển thị kết quả không thể cập nhật thông tin cho admin.
13. Lớp User gọi hàm Update để cập nhật thông tin.
14. Lớp User trả kết quả tên hợp lệ về cho lớp Dao nếu thông tin đầu vào hợp lệ.
15. Lớp Dao trả kết quả lại cho trang Username.
16. Trang Username trả kết quả lại cho trang ManageDisplay.
17. Trang ManageDisplay hiển thị kết cập nhật thành công thông tin cho admin.
18. Admin nhập mật khẩu mới.
19. Trang ManageDisplay gọi trang Password.
20. Trang Password gọi lớp Dao yêu cầu kiểm tra thông tin đầu vào.
21. Lớp Dao gọi lớp User yêu cầu kiểm tra thông tin đầu vào.
22. Lớp User trả kết quả mật khẩu không hợp lệ về cho lớp Dao nếu thông tin đầu vào
không hợp lệ.
23. Lớp Dao trả kết quả lại cho trang Password.
24. Trang Password trả kết quả lại cho trang ManageDisplay.
25. Trang ManageDisplay hiển thị kết quả không thể cập nhật mật khẩu cho admin.
26. Lớp User gọi hàm Update để cập nhật mật khẩu mới.
27. Lớp User trả kết quả mật khẩu hợp lệ về cho lớp Dao nếu thông tin đầu vào hợp lệ.
28. Lớp Dao trả kết quả lại cho trang Password.
29. Trang Password trả kết quả lại cho trang ManageDisplay.
30. Trang ManageDisplay hiển thị kết cập nhật mật khẩu thành công cho admin.
31. Admin nhập email mới.
32. Trang ManageDisplay gọi trang Email.
33. Trang Email gọi lớp Dao yêu cầu kiểm tra thông tin đầu vào.
34. Lớp Dao gọi lớp User yêu cầu kiểm tra thông tin đầu vào.
35. Lớp User trả kết quả email không hợp lệ về cho lớp Dao nếu thông tin đầu vào không
hợp lệ.
36. Lớp Dao trả kết quả lại cho trang Email.
37. Trang Email trả kết quả lại cho trang ManageDisplay.
38. Trang ManageDisplay hiển thị kết quả không thể cập nhật email cho admin.
39. Lớp User gọi hàm Update để cập nhật email mới.
40. Lớp User trả kết quả email hợp lệ về cho lớp Dao nếu thông tin đầu vào hợp lệ.
41. Lớp Dao trả kết quả lại cho trang Email.
42. Trang Email trả kết quả lại cho trang ManageDisplay.
43. Trang ManageDisplay hiển thị kết quả cập nhật email thành công cho admin.

34
1.4.3. Biểu đồ quản lý nhà cung cấp

1. Tại giao diện quản lí, admin click chọn sản phẩm.
2. Trang ManageDisplay gọi trang Quanlysanpham.jsp.
3. Trang Quanlysanpham.jsp trả kết quả về cho trang ManageDisplay.
4. Trang ManageDisplay hiển thị kết quả lại chi admin.
5. Admin click chọn chức năng thêm nhà cung cấp.
6. Trang ManageDisplay gọi trang Quanlysanpham.jsp.
7. Trang Quanlysanpham.jsp gọi trang AddSupplier.
8. Trang AddSupplier trả kết quả lại cho trang ManageDisplay.
9. Trang ManageDisplay hiển thị kết quả lại cho admin.
10. Admin nhập thông tin.
11. Trang ManageDisplay gọi trang AddSupplier.
12. Trang AddSupplier gọi lớp Dao yêu cầu thêm nhà cung cấp.
13. Lớp Dao gọi lớp Supplier yêu cầu thêm nhà cung cấp.
14. Lớp Supplier gọi hàm Update để cập nhật thông tin nhà cung cấp mới.
15. Lớp Supplier trả kết quả về cho lớp Dao.
16. Lớp Dao trả kết quả về cho trang AddSupplier.
17. Trang AddSupplier trả kết quả về cho trang ManageDisplay.
18. Trang ManageDisplay hiển thị kết quả thêm nhà cung cấp thành công cho admin.
19. Admin click chọn chức năng xóa nhà cung cấp.
20. Trang ManageDisplay gọi trang Quanlysanpham.jsp.
21. Trang Quanlysanpham.jsp gọi trang DeleteSupplier.
22. Trang DeleteSupplier trả kết quả lại cho trang ManageDisplay.
23. Trang ManageDisplay hiển thị kết quả lại cho admin.
35
24. Admin click chọn nút Delete.
25. Trang ManageDisplay gọi trang DeleteSupplier.
26. Trang DeleteSupplier gọi lớp Dao yêu cầu xóa nhà cung cấp.
27. Lớp Dao gọi lớp Supplier yêu cầu xóa nhà cung cấp.
28. Lớp Supplier gọi hàm Update để cập nhật lại thông tin nhà cung cấp.
29. Lớp Supplier trả kết quả về cho lớp Dao.
30. Lớp Dao trả kết quả về cho trang AddSupplier.
31. Trang AddSupplier trả kết quả về cho trang ManageDisplay.
32. Trang ManageDisplay hiển thị kết quả xóa nhà cung cấp thành công cho admin.
33. Admin click chọn chức năng xem thông tin nhà cung cấp.
34. Trang ManageDisplay gọi trang Quanlysanpham.jsp.
35. Trang Quanlysanpham.jsp gọi trang InforSupplier.
36. Trang InforSupplier trả kết quả lại cho trang ManageDisplay.
37. Trang ManageDisplay hiển thị kết quả lại cho admin.
38. Admin nhập thông tin nhà cung cấp.
39. Trang ManageDisplay gọi trang InforSupplier.
40. Trang InforSupplier gọi lớp Dao yêu cầu tìm thông tin về nhà cung cấp.
41. Lớp Dao gọi lớp Supplier yêu cầu tìm thông tin về nhà cung cấp.
42. Lớp Supplier trả kết quả thông tin nhà cung cấp về cho lớp Dao.
43. Lớp Dao trả kết quả về cho trang InforSupplier.
44. Trang InforSupplier trả kết quả về cho trang ManageDisplay.
45. Trang ManageDisplay hiển thị thông tin về nhà cung cấp cho admin.

1.4.4. Biểu đồ quản lý tài khoản

36
1. Tại giao diện quản lí, admin click chọn vào user.
2. Trang ManageDisplay gọi trang QuanLyTaiKhoan.jsp.
3. Trang QuanLyTaiKhoan.jsp trả kết quả về cho trang ManageDisplay.
4. Trang ManageDisplay hiển thị lại kết quả cho admin.
5. Admin click chọn chức năng thêm.
6. Trang ManageDisplay gọi trang QuanLyTaiKhoan.jsp.
7. Trang QuanLyTaiKhoan.jsp gọi trang AddUser.
8. Trang AddUser trả kết quả về cho trang ManageDisplay.
9. Trang ManageDisplay hiển thị kết quả cho admin.
10. Admin nhập tên người dùng vào.
11. Trang ManageDisplay gọi trang AddUser.
12. Trang AddUser gọi lớp Dao yêu cầu kiểm tra thông tin đầu vào.
13. Lớp Dao gọi lớp User yêu cầu kiểm tra thông tin đầu vào.
14. Lớp User trả kết quả người dùng không hợp lệ về cho lớp Dao nếu thông tin đầu vào
sai.
15. Lớp Dao trả kết quả về trang AddUser.
16. Trang AddUser trả kết quả về trang QuanLyTaiKhoan.jsp.
17. Lớp User gọi hàm Update để cập nhật thông tin người dùng.
18. Lớp User trả kết quả người dùng hợp lệ về cho lớp Dao nếu thông tin đầu vào đúng.
19. Lớp Dao trả kết quả về trang AddUser.
20. Trang AddUser trả kết quả về trang QuanLyTaiKhoan.jsp.
21. Admin click chọn xóa.
22. Trang ManageDisplay gọi trang DeleteUser.
23. Trang DeleteUser gọi lớp Dao yêu cầu xóa người dùng.
24. Lớp Dao gọi lớp User yêu cầu xóa người dùng.
25. Lớp User gọi hàm Update để cập nhật lại thông tin.
26. Lớp User trả kết quả lại về cho lớp Dao.
27. Lớp Dao trả kết quả lại cho trang DeleteUser.
28. Trang DeleteUser trả kết quả lại cho trang ManageDisplay.
29. Trang ManageDisplay hiển thị kết quả xóa thành công cho admin.
30. Admin chọn chức năng xem thông tin người dùng.

37
31. Trang ManageDisplay gọi trang QuanLyTaiKhoan.jsp.
32. Trang QuanLyTaiKhoan.jsp gọi trang InforUser.
33. Trang InforUser gọi lớp Dao yêu cầu lấy thông tin người dùng.
34. Lớp Dao gọi lớp User yêu cầu lấy thông tin người dùng.
35. Lớp User trả kết quả về cho lớp Dao.
36. Lớp Dao trả kết quả về cho trang InforUser.
37. Trang InforUser trả kết quả vê cho trang ManageDisplay.

1.4.5. Biểu đồ tìm kiếm sản phẩm

1. Tại giao diện tìm kiếm, người dùng nhập tên sản phẩm.
2. Trang Shop.jsp gọi lớp Dao để yêu cầu tìm kiếm sản phẩm.
3. Lớp Dao gọi hàm Check để kiêm tra thông tin đầu vào.
4. Lớp Dao gọi lớp Supplier yêu cầu tìm kiếm sản phẩm.
5. Lớp Supplier trả kết quả về lại cho lớp Dao.
6. Lớp Dao trả kết quả về lại cho trang Shop.jsp.
7. Trang Shop.jsp hiển thị kết quả lại cho người dùng.
8. Người dùng click chọn vào xem thông tin sản phẩm.
9. Trang DetailProduct.jsp gọi lớp Dao yêu cầu lấy thông tin về sản phẩm.
10. Lớp Dao gọi lớp Supplier yêu cầu lấy thông tin về sản phẩm.
11. Lớp Supplier trả kết quả lại về cho lớp Dao.
12. Lớp Dao trả kết quả lại về cho trang DetailProduct.jsp.
13. Trang DetailProduct.jsp hiển thị thông tin sản phẩm về cho người dùng.

38
1.4.6. Biểu đồ đặt hàng

1. Tại giao diện hệ thống, người dùng click chọn vào giỏ hàng.
2. Trang Display gọi trang Cart.jsp.
3. Trang Cart.jsp trả kết quả về cho trang Display.
4. Trang Display hiển thị thông tin giỏ hàng cho người dùng.
5. Người dùng click chọn vào đặt hàng.
6. Trang Display gọi trang Dathang.jsp.
7. Trang Dathang.jsp trả kết quả về cho trang Display.
8. Trang Display hiển thị thông tin đặt hàng cho người dùng.
9. Người dùng nhập số lượng.
10. Trang Display gọi trang Dathang.jsp.
11. Trang Dathang.jsp gọi lớp Dao yêu cầu kiểm tra thông tin đầu vào.
12. Lớp Dao gọi hàm Check để kiểm tra thông tin đầu vào.
13. Lớp Dao gọi lớp Supplier yêu cầu kiểm tra số lượng hợp lệ.
14. Lớp Supplier trả kết quả số lượng không hợp lệ về cho lớp Dao nếu số lượng nhập vào
không hợp lệ.
15. Lớp Dao trả kết quả về cho trang Dathang.jsp.
16. Trang Dathang.jsp trả kết quả về cho trang Display.
17. Trang Display hiển thị thông tin không thể đặt hàng cho người dùng.
39
18. Lớp Supplier gọi hàm Update để cập nhật thông tin đặt hàng.
19. Lớp Supplier trả kết quả số lượng hợp lệ về cho lớp Dao nếu số lượng hợp lệ.
20. Lớp Dao trả kết quả về cho trang Dathang.jsp.
21. Trang Dathang.jsp trả kết quả về cho trang Display.
22. Trang Display gọi trang Dathang.jsp.
23. Trang Dathang.jsp trả kết quả về cho trang Display.
24. Trang Display hiển thị thông tin đặt hàng cho người dùng.
25. Người dùng nhập thông tin.
26. Trang Display gọi trang Dathang.jsp.
27. Trang Dathang.jsp gọi lớp Dao yêu cầu kiểm tra thông tin đầu vào.
28. Lớp Dao gọi hàm Check để kiểm tra thông tin đầu vào.
29. Lớp Dao gọi lớp Supplier yêu cầu kiểm tra thông tin.
30. Lớp Supplier trả kết quả thông tin không hợp lệ về cho lớp Dap nếu thông tin nhập
vào không hợp lệ.
31. Lớp Dao trả kết quả về cho trang Dathang.jsp.
32. Trang Dathang.jsp trả kết quả về cho trang Display.
33. Trang Display hiển thị thông tin không thể đặt hàng cho người dùng.
34. Lớp Supplier gọi hàm Update để cập nhật thông tin đặt hàng.
35. Lớp Supplier trả kết quả thông tin hợp lệ về cho lớp Dap nếu thông tin nhập vào hợp
lệ.
36. Lớp Dao trả kết quả về cho trang Dathang.jsp.
37. Trang Dathang.jsp trả kết quả về cho trang Display.
38. Trang Display hiển thị thông tin đặt hàng thành công cho người dùng.

40
2. Thiết kế cơ sở dữ liệu
a. Diagram

b. Mô tả các thuộc tính và kiểu dữ liệu


STT Tên bảng Mục đích
1 Account Chứa thông tin các tài khoản trong hệ thống
2 Category Chứa thông tin các hãng giày cửa hàng bán
3 Product Chứa thông tin tất cả sản phẩm có trong hệ
thống
4 Cart Chứa thông tin tất cả các giỏ hàng có trong hệ
thống
5 Invoice Chứa thông tin tất cả các hóa đơn
6 Review Chứa thông tin các đánh giá của khách hàng
7 TongChiTieuBanHang Lưu lại thông tin chi tiêu của khách hàng và
thông tin số tiền đã bán hàng của người bán
8 Supplier Lưu lại thông tin nhà cung cấp

41
Bảng Account
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc
1 uID INT Mã tài khoản Khóa chính
2 user NVARCHAR(10) Tên tài khoản
3 pass NVARCHAR(10) Mật khẩu tài khoản
4 isSell BIT Là người bán
5 isAdmin BIT Là người quản trị
6 email NVARCHAR(50) Email

Bảng Cart
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc
1 accountID INT Mã tìa khoản
2 productID INT Mã sản phẩm
3 amount INT Số lượng
4 maCart INT Mã giỏ hàng Khóa chính
5 size NVARCHAR(50) Kích cỡ sản phẩm

Bảng Prodcut
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc

1 id int Mã sản phẩm Khóa chính

2 name nvarchar(200) Tên sản phẩm

3 image nvarchar(500) Hình ảnh sản phẩm

4 price float Giá sản phẩm

5 title nvarchar(500) Title sản phẩm

6 description nvarchar(500) Mô tả sản phẩm

7 cateID int Mã loại sản phẩm Khóa ngoại

8 sell_ID int Mã người bán Khóa ngoại

9 model nvarchar(50) Model cửa sản phẩm

10 color nvarchar(50) Màu sắc cửa sản phẩm

11 delivery nvarchar(50) Kho giao hàng

12 image2 nvarchar(500) Hình ảnh sản phẩm

13 image3 nvarchar(500) Hình ảnh sản phẩm

42
14 image4 nvarchar(500) Hình ảnh sản phẩm

15 quantity nvarchar(255) Số lượng sản phẩm

Bảng Category
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc

1 cid int Mã loại sản phẩm Khóa chính

2 cname nvarchar(50) Tên loại sản phẩm

Bảng Invoice
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc

1 maHD int Mã hóa đơn Khóa chính


Mã người thanh toán
2 accountID int hóa đơn
Tổng giá trị của hóa
3 tongGia float đơn

4 ngayXuat datetime Ngày xuất hóa đơn

Bảng Review
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc

1 accountID int Mã sản phẩm

2 productID int Tên sản phẩm

3 contentReview nvarchar(500) Hình ảnh sản phẩm

4 dateReview date Giá sản phẩm

5 maReview int Title sản phẩm Khóa chính

Bảng TongChiTieuBanHang
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc

1 userID int Mã tài khoản

2 TongChiTieu int Tổng tiền đã chi


Tổng tiền sản phẩm đã
3 TongBanHang int bán

Bảng Supplier

43
TT Thuộc tính Kiểu dữ liệu Ý nghĩa Ràng buộc

1 idSupplier int Mã nhà cung cấp Khóa chính

2 nameSupplier nvarchar(50) Tên nhà cung cấp


Số điện thoại nhà cung
3 phoneSupplier nvarchar(50) cấp

4 emailSupplier nvarchar(50) Email nhà cung cấp

5 addressSupplier nvarchar(50) Địa chỉ nhà cung cấp

6 cateID int Phân phối cho

3. Công cụ sử dụng
a. Công cụ sử dụng
- Microsoft SQL Server 2019
- Thiết kế trang web bằng ngôn ngữ HTML, CSS, Javascript, Bootstrap, jQuery
- Giao tiếp với cơ sở dữ liệu bằng JDBC
- Website được thực hiện theo mô hình MVC
- Viết code các chức năng của trang web bằng Java Servlet, Ajax
b. Tổ chức các lớp của chương trình
Chương trình được viết theo mô hình 3 tầng:
- Model
- View: các trang JSP chứa giao diện phần mềm
- Controller: chứa các class java servelet

44
45
46
47
4. Kết quả đạt được
4.1. Giao diện trang HomePage

48
Trang Home là trang đầu tiên hiện ra khi khách hàng truy cập website, đưa cho người dùng
một cái nhìn tổng quan về website, người dùng có thể xem được các sản phẩm mới nhất được
đề xuất ở trang Home.

49
4.2. Giao diện trang Shop

Trang shop giúp cho người dùng có thể xem và tìm kiếm các sản phẩm theo, ở đây người
dùng có thể tìm kiếm theo hãng giày, tên, giá, khoảng giá hoặc theo màu mà người dùng
mong muốn.
4.3. Giao diện đăng nhập

Trang đăng nhập dành cho những người dùng đã có tài khoản để có thể truy cập vào website
để thực hiện một số chức năng mà chỉ có người dùng đã có tài khoản mới thực hiện được, ví
dụ như việc đặt hàng trực tuyến.
4.4. Giao diện đăng ký tài khoản

50
Trang đăng ký dánh cho những người chưa có tài khoản có thể đăng ký tài khoản.
4.5. Giao diện quên mật khẩu

Trang quên mật khẩu giúp cho những người dùng đã không nhớ mật khẩu của mình có thể lấy
lại bằng cách nhập đúng tên người dùng và email đăng ký tài khoản thì mật khẩu mới sẽ được
gửi về email.
4.6. Giao diện cập nhật thông tin

Trang thay cập nhật thông tin các nhân giúp người dùng có thể thay đổi password hoặc email
đăng ký.
4.7. Giao diện chi tiết sản phẩm

51
52
Giao diện chi tiết sản phẩm giúp cho người dùng có thể truy cập để xem chi tiết sản phẩm như
là mô tả, giá, nơi vẩn chuyển và số lượng tồn kho, người dùng cũng có thể xem thông tin về
giày như là kích thước và có thể xem những đánh giá của các khách hàng khác và người dùng
cũng có thể chọn thêm sản phẩm vào giỏ hàng với số lượng mà họ mong muốn với điều kiện
số lượng không vượt quá số lượng tồn kho ở trang này.
4.8. Giao diện quản lý giỏ hàng

53
Trang giỏ hàng giúp người dùng có thể xem nhưng mặt hàng mình đã thêm vào giỏ hàng, họ
có thể thêm hoặc giảm số lượng cho sản phẩm mình đã chọn hoặc có thể xóa sản phẩm đã
thêm vào giỏ hàng, ở trang này người dùng có thể xem tổng số tiền cần thanh toán cho tất cả
sản phẩm trong giỏ hàng
4.9. Giao diện form đặt hàng

Trang đặt hàng này sẽ xuất hiện khi người dùng ấn thanh toán ở trang giỏ hàng ở trang này
người dùng sẽ nhập thông tin nhận hàng mà mình muốn.
4.10. Giao diện trang admin

Trang admin chỉ dành riêng cho những người dùng quản trị, ở đây những người dùng quản trị
có thể thực hiện một số tác vụ như quản lý tài khoản, quản lý nhà cung cấp, quản lý sản phẩm,
xem các thống kê…

54
4.11. Giao diện trang quản lý tài khoản

Trang quản lý tài khoản giúp cho admin cho thể thêm hoặc xóa các tài khoản có trong hệ
thống, người quản trị có thể xuất ra file excel thống kê các tài khoản đang tồn tại trong hệ
thống
4.12. Giao diện trang quản lý sản phẩm

Trang quản lý sản phẩm giúp cho admin cho thể thêm, sửa hoặc xóa các sản phẩm có trong hệ
thống, người quản trị có thể xuất ra file excel thống kê các sản phẩm đang tồn tại trong hệ
thống.

55
4.12. Giao diện quản lý nhà cung cấp

Trang quản lý nhà cung cấp giúp cho admin cho thể thêm hoặc xóa các nhà cung cấp có trong
hệ thống, người quản trị có thể xuất ra file excel thống kê các nhà cung cấp đang tồn tại trong
hệ thống.

4.13. Giao diện lịch sử xuất hóa đơn

Trang hóa đơn giúp cho người quản trị có thể xem các hóa đơn đã được xuất.

56
4.14. Giao diện xem doanh thu theo tháng

Trang doanh thu theo tháng giúp người quản trị có thể xem được doanh thu qua từng tháng.
4.15. Giao diện xem doanh thu theo ngày

Trang doanh thu theo ngày giúp người quản trị có thể xem được doanh thu qua từng ngày.

57
4.16. Giao diện top sản phẩm bán chạy

Trang top sản phẩm bán chạy có thể giúp người quản trị xem đợc những sản phẩm nào đang
được bán chạy nhất.
4.17. Giao diện cấu trúc thư gửi email xác nhận đơn hàng

Giao diện khi gửi mail khi người dùng đặt hàng

58
4.18. Giao diện cấu trúc thư gửi qua email lấy lại mật khẩu

Giao diện khi người dùng chọn chức năng quên mật khẩu
4.19. Giao diện thêm sản phẩm

Trang thêm sản phẩm giúp cho người quản trị có thể điền thông tin cho sản phẩm mới.

59
4.20. Giao diện cập nhật thông tin sản phẩm

Trang cập nhật thông tin sản phẩm giúp cho người quản trị có thể cập nhật thông tin cho sản
phẩm.
4.21. Giao diện thêm tài khoản

Trang thêm tài khoản giúp cho người quản trị có thể tạo người dùng mới.

60
4.22. Xuất hóa đơn thành file excel

Giao diện excel khi người quản trị xuất file hóa đơn.

5. Kết luận
Đóng góp của đề tài
Qua việc thực hiện đề tài trên, nhóm đã tạo ra một phần mềm đơn giản, thân thiện với
người sử dụng. Trong quá trình thực hiện đề tài nhóm đã đạt được những mục tiêu sau:
- Nắm được yêu cầu, phân tích, thiết kế CSDL phù hợp.
- Phân quyền cho các đối tượng sử dụng CSDL.
- Nắm rõ các khái niệm và kiến thức trong SQL Server.
Hạn chế
- Chưa thử nghiệm trên Internet.
- Câu lệnh truy vấn CSDL còn chưa tối ưu.
- Code giao diện vẫn còn rườm rà.
- Chưa kiểm thử hết tất cả các trường hợp có thể xảy ra.
Hướng Phát triển
Với nỗ lực của bản thân, nhóm đã cố gắng hoàn thành yêu cầu đề tài. Do thời gian và
năng lực có hạn nên phần mềm của nhóm mới chỉ đi sâu vào chức năng giao hàng. Nhóm đề
tài hướng phát triển phần mềm trở thành một phần mềm quản lý bán giày chuyên nghiệp.
Cung cấp đầy đủ những mặt hàng hiện đang có trên thị trường với giá cả hợp lý, phải chăng.
Đi kèm với bán hàng là những dịch vụ uy tín và chất lượng nhất để phục vụ đến khách hàng.

6. Phân chia công việc


Tên Đóng góp
Nguyễn Văn Trung-B20DCAT196 Thiết kết CSDL; lập trình chức năng đặt hàng, lịch sử
mua hàng, quản lý sản phẩm, tìm kiếm sản phẩm; thiết
kế giao diện đặt hàng.
Nguyễn Thị Trang-B20DCAT188 Thiết kế biểu đồ lớp; lập trình chức năng đăng ký,đăng
nhập, hóa đơn trong trang admin, top 10 sản phẩm;
thiết kế trang home.
61
Lê Văn Quân-B20DCAT148 Thiết kế biểu đồ Use case; lập trình chức năng quản lý
tài khoản, top 5 khách hàng; Thiết kế trang shop.
Nguyễn Tiến Thành-B20DCAT176 Thiết kế biểu đồ tuần tự; lập trình chức năng quên mật
khẩu, quản lý nhà cung cấp; Thiết kế trang admin
Nguyễn Mạnh Thuần-B20DCAT184 Thiết kế khảo sát, đặc tả yêu cầu; lập trình chức năng
edit profile, doanh thu theo tháng, doanh thu theo
ngày;Thiết kế trang chi tiết sản phẩm.

62

You might also like