Đồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyếnĐồ án tốt nghiệp: Xây dựng Website bán quần áo và phụ kiện trực tuyến
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
- -
Đề Tài:
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
- -
NGUYỄN THỊ TRÚC MY – 15110251 DƯƠNG ĐẠI DŨNG – 15110183
Đề Tài:
XÂY DỰNG HỆ THỐNG WEBSITE BÁN HÀNG
TRỰC TUYẾN
KHÓA LUẬN TỐT NGHIỆP KỸ SƯ CNTT
GIÁO VIÊN HƯỚNG DẪN THS NGUYỄN MINH ĐẠO
KHÓA 2015 - 2019
Trang 3LỜI CẢM ƠN
Nhóm em xin chân thành cám ơn khoa Công Nghệ Thông Tin, Bộ Môn Công Nghệ Phần Mềm, trường Đại học Sư Phạm Kỹ Thuật Tp.HCM đã tạo điều kiện thuận lợi cho chúng em thực hiện đề tài này
Chúng em cũng xin được gửi lời cảm ơn chân thành nhất đến cô Đặng Thị Kim Giao, người đã tận tình chỉ bảo và hướng dẫn nhóm em thực hiện đề tài này
Bên cạnh đó, chúng em xin gửi lời cảm ơn đến các thầy cô giảng viên của trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM nói chung cũng như các thầy cô giảng viên khoa Công Nghệ Thông Tin nói riêng, những người đã giảng dạy, tạo điều kiện cho em tích lũy được những kiến thức quý báu trong những năm học qua
Dù đã cố gắng hoàn thành đề tài khóa luận tốt nghiệp đúng yêu cầu, nhưng do thời gian hạn hẹp và khả năng còn hạn chế nên chắc chắn sẽ không tránh khỏi thiếu sót Chúng em mong nhận được sự thông cảm và tận tình chỉ bảo của các thầy cô và các bạn
Xin chân thành cảm ơn!
Trang 4ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP
Họ tên sinh viên 1: Nguyễn Thị Trúc My MSSV: 15110251
Họ tên sinh viên 2: Dương Đại Dũng MSSV: 15110183
Thời gian làm luận văn: Bắt đầu từ 18/03/2019 đến 30/06/2019
Chuyên ngành: Công nghệ phần mềm
Tên khóa luận: Tìm hiểu Spring boot, Angular 5, Microservice và Xây dựng website bán hàng trực tuyến
Giáo viên hướng dẫn: ThS Nguyễn Minh Đạo
Nội dung thực hiện:
- Tìm hiểu về Microservices, Angular 5, RESTful APIs
- Áp dụng xây dựng hệ thống website bán hàng trực tuyến
Kế hoạch thực hiện:
1 18/03/2019 đến
24/03/2019
- Tìm hiểu về mô hình Microservices
- Thiết kế, xây dựng mô hình Microservices cho Project
Trang 59 13/05/2019 đến
19/05/2019
- Viết các API quản lý loại sản phẩm, quản
lý sản phẩm, quản lý người dùng, thống kê, quản lý đơn đặt hàng
Trang 612 03/06/2019 đến
09/06/2019
- Map các API với giao diện quản lý hóa đơn, quản lý wishlist, thống kê, quản lý đơn đặt hàng
13 10/06/2019 đến
16/06/2019
- Map các API với giao diện diện quản lý loại sản phẩm, quản lý sản phẩm, quản lý người dùng
Tp Hồ Chí Minh, ngày tháng năm 2019
Người viết đề cương (Ký & ghi rõ họ tên)
Ý kiến của giáo viên hướng dẫn
(Ký & ghi rõ họ tên)
Th.S Nguyễn Minh Đạo
Trang 7MỤC LỤC
LỜI CẢM ƠN i
NHIỆM VỤ THỰC HIỆN KHÓA LUẬN TỐT NGHIỆP ii
MỤC LỤC v
DANH MỤC BẢNG BIỂU vii
DANH MỤC HÌNH ẢNH ix
MỞ ĐẦU xi
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI xi
2 MỤC TIÊU CỦA ĐỀ TÀI xii
3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU xiii
4 PHÂN TÍCH CÁC HỆ THỐNG WEBSITE CÓ LIÊN QUAN xiii
5 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC xiii
6 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN xiv
PHẦN NỘI DUNG 1
CHƯƠNG 1 CÁC CÔNG NGHỆ SỬ DỤNG 1
1.1 TỔNG QUAN VỀ ANGULAR 1
1.2 TỔNG QUAN VỀ SPRING BOOT 5
1.3 TỔNG QUAN VỀ MICROSERVICE 7
1.4 HIBERNATE 9
CHƯƠNG 2 KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 11
2.1 PHÂN TÍCH HIỆN TRẠNG 11
2.2 PHÂN TÍCH YÊU CẦU 11
CHƯƠNG 3 MÔ HÌNH HÓA YÊU CẦU 14
3.1 NHẬN DIỆN TÁC NHÂN VÀ CHỨC NĂNG TRONG SƠ ĐỒ USE CASE 14
3.2 MÔ TẢ CHI TIẾT TỪNG TÁC NHÂN VÀ TỪNG CHỨC NĂNG 15
3.3 SƠ ĐỒ USE CASE 20
CHƯƠNG 4 THIẾT KẾ PHẦM MỀM 36
4.1 THIẾT KẾ HỆ THỐNG: 36
4.2 THIẾT KẾ DỮ LIỆU 43
4.3 THIẾT KẾ GIAO DIỆN 55
CHƯƠNG 5 CÀI ĐẶT VÀ KIỂM THỬ 84
5.1 CÀI ĐẶT: 84
5.2 KIỂM THỬ: 84
KẾT LUẬN 87
1 NHỮNG KẾT QUẢ ĐẠT ĐƯỢC 87
2 NHỮNG KHÓ KHĂN VÀ CÁCH KHẮC PHỤC KHI THỰC HIỆN ĐỀ TÀI 87
3 ƯU ĐIỂM 87
Trang 84 HẠN CHẾ 87
5 KINH NGHIỆM ĐẠT ĐƯỢC 88
6 HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI 88
TÀI LIỆU THAM KHẢO 89
PHỤ LỤC 90
Trang 9DANH MỤC BẢNG BIỂU
Bảng 2.1 Bảng chức năng nghiệp vụ của quản trị viên 12
Bảng 2.2 Bảng chức năng nghiệp vụ của người dùng 12
Bảng 2.3 Bảng yêu cầu phi chức năng 13
Bảng 3.1 Danh sách tác nhân và chức năng 14
Bảng 3.2 Tác nhân và vai trò của tác nhân 15
Bảng 3.3 Mô tả chức năng 16
Bảng 3.4 Mô tả use case Đăng nhập 24
Bảng 3.5 Mô tả use case Đăng ký 24
Bảng 3.6 Mô tả use case Xem chi tiết sản phẩm 25
Bảng 3.7 Mô tả use case Xem danh sách sản phẩm 25
Bảng 3.8 Mô tả use case Xem thông tin cá nhân 26
Bảng 3.9 Mô tả use case Sửa thông tin cá nhân 26
Bảng 3.10 Mô tả use case Xem sản phẩm ở giỏ hàng 26
Bảng 3.11 Mô tả use case Xóa sản phẩm ở giỏ hàng 27
Bảng 3.12 Mô tả use case Thêm sản phẩm vào giỏ hàng 27
Bảng 3.13 Mô tả use case Chỉnh sửa số lượng sản phẩm trong giỏ hàng 27
Bảng 3.14 Mô tả use case Chỉnh sửa ảnh đại diện 28
Bảng 3.15 Mô tả use case Đổi mật khẩu 28
Bảng 3.16 Mô tả use case Xem danh sách hóa đơn 29
Bảng 3.17 Mô tả use case Tra cứu sản phẩm 29
Bảng 3.18 Mô tả use case Thanh toán khi nhận hàng 29
Bảng 3.19 Mô tả use case Thanh toán online 30
Bảng 3.20 Mô tả use case Đăng xuất 30
Bảng 3.21 Mô tả use case Xem danh sách loại sản phẩm 31
Bảng 3.22 Mô tả use case Thêm loại sản phẩm 31
Bảng 3.23 Mô tả use case Chỉnh sửa loại sản phẩm 31
Bảng 3.24 Mô tả use case Thêm sản phẩm 32
Bảng 3.25 Mô tả use case Khóa/mở khóa sản phẩm 32
Bảng 3.26 Mô tả use case Cấp quyền admin cho tài khoản 33
Bảng 3.27 Mô tả use case Chỉnh sửa sản phẩm 33
Bảng 3.28 Mô tả use case Xem wishlist 33
Bảng 3.29 Mô tả use case Chỉnh sửa giá mong đợi trong wishlist 34
Bảng 3.30 Mô tả use case Xem bảng thống kê doanh số bán hàng 34
Bảng 3.31 Mô tả use case Xem đơn đặt hàng 35
Bảng 3.32 Mô tả use case Xem chi tiết đơn đặt hàng 35
Bảng 4.1 Chi tiết bảng Sản phẩm 43
Bảng 4.2 Chi tiết bảng Loại sản phẩm 44
Bảng 4.3 Chi tiết bảng chi tiết giỏ hàng 44
Bảng 4.4 Chi tiết bảng Giỏ hàng 44
Bảng 4.5 Chi tiết bảng Người dùng 45
Bảng 4.6 Chi tiết bảng Loại người dùng 45
Bảng 4.7 Chi tiết bảng Hóa đơn 46
Bảng 4.8 Chi tiết bảng Chi tiết hóa đơn 46
Bảng 4.9 Chi tiết bảng Wishlist 46
Bảng 4.10 Tầm ảnh hưởng ràng buộc khoá chính loại người dùng 47
Bảng 4.11 Tầm ảnh hưởng ràng buộc khoá chính người dùng 48
Bảng 4.12 Tầm ảnh hưởng ràng buộc khoá chính hóa đơn 48
Bảng 4.13 Tầm ảnh hưởng ràng buộc khoá chính chi tiết hóa đơn 48
Bảng 4.14 Tầm ảnh hưởng ràng buộc khoá chính giỏ hàng 49
Trang 10Bảng 4.15 Tầm ảnh hưởng ràng buộc khoá chính chi tiêt giỏ hàng 49
Bảng 4.16 Tầm ảnh hương ràng buộc khoá chính sản phẩm 49
Bảng 4.17 Tầm ảnh hưởng ràng buộc khoá chính loại sản phẩm 50
Bảng 4.18 Tầm ảnh hưởng ràng buộc khoá chính wishlist 50
Bảng 4.19 Tầm ảnh hưởng ràng buộc khóa ngoại hóa đơn 50
Bảng 4.20 Tầm ảnh hưởng ràng buộc khóa ngoại chi tiết hóa đơn 51
Bảng 4.21 Tầm ảnh hưởng ràng buộc khóa ngoại bảng người dùng 51
Bảng 4.22 Tầm ảnh hưởng ràng buộc khóa ngoại bảng giỏ hàng 52
Bảng 4.23 Tầm ảnh hưởng ràng buộc khóa ngoại bảng chi tiết giỏ hàng 52
Bảng 4.24 Tầm ảnh hưởng ràng buộc khóa ngoại bảng sản phẩm 53
Bảng 4.25 Tầm ảnh hưởng ràng buộc khóa ngoại chi tiết hóa đơn 53
Bảng 4.26 Tầm ảnh hưởng ràng buộc miền giá trị bảng chi tiết giỏ hàng 53
Bảng 4.27 Tầm ảnh hưởng ràng buộc miền giá trị bảng chi tiết hóa đơn 54
Bảng 4.28 Tầm ảnh hưởng ràng buộc miền giá trị bảng wishlist 54
Bảng 4.29 Bảng các đối tượng màn hình chính 56
Bảng 4.30 Bảng các đối tượng màn hình xem, sửa loại sản phẩm 58
Bảng 4.31 Bảng các đối tượng màn hình xem thông tin, sửa quyền người dùng 60
Bảng 4.32 Bảng các đối tượng màn hình xem sản phẩm 61
Bảng 4.33 Bảng các đối tượng màn hình thêm sản phẩm 64
Bảng 4.34 Bảng các đối tượng màn hình thêm loại sản phẩm 65
Bảng 4.35 Bảng các đối tượng màn hình sửa thông tin sản phẩm 67
Bảng 4.36 Bảng các đối tượng màn hình đăng nhập 69
Bảng 4.37 Bảng các đối tượng màn hình đăng ký 70
Bảng 4.38 Bảng các đối tượng màn hình xem chi tiết sản phẩm 71
Bảng 4.39 Bảng các đối tượng màn hình giỏ hàng 73
Bảng 4.40 Bảng các đối tượng màn hình xem hóa đơn mua hàng 75
Bảng 4.41 Bảng các đối tượng màn hình lịch sử chi tiết mua hàng 76
Bảng 4.42 Bảng các đối tượng màn hình thông tin cá nhân 77
Bảng 4.43 Bảng các đối tượng màn hình wishlist 79
Bảng 4.44 Bảng các đối tượng màn hình xem đơn đặt hàng của Admin 81
Bảng 4.45 Bảng các đối tượng màn hình xem chi tiết đơn đặt hàng của Admin 83
Bảng 5.1 Một số Test Case tiêu biểu nhóm đã kiểm thử 84
Trang 11DANH MỤC HÌNH ẢNH
Hình 1.1 Kiến trúc Angular 1
Hình 1.2 Mô tả các thành phần thuộc tính của Module 3
Hình 1.3 Module gốc của ứng dụng 4
Hình 1.4 Module Auth ứng dụng 4
Hình 1.5 Ví dụ start ứng dụng 6
Hình 1.6 Ví dụ Externalized Configuration 6
Hình 1.7 Ví dụ về profiles 6
Hình 1.8 Cấu trúc Microservices nhóm sử dụng trong project 9
Hình 1.9 File cấu hình hibernate 10
Hình 3.1 Use case chung của hệ thống 20
Hình 3.2 Use case Quản lý sản phẩm 20
Hình 3.3 Use case Quản lý loại sản phẩm 21
Hình 3.4 Use case Quản lý tài khoản 21
Hình 3.5 Use case Quản lý trang cá nhân 22
Hình 3.6 Use case Thanh toán 22
Hình 3.7 Use case Quản lý giỏ hàng 23
Hình 3.8 Use case Quản lý wishlist 23
Hình 4.1 Lược đồ lớp 36
Hình 4.2 Sequence diagram cho use case Đăng nhập 36
Hình 4.3 Sequence diagram cho use case Đăng ký 37
Hình 4.4 Sequence diagram cho use case Thêm sản phẩm vào giỏ hàng 37
Hình 4.5 Sequence diagram cho use case Xóa sản phẩm trong giỏ hàng 37
Hình 4.6 Sequence diagram cho use case Chỉnh sửa sản phẩm trong giỏ hàng 38
Hình 4.7 Sequence diagram cho use case Chỉnh sửa thông tin cá nhân 38
Hình 4.8 Sequence diagram cho use case Thêm loại sản phẩm 39
Hình 4.9 Sequence diagram cho use case Chỉnh sửa loại sản phẩm 39
Hình 4.10 Sequence diagram cho use case Xóa sản phẩm 39
Hình 4.11 Sequence diagram cho use case Thêm sản phẩm 40
Hình 4.12 Sequence diagram cho use case Tra cứu sản phẩm 40
Hình 4.13 Sequence diagram cho use case Thanh toán online 40
Hình 4.14 Sequence diagram cho use case Xem chi tiết bill 41
Hình 4.15 Sequence diagram cho use case Xem danh sách order 41
Hình 4.16 Sequence diagram cho use case Xem thống kê 41
Hình 4.17 Sequence diagram cho use case Thêm vào danh sách wishlist 42
Hình 4.18 Sequence diagram cho use case Xóa wishlist 42
Hình 4.19 Lược đồ logic 43
Hình 4.20 Sơ đồ quan hệ 47
Hình 4.21 Hình danh sách màn hình và sơ đồ biến đổi 55
Hình 4.22 Màn hình chính 56
Hình 4.23 Sơ đồ biến cố màn hình chính 57
Hình 4.24 Màn hình xem, sửa loại sản phẩm 57
Hình 4.25 Sơ đồ biến cố màn hình xem, sửa loại sản phẩm 59
Hình 4.26 Màn hình xem thông tin, sửa quyền người dùng 59
Hình 4.27 Sơ đồ biến cố màn hình xem thông tin, sửa quyền người dùng 61
Hình 4.28 Màn hình xem sản phẩm 61
Hình 4.29 Sơ đồ biến cố màn hình xem sản phẩm 63
Hình 4.30 Màn hình thêm sản phẩm 63
Hình 4.31 Sơ đồ biến cố màn hình thêm sản phẩm 65
Hình 4.32 Màn hình thêm loại sản phẩm 65
Trang 12Hình 4.33 Sơ đồ biến cố màn hình thêm loại sản phẩm 66
Hình 4.34 Màn hình sửa thông tin sản phẩm 67
Hình 4.35 Sơ đồ biến cố màn hình sửa thông tin sản phẩm 68
Hình 4.36 Màn hình đăng nhập 68
Hình 4.37 Sơ đồ biến cố màn hình đăng nhập 69
Hình 4.38 Màn hình đăng ký 70
Hình 4.39 Sơ đồ biến cố màn hình đăng ký 70
Hình 4.40 Màn hình xem chi tiết sản phẩm 71
Hình 4.41 Sơ đồ biến cố màn hình xem chi tiết sản phẩm 72
Hình 4.42 Màn hình giỏ hàng 72
Hình 4.43 Sơ đồ biến cố màn hình giỏ hàng 74
Hình 4.44 Màn hình xem hóa đơn mua hàng 74
Hình 4.45 Sơ đồ biến cố màn hình thêm hóa đơn mua hàng 75
Hình 4.46 Màn hình lịch sử chi tiết hóa đơn mua hàng 76
Hình 4.47 Sơ đồ biến cố màn hình lịch sử hóa chi tiết hóa đơn mua hàng 77
Hình 4.48 Màn hình thông tin cá nhân 77
Hình 4.49 Sơ đồ biến cố màn hình thông tin cá nhân 78
Hình 4.50 Màn hình wishlist 79
Hình 4.51 Sơ đồ biến cố màn hình wishlist 80
Hình 4.52 Màn hình xem đơn đặt hàng của Admin 80
Hình 4.53 Sơ đồ biến cố màn hình xem đơn đặt hàng của Admin 82
Hình 4.54 Màn hình xem chi tiết đơn đặt hàng của Admin 82
Hình 4.55 Sơ đồ biến cố màn hình xem chi tiết đơn đặt hàng của Admin 83
Trang 13MỞ ĐẦU
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Cuộc cách mạng khoa học kỹ thuật đã và đang đem lại những chuyển biến mạnh mẽ trên toàn thế giới Với sự phát triển nhanh như vũ bão Việc áp dụng công nghệ thông tin trong hoạt động kinh tế đem lại những lợi ích to lớn cho toàn xã hội Cùng với sự phát triển của công nghệ thông tin thì Thương mại điện tử cũng đã trở thành lĩnh vực hoạt động kinh tế không còn xa lạ với nhiều quốc gia trên toàn thế giới Con người đã tiết kiệm thời gian, công sức, tiền bạc trong việc mua sắm và các giao dịch kinh tế so với trước kia Việc áp dụng thương mại điện tử trong hoạt động kinh doanh là một xu thế tất yếu của thời đại Và Việt Nam – một đất nước đang phát triển và trong quá trình hội nhập không nằm ngoài xu hướng phát triển đó Tuy đây là một vấn đề con khá mới
mẻ nhưng nó đã thu hút được sự quan tâm của các doanh nghiệp trong nước muốn tìm hiểu và áp dụng từ lợi ích to lớn mà nó mang lại Cơ hội có, khó khăn đối với doanh nghiệp cũng có nhưng thương mại điện tử thực sự là một cuộc cách mang trong phương thức bán hang mà nếu biết cách áp dụng thì doanh nghiệp sẽ thành công ngoài
mong đợi trong việc đưa sản phẩm đến tay người tiêu dùng
Trong những năm gần đây, khi kinh tế Việt Nam đang hội nhập vào nền kinh tế thế giới với một sự phát triển tương đối ổn định Thu nhập trung bình của người dân Việt Nam đang dần đuợc cải thiện Với những điều kiện thuận lợi như vậy thì nhu cầu trong tiêu dùng của người dân đang ngày càng tăng, những đòi hỏi về hình thức phục vụ, sự tiện lợi trong mua bán cũng như thanh toán cũng được người dân Việt Nam chú ý đến
Đi cùng xu thế đó, bán hàng qua mạng là một giải pháp hoàn toàn phù hợp với những đòi hỏi mới của người tiêu dùng.Với những thế mạnh của mình, bán hàng qua mạng đã trở thành một hình thức bán hàng phổ biến trên thế giới Trong khoảng hai đến ba năm trở lại đây, bán hàng qua mạng ở Việt Nam đã
có những sự phát triển vượt bậc, thể hiện ở chất lượng bán hàng được cải thiện, sự quan tâm đến hình thức mua bán này của người tiêu dùng ngày càng
một lớn hơn
Hiện nay ngành thương mại điện tử Việt Nam đang có mức tăng trưởng vào khoảng 25% và lượng doanh nghiệp đầu tư và lĩnh vực này ngày càng nhiều Hàng loạt website thương mại điện tử được mọc ra càng nhiều Gần đây, trong một báo cáo
Trang 14nghiên cứu của CBRE Việt Nam, được thực hiện thông qua ghi nhận ý kiến khoảng 1.000 người tại TP.HCM và Hà Nội, cho thấy: 25% số khách hàng được khảo sát dự định sẽ giảm tần suất mua sắm tại cửa hàng thực tế, trong khi 45 - 50% số người được hỏi cho rằng họ sẽ mua sắm trực tuyến thường xuyên hơn trong tương lai Theo thống
kê có được từ 55% chủ shop bán hàng online tham gia đánh giá, thì website xếp trên facebook chiếm 51% và các sàn thương mại điện tử chiếm 20% Website và Facebook
là 2 kênh bán hàng chính của các shop online Nhận thực được tiềm năng phát triển đó nhóm đã mạnh dạn chọn việc xây dựng website bán hàng trực tuyến
2 MỤC TIÊU CỦA ĐỀ TÀI
Tìm hiểu về Microservices, Angular, RESTful APIs
Phân tích, thiết kế và xây dựng hệ thống website tin tức trực tuyến với một số chức
năng và công việc cơ bản như sau:
- Nhóm chức năng quản trị hệ thống website:
Quản lý mặt hàng: Chức năng cho phép thêm mới, chỉnh sửa các thuộc tính cũng như giá trị và xóa mặt hàng
Quản lý loại mặt hàng: Chức năng cho phép thêm mới, chỉnh sửa các thuộc tính cũng như giá trị và xóa loại mặt hàng
Quản lý tài khoản: Chức năng cho phép quản trị có thể cập nhật các quyền cũng như tài khoản cho người dùng
- Nhóm chức năng dành cho người dùng:
Tìm kiếm mặt hàng: Với chức năng này người dùng có thể tìm kiếm mặc hàng theo các tiêu chí như: theo loại, tên lưu ý tất cả gồm tìm kiếm gần đúng hoặc chỉnh xác
Xem chi tiết mặt hàng: Với chức năng này người dùng có thể xem chi tiết của từng loại mặc hàng
Xem lịch sử mua hàng: Với chức năng này người dùng có thể xem lịch sử mua hàng của mình
Quản lý tài khoản: Người dùng có thể đăng nhập, đăng ký, cập nhật thông tin tài khoản cá nhân của mình Lưu ý để sử dụng được chức năng đặt hàng, người dùng phải có tài khoản trước đó
Trang 153 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU
3.1 Đối tượng nghiên cứu:
Tất cả mọi người sử dụng internet
3.2 Phạm vi nghiên cứu:
Tìm hiểu hình thức thanh toán mua hàng
Tìm hiểu các công nghệ được sử dụng trong đề tài: Spring Microservices, Angular 5 Tìm hiểu về UI/UX và cách để người dùng sử dụng ứng dụng một cách dễ dàng thoải mái và thuận tiện nhất khi sử dụng
Tìm hiểu và xây dựng website bán hàng phù hợp với mọi đối tượng người dùng
3.3 Phướng pháp nghiên cứu:
Phương pháp tổng hợp lý thuyết: Nghiên cứu và tìm hiểu các tài liệu, ứng dụng liên quan đến các công nghệ đang tìm hiểu
Phương pháp chuyên gia: Tham khảo ý kiến của Thầy hướng dẫn cùng các anh, chị
và bạn bè có kinh nghiệm liên quan đến các vấn đề của tiểu luận để tạo tính chính xác
và khoa học của đề tài
Phương pháp mô hình hóa: Mô phỏng website từ bước thiết kế cài đặt cho đến kết quả thành phẩm của website
4 PHÂN TÍCH CÁC HỆ THỐNG WEBSITE CÓ LIÊN QUAN
Đa số các website bán hàng đều trưng bày sản phẩm theo danh mục sản phẩm, khách hàng dễ dàng tìm kiếm sản phẩm, đều có hình thức thanh toán online và đặt hàng
Tuy nhiên một số ứng dụng vẫn có các nhược điểm mà nhóm em đã tổng hợp được:
Một số ứng dụng có giao diện chưa thu hút người dùng
Một số ứng dụng có UI đẹp, nhưng UX hơi tệ
Một số ứng dụng không có phần mô tả giới thiệu về sản phẩm
5 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC
Xây dựng website bán hàng đơn giản dể dàng tìm kiếm, xem thông tin sản phẩm và hình thức thanh toán dễ dàng tiện lợi
Trang 166 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN
Đề tài hướng đến khả năng tiếp thu, nâng cao kỹ năng lập trình, nghiên cứu công nghệ mới và trên hết là đáp ứng nhu cầu của người mua hàng và tính thương mại của doanh nghiệp trên internet
Trang 17PHẦN NỘI DUNG CHƯƠNG 1 CÁC CÔNG NGHỆ SỬ DỤNG
1.1 TỔNG QUAN VỀ ANGULAR
1.1.1 Giới thiệu Angular
Angular là một Framwork mạnh mẽ được phát triển bởi Google Nó được sử dụng
để xây dựng các ứng dụng tương tác với người dùng thông qua giao diện Web Angular cho cung cấp cho lập trình viên nền tảng công nghệ hiện đại và cho phép tích hợp với hàng loạt các nền tảng công nghệ lập trình hiện đại như Net, Java, Php …Với đặc trưng mạnh mẽ của các phiên bản trước kia như Angular 1.x, từ phiên bản Angular 2 (Hiện nay là phiên bản Angular 5) trở đi , nền tảng công nghệ có sự thay đổi lớn, ở đây ngôn ngữ lập trình được thực hiện đó là TypeScript (Ngôn ngữ lập trình hiện đại và hướng đối tượng), và framework này cũng phân chia việc phát triển ứng dụng thành nhiều các module riêng biệt, điều này giúp cho lập trình viên có thể tiếp cận theo cách hướng mô hình một cách dễ dàng hơn.Ngoài ra theo hướng tiếp cận này giúp cho lập trình viên phát triển và nâng cấp ứng dụng dễ dàng và đỡ tốn kém hơn
Trang 18được viết bằng ngôn ngữ Typescript nhằm thực hiện gắn kết (Tương tác) giữa giao diện ứng dụng và các dịch vụ (service ) ở phía Server.
Trong hình vẽ trên thì các component trực thuộc Module Và nó được nạp vào ứng dụng là nhờ Module Component sử dụng Dịch vụ (Service) để lấy dữ liệu hoặc thao tác với dữ liệu và hiển thị chúng thông qua các đoạn mã chương trình được viết bằng TypeScript Component có thể sử dụng các đối tượng là thể hiện của dịch vụ thông qua cơ chế Dependency Injection (Thể hiện của Dependency Injecttion - DI là rất dễ hiểu, lập trình viên bchỉ cần khai báo đối tượng thông qua hàm khởi tạo của lớp)
Dữ liệu có thể được hiển thị tương ứng với các file html trong component Angular cung cấp cơ chế gắn kết dữ dữ liệu với giao diện (template) của component cơ chế đó được gọi là databinding
Thông qua cơ chế Databinding, bất kỳ thay đổi dữ liệu trong Angular, thì giao điện tương tác sẽ tự động cập nhật các thay đổi dữ liệu đó Tương tác về sự thay đổi dữ liệu trong Angular với phía giao diện có thể theo hướng 1 chiều hoặc 2 chiều
1.1.3 Các thành phần của Angular 5
1.1.3.1 Giới thiệu Module:
Angular 5 chia sự phát triển ứng dụng thành các Module khác nhau Tất cả các ứng dụng của Angular đều có 1 module gốc, module gốc được gọi là AppModule và có ít nhất một lớp NgModule
Tùy theo quy mô của ứng dụng, với ứng dụng nhỏ chỉ cần một module là đủ Tuy nhiên với các ứng dụng lớn có thể có chứa rất nhiều các Module khác nhau Trong một Module có thể chứa nhiều các Module con khác Các module con được gọi là các SubModule
Mỗi Module có chứa @ngModule Với các đặc trưng có chứa Metadata nhằm để định nghĩa các thuộc tính được sử dụng như sau:
Declarations: Khai báo các lớp View (Bao gồm Component, directive và Pipe nhằm thực hiện hiển thị thông tin do vậy người ta gọi là các lớp hiển thị (View class)
Exports: Khi chúng ta sử dụng các Component tại Module, chúng ta muốn các Component này được sử dụng tiếp ở các Module khác thì chúng ta sẽ khai báo các Component này tại mảng đối tượng trực thuộc từ khóa Export này
Trang 19 Imports: Chúng tả muốn sử dụng các Module khác trong module này, thì chúng
ta phải khai báo chúng tại mảng đối tượng trực thuộc từ khóa Imports
Providers : Khai báo các service được sử dụng trong module
Hình sau mô tả các thành phần của Module:
Hình 1.2 Mô tả các thành phần thuộc tính của Module
1.1.3.2 Cách phân chia ứng dụng theo Module:
Khi xây dựng ứng dụng với quy mô từ trung bình trở lên, người ta thường hay sử dụng ngôn ngữ mô hình hóa ví dụ như UML để thực hình mô hình hóa hệ thống phần mềm Trong ngôn ngữ UML có nhiều các biểu đồ khác nhau Để mô hình hóa chức năng của hệ thống, các kỹ sư sẽ sử dụng biểu đồ Usecase để mô hình hóa 1 chức năng hoặc một nhóm chức năng của phần mềm, Khi muốn gom nhóm các chức năng lại với nhau thì người ta sẽ sử dụng biểu đồ biểu đồ thành phần (Component Diagram – Chứa nhiều biểu đồ Usecase)
Vởi các ứng dụng được viết bằng Angular 5 chúng ta có thể ánh xạ biểu đồ thành phần sang thành các Module ứng dụng Với các SubModule tương ứng với các biểu
đồ Usecase trực thuộc biểu đồ thành phần
Ví dụ ta xây dựng 1 chương trình quản lý nhân sự, chương trình này bao gồm có chứa ít nhất 2 biểu đồ thành phần (1 biểu đố Authortication – Dùng để kiểm tra truy cập hệ thống và 1 biểu đồ thành phần sử dụng để Quản lý nhân sự - Hrm) Tương ứng sang Angular 5 ta cũng sẽ có 3 modules đó là : Application Module (Đóng vai trò là RootModule) và 2 module thành phần bao gồm AuthorModule và HrmModule
Hình dưới đây mô tả Module gốc của ứng dụng:
Trang 21Component… Đó chính là các thành phần tương ứng với các Usecase như Login Usecase, Forgot Password Usecase
1.2 TỔNG QUAN VỀ SPRING BOOT
1.2.1 Giới thiệu Spring Boot
Mặc dù Spring là một Framework tuyệt vời để phát triển phần mềm nhưng nó vẫn tồn tại một số nhược điểm / hạn chế (Quá nhiều cấu hình…) Spring Boot được xây dựng để khắc phục những nhược điểm đó, đồng thời cũng cung cấp một hướng phát triển phần mềm mới trong tương lai
Spring Boot là một dự án nổi bật trong hệ sinh thái Spring Framework Spring Boot được dùng để tạo các ứng dụng độc lập dựa trên Spring Nếu như trước đây, công đoạn khởi tạo một dự án Spring khá vất vả từ việc khai báo các dependency trong file pom.xml cho đến cấu hình bằng XML hoặc annotation phức tạp, thì giờ đây với Spring Boot, chúng ta có thể tạo các ứng dụng Spring một cách nhanh chóng và cấu hình cũng đơn giản hơn Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng suất cho developer
Dưới đây là một số tính năng nổi bật của Spring Boot:
Có các tính năng của Spring Framework
Tạo ứng dụng độc lập, có thể chạy bằng java -jar (cho cả java web)
Nhúng trực tiếp các ứng dụng server (Tomcat, Jetty…) do đó không cần phải triển khai file WAR
Cấu hình ít, tự động cậu hình bất kì khi nào có thể (Giảm thời gian viết code, tăng năng suất)
Không yêu cầu XML config
Cung cấp nhiều plugin
Chuẩn cho Microservices (Cloud support; giảm việc setup, config; các thư viện hỗ trợ…)
Hiện tại, Spring Boot có 2 version chính là: v1.5.16, v2.0.5
1.2.2 Các tính năng, đặc điểm của String Boot
1.2.2.1 String Application:
SpringApplication là một class cung cấp cách thuận tiện để khởi chạy ứng dụng từ hàm main() Để start ứng dụng, chỉ cần gọi method run()
Ví dụ:
Trang 22Hình 1.5 Ví dụ start ứng dụng
1.2.2.2 Externalized Configuration:
Spring Boot cho phép chúng ta cấu hình từ bên ngoài (externalize), do đó một ứng dụng có thể chạy trên nhiều môi trường khác nhau
Chúng ta có thể sử dụng file YAML, file properties, các biến môi trường và tham
số command-line để thực hiện externalize configuration
Các thuộc tính cấu hình có thể inject trực tiếp vào bean bằng cách sử dụng
annotation @Value hoặc thông qua object với @ConfigurationProperites…
@Profile để giới hạn khi nào được tải lên
Ví dụ chỉ tải trong môi trường product…
Hình 1.7 Ví dụ về profiles
Trang 231.2.2.4 Loggin:
Spring Boot sử dụng common logging cho tất cả các chức năng log nội bộ Các depencdeny logging được quản lý mặc định, chúng ta không nên / cần sửa dependency logging nếu khồng có yêu cầu tùy biến (customization) thực sự cần
1.3 TỔNG QUAN VỀ MICROSERVICES
1.3.1 Giới thiệu về Microservices
Thời gian gần đây microservice cũng đang dần trở thành một từ khóa hot Micro là rất nhỏ, service là dịch vụ, vậy microservice nghĩa là… dịch vụ vô cùng nhỏ Nói đơn
giản, microservice là một kiếu kiến trúc phần mềm Các module trong phần mềm này được chia thành các service rất nhỏ (microservice)
1.3.2 Ưu điểm của Microservices
Thứ nhất, giúp đơn giản hóa hệ thống Với tổng số chức năng không đổi, kiến trúc Microservices chia nhỏ hệ thống ra làm nhiều dịch vụ nhỏ lẽ dể dàng quản lý và triển khai từng phần so với kiến trúc nguyên khối Mỗi dịch vụ thì được định nghĩa để giao tiếp với các dịch vụ khác thông qua RPC (Remote Procedure Call) hay message-driven API Kiến trúc Microservices thúc đẩy việc phân tách rạch ròi các dịch vụ nhỏ, việc khó có thể làm nếu xây dựng ứng dụng bằng kiến trúc một khối Trên hết với mỗi dịch
vụ nhỏ, chúng ta sẽ có thời gian phát triển nhanh hơn, dễ nắm bắt cũng như bảo trì hơn
Thứ hai, kiến trúc này cho phép việc mỗi dịch vụ được phát triển độc lập bởi những team khác nhau Cũng như cho phép developer có thể tự do chọn lựa technology stack cho mỗi dịch vụ mình phát triển Dĩ nhiên tự do lựa chọn nhưng không phải là tạo ra một mớ hỗn độn về technology, điều này thì chằng có một dự án hay sản phẩm nào mong muốn cả Tuy nhiên, sự tự do này có nghĩa là các developer không còn phải bắt buộc phải sử dụng các công nghệ lỗi thời có thể đã tồn tại vào lúc bắt đầu dự án Khi viết một dịch vụ mới, họ có tùy chọn của việc sử dụng công nghệ bắt kịp với xu thế Hơn nữa, vì dịch vụ là tương đối nhỏ, việc viết lại một dịch vụ cũ dựa trên nền tảng công nghệ mới hơn là hoàn toàn khả thi
Thứ ba, kiến trúc Microservices cho phép mỗi dịch vụ có thể được triển khai một cách độc lập Cùng với đó thì việc triển khai hệ thống theo kiểu continuous deployment là hoàn toàn có thể
Trang 24Cuối cùng, kiến trúc Microservices cho phép mỗi dịch vụ có thể thực hiện việc scale một cách độc lập Bạn có thể scale dễ dàng bằng cách tăng số instance phục vụ cho mỗi dịch vụ lên và phân tải bằng load balancer Ngoài ra bạn cũng có thể tối ưu chi phí vận hành dịch vụ bằng cách triển khai mỗi dịch vụ lên server có resource thích hơp
1.3.3 Nhược điểm của Microservices
Nhược điểm đầu tiên của Microservices cũng chính từ tên gọi của nó Microservice nhấn mạnh kích thước nhỏ gọn của dịch vụ Một số lập trình đề xuất dịch vụ siêu nhỏ
cỡ dưới 100 dòng code Nhưng làm sao để chia nhỏ, và chia làm sao để khi chia quá nhiều sẽ dẫn đến manh mún, vụn vặt, khó kiểm soát
Thứ hai của Microservices đến từ đặc điểm hệ thống phân tán (distributed system) Lập trình viên cần phải lựa chọn phát triển mỗi dịch vụ nhỏ giao tiếp với các dịch vụ khác bằng cách nào messaging hay là RPC Hơn thế nữa, họ phải xử lý sự cố khi kết nối chậm, lỗi khi thông điệp không gửi được hoặc thông điệp gửi đến nhiều đích đến vào các thời điểm khác nhau
Thứ ba, phải đảm bảo giao dịch phân tán (distributed transaction) cập nhật dữ liệu đúng đắn (all or none) vào nhiều dịch vụ nhỏ khác nhau khó hơn rất nhiều, đôi khi là không thể so với đảm bảo giao dịch cập nhật vào nhiều bảng trong một cơ sở dữ liệu trung tâm Theo nguyên tắc CAP (CAP theorem) thì giao dịch phân tán sẽ không thể thỏa mãn cả 3 điều kiện: consistency (dữ liệu ở điểm khác nhau trong mạng phải giống nhau), availablity (yêu cầu gửi đi phải có phúc đáp), partition tolerance (hệ thống vẫn hoạt động được ngay cả khi mạng bị lỗi) Những công nghệ cơ sở dữ liệu phi quan hệ (NoSQL) hay môi giới thông điệp (message broker) tốt nhất hiện nay cũng chưa vượt qua nguyên tắc CAP
Thứ tư, testing một dịch vụ trong kiến trúc microservices đôi khi yêu cầu phải chạy
cả các dịch vụ nhỏ khác mà nó phụ thuộc Do đó khi phân rã ứng dụng một khối thành microservices cần luôn kiểm tra mức độ ràng buộc giữa các dịch vụ Nếu các dịch vụ nhỏ thiết kế phục thuộc vào nhau theo chuỗi A gọi B, B gọi C, C gọi D Nếu một mắt xích có giao tiếp API thay đổi, liệu các mắt xích khác có phải thay đổi theo không? Nếu có thì việc bảo trì, kiểm thử sẽ phức tạp tương tự ứng dụng một khối Thiết kế dịch vụ tốt sẽ giảm tối đa ảnh hưởng lan truyền đến các dịch vụ khác
Trang 25Cuối cùng, triển khai dịch vụ microservices nếu làm thủ công theo cách đã làm với ứng dụng một khối phức tạp hơn rất nhiều Ứng dụng một khối bổ sung các server mới giống hệt nhau đằng sau load balancer Trong khi ở kiến trúc microservices, các dịch
vụ nhỏ nằm trên nhiều máy ảo hay Docker container khác nhau, hoặc một dịch vụ có nhiều thực thể phân tán ra nhiều Theo Adrian Crockcroft, Hailo có 160 dịch vụ, NetFlix có hơn 600 dịch vụ Với cloud, các máy ảo, docker container có thể linh động bật tắt, dịch chuyển Vậy cần thiết phải có một cơ chế phát hiện dịch vụ (service discovery mechanism) để cập nhật tự động địa chỉ IP và cổng, mô tả, phiên bản của mỗi dịch vụ
1.3.4 Cấu trúc Microservices nhóm sử dụng trong project
Hình 1.8 Cấu trúc Microservices nhóm sử dụng trong project
1.4 HIBERNATE
Hibernate là một thư viện ORM (Object Relational Mapping) mã nguồn mở giúp lập trình viên viết ứng dụng Java có thể map các objects (pojo) với hệ quản trị cơ sở dữ liệu quan hệ, và hỗ trợ thực hiện các khái niệm lập trình hướng đối tượng với cớ dữ liệu
quan hệ
Chính là các POJO object map với các table tương ứng của cơ sở dữ liệu quan hệ
Nó như là những "thùng xe" chứa dữ liệu từ ứng dụng để ghi xuống database, hay chứa
dữ liệu tải lên ứng dụng từ database Session Factory Là một interface giúp tạo ra session kết nối đến database bằng cách đọc các cấu hình trong Hibernate configuration Mỗi một database phải có một session factory Ví dụ nếu ta sử dụng MySQL, và Oracle cho ứng dụng Java của mình thì ta cần có một session factory cho MySQL, và một
session factory cho Oracle File cấu hình hibernate.cfg.xml có như sau:
Trang 26Hình 1.9 File cấu hình hibernate
Hibernate Session Mỗi một đối tượng session được Session factory tạo ra sẽ tạo một kết nối đến database Transation Là transaction đảm bảo tính toàn vẹn của phiên làm việc với cớ sở dữ liệu Tức là nếu có một lỗi xảy ra trong transaction thì tất cả các tác vụ thực hiện sẽ thất bại QueryHibernate cung cấp các câu chuy vấn HQL (Hibernate Query Language) tới database và map kết quả trả về với đối tượng tương
ứng của ứng dụng Java
Trang 27CHƯƠNG 2 KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU
2.1 PHÂN TÍCH HIỆN TRẠNG
Hiện nay, các doanh nghiệp lớn đều muốn có riêng một Hệ thống Website để quản
lý sản phẩm, đồng thời có thể thực hiện các giao dịch mua bán Online nhằm tăng năng suất bán hàng Sau đây là mô tả chi tiết các công việc mà Hệ thống Website bán hàng
trực tuyến cần có để đáp ứng nhu cầu của các doanh nghiệp:
Lưu trữ được thông tin chi tiết của sản phẩm, thành viên, và các giao dịch mà
thành viên đã thực hiện trên hệ thống
Cho phép khách hàng xem danh sách sản phẩm, tra cứu sản phẩm theo loại,
theo tên
Khách hàng có thể chọn và chỉ định số lượng của sản phẩm mà họ có nhu cầu
mua
Cho phép khách hàng chọn phương thức thanh toán khi mua sản phẩm:
Đặt hàng (thanh toán tại nhà)
Thanh toán Online (thông qua cổng thanh toán trực tiếp Paypal)
Khách hàng có thể xem lại tất cả các giao dịch của bản thân
Với “Hệ thống Website bán hàng trực tuyến” mà nhóm em xây dựng, khách hàng
có thể dễ dàng tìm thấy sản phầm mà mình mong muốn, đồng thời mua sắm một cách nhanh chóng Từ đó có thể giúp các doanh nghiệp giải quyết các nổi lo về việc phổ
biến sản phẩm, nâng cao năng suất tiêu thụ
2.2 PHÂN TÍCH YÊU CẦU
2.2.1 Yêu cầu chức năng
- Lưu trữ: các thông tin về
Thông tin chi tiết mặt hàng: mã mặt hàng, tên mặt hàng, mã loại mặt hàng,
Thông tin loại mặt hàng: mã loại mặt hàng, tên loại mặt hàng, giá cả, size, hình ảnh thuộc danh mục, số lượng…
Thông tin tài khoản: tên đăng nhập, mật khẩu, quyền/nhóm quyền, tên tài khoản, hình ảnh, địa chỉ, email, …
- Tìm kiếm/ tra cứu:
Tìm kiếm mặt hàng
Tìm kiếm loại mặt hàng
- Thống kê:
Trang 28 Thống kê doanh số bán hàng
Bộ phận(Người thực hiện): Quản trị viên hệ thống
Bảng 2.1 Bảng chức năng nghiệp vụ của quản trị viên
công việc
Quy định và công thức liên quan
Biểu mẫu liên quan
Ghi chú
1 Cấp quyền người dùng Lưu trữ
3 Chỉnh sửa mặt hàng Lưu trữ
5 Thêm loại mặt hàng Lưu trữ
6 Chỉnh sửa loại mặt hàng Lưu trữ
Bộ phận(Người thực hiện): Người dùng
Bảng 2.2 Bảng chức năng nghiệp vụ của người dùng
công việc
Quy định và công thức liên quan
Biểu mẫu liên quan
Ghi chú
1 Tìm kiếm mặt hàng Tìm kiếm
2 Xem chi tiết mặt hàng Lưu trữ
3 Xem hóa đơn mua hàng Lưu trữ
5 Chỉnh sửa thông tin cá
6 Chỉnh sửa giỏ hàng Lưu trữ
7 Chỉnh sửa wishlist Lưu trữ
Trang 292.2.2 Yêu cầu phi chức năng
Bảng 2.3 Bảng yêu cầu phi chức năng
1 Tốc độ tìm kiếm
nhanh và chính xác Hiệu quả
Tối đa 5s phải có kết quả tìm
kiếm
2
Tiết kiệm được
thời gian, thu hẹp
không gian lưu trữ,
tránh thất lạc dữ
liệu
Hiệu quả
Tiết kiệm thời gian so với quản
lý thủ công Dữ liệu được sao lưu trên máy, có thể dễ dàng
Trang 30CHƯƠNG 3 MÔ HÌNH HÓA YÊU CẦU
3.1 NHẬN DIỆN TÁC NHÂN VÀ CHỨC NĂNG TRONG SƠ ĐỒ USE CASE
Bảng 3.1 Danh sách tác nhân và chức năng
Quản trị viên
Quản lý loại sản phẩm
Quản lý sản phẩm
Quản lý tài khoản
Quản lý trang cá nhân
Xem chi tiết sản phẩm
Quản lý trang cá nhân
Quản lý giỏ hàng
Xem danh sách hóa đơn
Trang 31Bảng 3.2 Tác nhân và vai trò của tác nhân
Quản trị viên
Xem, thêm, sửa loại sản phẩm
Xem, thêm, khóa, kích hoạt sản phẩm
Xem, khóa, kích hoạt tài khoản
Xem,sửa thông tin cá nhân
Sửa ảnh đại diện
Xem danh sách hóa đơn
Thanh toán khi nhận hàng
Thanh toán online
Xem, thêm, xóa, chỉnh sửa wishlist
Xem bảng thống kê
Xem đơn đặt hàng và chi tiết đơn đặt hàng
Trang 32 Xem,sửa thông tin cá nhân
Chỉnh sửa ảnh đại diện
Đổi mật khẩu
Xem, thêm, xóa, chỉnh sửa số lượng sản phẩm ở giỏ hàng
Tra cứu sản phẩm
Xem danh sách hóa đơn
Thanh toán khi nhận hàng
Thanh toán online
Trang 334 Xem chi tiết sản phẩm
Quản trị viên, thành viên có thể xem chi tiết tên sản phẩm, giá sản phẩm, mô tả về sản phẩm, hình ảnh cụ thể của sản phẩm
5 Xem thông tin cá nhân
Quản trị viên, thành viên có thể xem thông tin hình ảnh, họ tên, địa chỉ, email, số điện
thoại, mật khẩu
6 Sửa thông tin cá nhân
Quản trị viên, thành viên có thể thay đổi thông tin họ tên, địa chỉ, email, số điện thoại
9 Thêm sản phẩm vào giỏ hàng
Khi quản trị viên, thành viên đã tìm được sản phẩm ưng ý khách hàng có thể thêm sản phẩm vào giỏ hàng bằng cách bấm nút thêm sản phẩm vào giỏ hàng để có thể mua
11 Chỉnh sửa ảnh đại diện
Quản trị viên, thành viên có thể thay đổi ảnh
đại diện của mình
Trang 3412 Đổi mật khẩu Quản trị viên, thành viên có thể thay đổi mật
khẩu tài khoản của mình
13 Xem danh sách hóa đơn Quản trị viên, thành viên có thể xem ngày
thanh toán, tổng số tiền của hóa đơn
14 Tra cứu sản phẩm
Khách, quản trị viên, thành viên có thể tra cứu sản phẩm bằng cách nhập thông tin sản
phẩm vào ô tìm kiếm
15 Thanh toán online
Quản trị viên, thành viên thanh toán bằng
paypal khi mua hàng
16 Thanh toán khi nhận hàng
Quản trị viên, thành viên thanh toán bằng tiền mặt khi nhận được hàng từ người giao
hàng
17 Xem danh sách loại sản phẩm
Quản trị viên xem thông tin tên loại sản
Trang 35sản phẩm
24 Xem danh sách tài khoản
Quản trị viên xem tên, ngày sinh, tài khoản,
số điện thoại của các tài khoản
25 Cấp quyền cho tài khoản
Quản trị viên chọn trạng thái Admin cho tài
khoản
26 Xem danh sách wislist
Quản trị viên, thành viên có thể xem danh
sách wishlist
27 Chỉnh sửa giá trong wishlist
Quản trị viên, thành viên có thể chỉnh sửa giá
mong ước trong wishlist
Trang 363.3 SƠ ĐỒ USE CASE
3.3.1 Các sơ đồ Use case
Hình 3.1 Use case chung của hệ thống
Hình 3.2 Use case Quản lý sản phẩm
uc Use Case Website ban hang truc tuyen
Quan tri v ien
Quan ly loai san pham Quan ly san pham
Quan ly tai khoan
Quan ly gio hang
Xem danh sach hoa don Dang xuat
Tra cuu san pham
uc Quan ly san pham
Quan ly san pham
Xem danh sach san pham
Ngung ban san pham Quan tri v ien
Mo ban lai san pham
Chinh sua san pham
Them san pham
Trang 37Hình 3.3 Use case Quản lý loại sản phẩm
Hình 3.4 Use case Quản lý tài khoản
uc Quan ly loai san pham
Quan ly loai san pham
Them loai san pham
Quan tri v ien
Sua loai san pham
Xem danh sach loai san pham
«extend»
«extend»
«extend»
uc Quan ly tai khoan
Quan ly tai khoan
Cap quyen admin
Bo quyen admin Quan tri v ien
Xem danh sach tai khoan
«extend»
«extend»
«extend»
Trang 38Hình 3.5 Use case Quản lý trang cá nhân
Hình 3.6 Use case Thanh toán
uc Quan ly trang ca nhan
Quan ly trang ca nhan
Sua thong tin ca nhan
Thay doi anh dai dien Quan tri v ien
Trang 39Hình 3.7 Use case Quản lý giỏ hàng
Hình 3.8 Use case Quản lý wishlist
uc Quan ly gio hang
Quan ly gio hang
Xem danh sach san pham trong gio hang
Sua chi tiet gio hang Quan tri v ien
Trang 403.3.2 Đặc tả Use case
Bảng 3.4 Mô tả use case Đăng nhập
Use Case Đăng nhập
1 Khách truy cập vào website
2 Nhập user name và password
3 Nhấn nút “Đăng Nhập” hoặc nhấn Enter
4 Nếu đăng nhập thất bại, thông báo “Nhập sai tên tài khoản hoặc mật khẩu” Khách nhập lại thông tin và đăng
nhập lại lần nữa
5 Nếu đăng nhập thành công Xuất hiện giao diện chương trình với đầy đủ chức năng của thành viên hoặc quản trị
viên
Bảng 3.5 Mô tả use case Đăng ký
Use Case Đăng ký