1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung

140 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng Hệ Thống Kinh Doanh Thiết Bị Điện Tử & Ứng Dụng Học Sâu Truy Xuất Hình Ảnh Dựa Trên Nội Dung
Tác giả Nguyễn Thành Phương
Người hướng dẫn ThS. Mai Anh Thơ
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 140
Dung lượng 13,37 MB

Cấu trúc

  • 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (26)
  • 2. MỤC ĐÍCH CỦA ĐỀ TÀI (9)
  • 3. CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU (9)
    • 3.1. Đối Tượng Nghiên Cứu (9)
    • 3.2. Phạm Vi Nghiên Cứu (9)
  • 4. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC (9)
  • 5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN (9)
  • CHƯƠNG 1. CƠ SỞ LÝ THUYẾT (29)
    • 1.1. Thiết kế hệ thống (9)
      • 1.1.1. Kiến trúc ứng dụng (9)
      • 1.1.2. Kiến trúc hệ thống (9)
      • 1.1.3. Mẫu thiết kế sử dụng (9)
        • 1.1.3.1. Mẫu thiết kế Singleton (31)
        • 1.1.3.2. Mẫu thiết kế Builder (31)
        • 1.1.3.3. Mẫu thiết kế Strategy (32)
        • 1.1.3.4. Mẫu thiết kế Template Method (35)
    • 1.2. Công nghệ sử dụng (37)
      • 1.2.1. Công nghệ xây dựng hệ thống (9)
        • 1.2.1.1. Spring Data JPA (37)
        • 1.2.1.2. Spring Security (37)
        • 1.2.1.3. Spring OAuth2 (38)
        • 1.2.1.4. Spring Quartz (39)
      • 1.2.2. Cơ sở dữ liệu (9)
        • 1.2.2.1. MySQL (39)
        • 1.2.2.2. Redis (40)
      • 1.2.3. Công nghệ xây dựng giao diện (9)
        • 1.2.3.1. Thymeleaf (41)
        • 1.2.3.2. jQuery (41)
        • 1.2.3.3. Bootstrap (42)
      • 1.2.4. Công nghệ xây dựng thanh tìm kiếm (9)
      • 1.2.5. Quy trình và công cụ kiểm thử (9)
      • 1.2.6. Dịch vụ đám mây (9)
        • 1.2.6.1. AWS S3 (44)
        • 1.2.6.2. AWS RDS (45)
        • 1.2.6.3. Heroku (45)
      • 1.2.7. Dịch vụ tích hợp (9)
        • 1.2.7.1. Google reCaptcha (46)
        • 1.2.7.2. Google Charts (47)
        • 1.2.7.3. PayPal (47)
    • 1.3. Ứng dụng học sâu (9)
      • 1.3.1. Thư viện TensorFlow (9)
      • 1.3.2. Truy xuất hình ảnh dựa trên nội dung (9)
      • 1.3.3. Vector hóa (VGG16 Feature Extract) (9)
  • CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU (53)
    • 2.1. Khảo sát hiện trạng (9)
      • 2.1.1. Phương pháp khảo sát hiện trạng (9)
      • 2.1.2. Kết quả khảo sát hiện trạng (9)
    • 2.2. Xác định yêu cầu (9)
      • 2.2.1. Yêu cầu chức năng (9)
      • 2.2.2. Yêu cầu phi chức năng (9)
    • 2.3. Mô hình hoá yêu cầu (10)
      • 2.3.1. Lược đồ Use Case (56)
      • 2.3.2. Use Case đăng ký tài khoản (56)
      • 2.3.3. Use Case đăng nhập (57)
      • 2.3.4. Use Case khôi phục mật khẩu (58)
      • 2.3.5. Use Case thay đổi thông tin tài khoản (60)
      • 2.3.6. Use Case thay đổi mật khẩu (61)
      • 2.3.7. Use Case đăng xuất (62)
      • 2.3.8. Use Case quản lý (63)
      • 2.3.9. Use Case thêm (64)
      • 2.3.10. Use Case chỉnh sửa (64)
      • 2.3.11. Use Case xóa (65)
  • CHƯƠNG 3. THIẾT KẾ PHẦN MỀM (67)
    • 3.1. Lược đồ lớp (10)
      • 3.1.1. Lược đồ chức năng người dùng (67)
      • 3.1.2. Lược đồ chức năng bảo mật (71)
      • 3.1.3. Lược đồ chức năng phân loại (72)
      • 3.1.4. Lược đồ chức năng nhãn hàng (73)
      • 3.1.5. Lược đồ chức năng sản phẩm (73)
      • 3.1.6. Lược đồ chức năng cài đặt hệ thống (74)
      • 3.1.7. Lược đồ chức năng khách hàng (74)
      • 3.1.8. Lược đồ chức năng giỏ hàng (77)
      • 3.1.9. Lược đồ chức năng tỷ giá vận chuyển (78)
      • 3.1.10. Lược đồ chức năng địa chỉ giao hàng (78)
      • 3.1.11. Lược đồ chức năng đặt hàng (79)
      • 3.1.12. Lược đồ chức năng thanh toán (80)
      • 3.1.13. Lược đồ chức năng báo cáo doanh thu (80)
      • 3.1.14. Lược đồ chức năng đánh giá (81)
    • 3.2. Thiết kế cơ sở dữ liệu (84)
      • 3.2.2. Mô tả cơ sở dữ liệu (84)
    • 3.3. Thiết kế giao diện (97)
      • 3.3.1. Giao diện trang quản lý (97)
      • 3.3.2. Giao diện trang cửa hàng (118)
  • CHƯƠNG 4. ỨNG DỤNG HỌC SÂU (125)
    • 4.1. Xây dựng hệ thống học sâu (10)
    • 4.2. Tích hợp trong hệ thống (10)
      • 4.2.1. Công cụ tìm kiếm bằng hình ảnh (126)
      • 4.2.2. Quá trình huấn luyện mô hình học sâu (127)
  • CHƯƠNG 5. CÀI ĐẶT ỨNG DỤNG VÀ KIỂM THỬ (131)
    • 5.1. Cài đặt ứng dụng (10)
      • 5.1.1. Cài đặt công cụ (131)
      • 5.1.2. Hướng dẫn cài đặt (131)
    • 5.2. Triển khai ứng dụng (134)
    • 5.3. Kiểm thử chương trình (134)
      • 5.3.1. Kế hoạch kiểm thử (134)
      • 5.3.2. Mục tiêu kiểm thử (135)
      • 5.3.3. Tiêu chí kiểm thử (135)
    • 5.4. Quy trình kiểm thử (135)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (10)
    • 2. ƯU ĐIỂM VÀ NHƯỢC ĐIỂM (3)
    • 3. HƯỚNG PHÁT TRIỂN (10)
  • TÀI LIỆU THAM KHẢO (139)

Nội dung

Để từ đó, ứng dụng những kiến thức mà cô truyền tải, em xin trình bày lại những gì mà mình đã học hỏi được thông qua việc thực hiện đề tài “Xây dựng hệ thống kinh doanh thiết bị điện tử

CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

1 Chương 1 CƠ SỞ LÝ THUYẾT

1.1.3 Mẫu thiết kế sử dụng

1.2 Các công nghệ sử dụng

1.2.1 Công nghệ xây dựng hệ thống

1.2.3 Công nghệ xây dựng giao diện

1.2.4 Công nghệ xây dựng thanh tìm kiếm

1.2.5 Quy trình và công cụ kiểm thử

1.3.2 Truy xuất hình ảnh dựa trên nội dung

2 Chương 2 KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Phương pháp khảo sát hiện trạng

2.1.2 Kết quả khảo sát hiện trạng

2.2.2 Yêu cầu phi chức năng

2.3 Mô hình hoá yêu cầu

3 Chương 3 THIẾT KẾ PHẦN MỀM

3.3 Thiết kế cơ sở dữ liệu

4 Chương 4 ỨNG DỤNG HỌC SÂU

4.1 Xây dựng hệ thống học sâu

4.2 Tích hợp trong hệ thống

5 Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

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

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

CƠ SỞ LÝ THUYẾT

Thiết kế hệ thống

1.1.3 Mẫu thiết kế sử dụng

1.2 Các công nghệ sử dụng

1.2.1 Công nghệ xây dựng hệ thống

1.2.3 Công nghệ xây dựng giao diện

1.2.4 Công nghệ xây dựng thanh tìm kiếm

1.2.5 Quy trình và công cụ kiểm thử

1.3.2 Truy xuất hình ảnh dựa trên nội dung

2 Chương 2 KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Phương pháp khảo sát hiện trạng

2.1.2 Kết quả khảo sát hiện trạng

2.2.2 Yêu cầu phi chức năng

2.3 Mô hình hoá yêu cầu

3 Chương 3 THIẾT KẾ PHẦN MỀM

3.3 Thiết kế cơ sở dữ liệu

4 Chương 4 ỨNG DỤNG HỌC SÂU

4.1 Xây dựng hệ thống học sâu

4.2 Tích hợp trong hệ thống

5 Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

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

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Thiết kế hệ thống

Kiến trúc trong từng spring boot app được kết hợp giữa mẫu thiết kế MVC cùng với kiến trúc N-Tier Layer Có luồng đi và các lớp xử lý trong từng layer như sau:

Hình 1 Kiến trúc ứng dụng

Hình 2 Kiến trúc hệ thống trong môi trường phát triển

1.1.3 Mẫu thiết kế sử dụng

1.1.3.1 Mẫu thiết kế Singleton a) Khái niệm

Singleton là một design pattern thuộc nhóm creational giúp tạo ra một lớp chỉ với một thực thế duy nhất, trong khi cung cấp điểm truy cập toàn cục cho thực thế đấy

Hình 4 Mẫu thiết kế Singleton b) Triển khai

Khi một bean được định nghĩa trong Spring và không có phần cấu hình nào khác xác định, nó sẽ được coi là singleton Điều này có nghĩa là yêu cầu một bean từ Spring Container, mặc định sẽ nhận được thể hiện duy nhất của bean đó

@FieldDefaults(level = AccessLevel.PRIVATE) public class ContextProvider implements ApplicationContextAware { static ApplicationContext context; public static @NotNull T getBean(Class clazz) { return context.getBean(clazz);

@Override public void setApplicationContext(@NotNull ApplicationContext context) throws BeansException { setContext(context);

} private static void setContext(ApplicationContext context) {

Hình 5 Triển khai mẫu thiết kế Singleton 1

1.1.3.2 Mẫu thiết kế Builder a) Khái niệm

1 Triển khai mẫu thiết kế Singleton lấy thể hiện duy nhất của bất kỳ Bean trong Spring Context

Ứng dụng học sâu

1.3.2 Truy xuất hình ảnh dựa trên nội dung

2 Chương 2 KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Phương pháp khảo sát hiện trạng

2.1.2 Kết quả khảo sát hiện trạng

2.2.2 Yêu cầu phi chức năng

2.3 Mô hình hoá yêu cầu

3 Chương 3 THIẾT KẾ PHẦN MỀM

3.3 Thiết kế cơ sở dữ liệu

4 Chương 4 ỨNG DỤNG HỌC SÂU

4.1 Xây dựng hệ thống học sâu

4.2 Tích hợp trong hệ thống

5 Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

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

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Thiết kế hệ thống

Kiến trúc trong từng spring boot app được kết hợp giữa mẫu thiết kế MVC cùng với kiến trúc N-Tier Layer Có luồng đi và các lớp xử lý trong từng layer như sau:

Hình 1 Kiến trúc ứng dụng

Hình 2 Kiến trúc hệ thống trong môi trường phát triển

1.1.3 Mẫu thiết kế sử dụng

1.1.3.1 Mẫu thiết kế Singleton a) Khái niệm

Singleton là một design pattern thuộc nhóm creational giúp tạo ra một lớp chỉ với một thực thế duy nhất, trong khi cung cấp điểm truy cập toàn cục cho thực thế đấy

Hình 4 Mẫu thiết kế Singleton b) Triển khai

Khi một bean được định nghĩa trong Spring và không có phần cấu hình nào khác xác định, nó sẽ được coi là singleton Điều này có nghĩa là yêu cầu một bean từ Spring Container, mặc định sẽ nhận được thể hiện duy nhất của bean đó

@FieldDefaults(level = AccessLevel.PRIVATE) public class ContextProvider implements ApplicationContextAware { static ApplicationContext context; public static @NotNull T getBean(Class clazz) { return context.getBean(clazz);

@Override public void setApplicationContext(@NotNull ApplicationContext context) throws BeansException { setContext(context);

} private static void setContext(ApplicationContext context) {

Hình 5 Triển khai mẫu thiết kế Singleton 1

1.1.3.2 Mẫu thiết kế Builder a) Khái niệm

1 Triển khai mẫu thiết kế Singleton lấy thể hiện duy nhất của bất kỳ Bean trong Spring Context

KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU

Khảo sát hiện trạng

2.1.1 Phương pháp khảo sát hiện trạng

2.1.2 Kết quả khảo sát hiện trạng

Xác định yêu cầu

2.2.2 Yêu cầu phi chức năng

Mô hình hoá yêu cầu

3 Chương 3 THIẾT KẾ PHẦN MỀM

3.3 Thiết kế cơ sở dữ liệu

4 Chương 4 ỨNG DỤNG HỌC SÂU

4.1 Xây dựng hệ thống học sâu

4.2 Tích hợp trong hệ thống

5 Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

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

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Thiết kế hệ thống

Kiến trúc trong từng spring boot app được kết hợp giữa mẫu thiết kế MVC cùng với kiến trúc N-Tier Layer Có luồng đi và các lớp xử lý trong từng layer như sau:

Hình 1 Kiến trúc ứng dụng

Hình 2 Kiến trúc hệ thống trong môi trường phát triển

1.1.3 Mẫu thiết kế sử dụng

1.1.3.1 Mẫu thiết kế Singleton a) Khái niệm

Singleton là một design pattern thuộc nhóm creational giúp tạo ra một lớp chỉ với một thực thế duy nhất, trong khi cung cấp điểm truy cập toàn cục cho thực thế đấy

Hình 4 Mẫu thiết kế Singleton b) Triển khai

Khi một bean được định nghĩa trong Spring và không có phần cấu hình nào khác xác định, nó sẽ được coi là singleton Điều này có nghĩa là yêu cầu một bean từ Spring Container, mặc định sẽ nhận được thể hiện duy nhất của bean đó

@FieldDefaults(level = AccessLevel.PRIVATE) public class ContextProvider implements ApplicationContextAware { static ApplicationContext context; public static @NotNull T getBean(Class clazz) { return context.getBean(clazz);

@Override public void setApplicationContext(@NotNull ApplicationContext context) throws BeansException { setContext(context);

} private static void setContext(ApplicationContext context) {

Hình 5 Triển khai mẫu thiết kế Singleton 1

1.1.3.2 Mẫu thiết kế Builder a) Khái niệm

1 Triển khai mẫu thiết kế Singleton lấy thể hiện duy nhất của bất kỳ Bean trong Spring Context

THIẾT KẾ PHẦN MỀM

Lược đồ lớp

3.3 Thiết kế cơ sở dữ liệu

4 Chương 4 ỨNG DỤNG HỌC SÂU

4.1 Xây dựng hệ thống học sâu

4.2 Tích hợp trong hệ thống

5 Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

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

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Thiết kế hệ thống

Kiến trúc trong từng spring boot app được kết hợp giữa mẫu thiết kế MVC cùng với kiến trúc N-Tier Layer Có luồng đi và các lớp xử lý trong từng layer như sau:

Hình 1 Kiến trúc ứng dụng

Hình 2 Kiến trúc hệ thống trong môi trường phát triển

1.1.3 Mẫu thiết kế sử dụng

1.1.3.1 Mẫu thiết kế Singleton a) Khái niệm

Singleton là một design pattern thuộc nhóm creational giúp tạo ra một lớp chỉ với một thực thế duy nhất, trong khi cung cấp điểm truy cập toàn cục cho thực thế đấy

Hình 4 Mẫu thiết kế Singleton b) Triển khai

Khi một bean được định nghĩa trong Spring và không có phần cấu hình nào khác xác định, nó sẽ được coi là singleton Điều này có nghĩa là yêu cầu một bean từ Spring Container, mặc định sẽ nhận được thể hiện duy nhất của bean đó

@FieldDefaults(level = AccessLevel.PRIVATE) public class ContextProvider implements ApplicationContextAware { static ApplicationContext context; public static @NotNull T getBean(Class clazz) { return context.getBean(clazz);

@Override public void setApplicationContext(@NotNull ApplicationContext context) throws BeansException { setContext(context);

} private static void setContext(ApplicationContext context) {

Hình 5 Triển khai mẫu thiết kế Singleton 1

1.1.3.2 Mẫu thiết kế Builder a) Khái niệm

1 Triển khai mẫu thiết kế Singleton lấy thể hiện duy nhất của bất kỳ Bean trong Spring Context

Thiết kế cơ sở dữ liệu

Hình 72 Lược đồ thực thể

3.2.2 Mô tả cơ sở dữ liệu

Bảng 12 Mô tả thuộc tính chung STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 created_at timestamp(6) Được tạo tại thời gian

2 created_by varchar(64) Được tạo bởi người dùng

3 updated_at timestamp(6) Được cập nhật tại thời gian

4 updated_by varchar(64) Được cập nhật bởi người dùng

Bảng 13 Mô tả bảng users

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 account_expired_date datetime(6) Thời gian tài khoản hết hạn

3 account_non_expired bit(1) Tài khoản còn thời hạn?

4 account_non_locked bit(1) Tài khoản chưa bị khóa?

5 credentials_non_expired bit(1) Mật khẩu còn thời hạn?

9 totp_enabled bit(1) Sử dụng xác thực 2 lớp

11 last_password_changed datetime(6) Lần cuối thay đổi mật khẩu

13 photos varchar(256) Tên ảnh chân dung

14 secret varchar(128) Mã bí mật

15 username varchar(64) UQ Tên người dùng

16 work_joining_date datetime(6) Ngày bắt đầu làm việc

17 one_time_password varchar(128) Mật khẩu OTP (Mã hóa)

18 otp_requested_time datetime(6) Thời gian OTP hết hạn

19 limit_multi_login bit(1) Giới hạn đăng nhập?

20 limited_ip varchar(256) Ip bị giới hạn

Bảng 14 Mô tả bảng privileges

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 name varchar(256) UQ Tên đặc quyền

3 content varchar(256) Nội dung đặc quyền (URL)

Bảng 15 Mô tả bảng roles STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 description varchar(512) Mô tả vai trò

3 name varchar(64) UQ Tên vai trò (Prefix: ROLE_)

Bảng 16 Mô tả bảng roles_privilegles STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 role_id int UN PK Mã định danh vai trò

2 privilege_id int UN PK Mã định danh đặc quyền

Bảng 17 Mô tả bảng users_roles STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 user_id int UN PK Mã định danh người dùng

2 role_id int UN PK Mã định danh vai trò

Bảng 18 Mô tả bảng verification_tokens STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 expiry_date datetime(6) Thời gian hết hạn

3 token varchar(256) Mã xác nhận đăng ký tài khoản

4 user_id int UN Mã định danh người dùng

Bảng 19 Mô tả bảng password_reset_tokens STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 expiry_date datetime(6) Thời gian hết hạn mã

3 token varchar(256) Mã xác nhận khôi phục mật khẩu

4 user_id int UN Mã định danh người dùng

Bảng 20 Mô tả bảng user_locations STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 country varchar(255) Vị trí quốc gia người dùng

3 enabled bit(1) Được phép hoạt động?

4 user_id int UN Mã định danh người dùng

Bảng 21 Mô tả bảng new_location_tokens STT Thuộc tính Kiểu dữ liệu Ý nghĩa

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

2 token varchar(256) Mã cấp phép đăng nhập thiết bị mới

3 expiry_date datetime(6) Thời gian hết hạn mã

4 user_location_id int UN Mã định danh vị trí người dùng

Bảng 22 Mô tả bảng user_locations STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 device_details varchar(256) Thông tin thiết bị

3 last_logged_in datetime(6) Lần cuối đăng nhập?

4 location varchar(256) Địa điểm đăng nhập

5 user_id int UN Mã định danh người dùng

Bảng 23 Mô tả bảng persistent_logins STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 series varchar(256) PK Mã định danh

2 last_used timestamp(6) Lần cuối sử dụng?

3 token varchar(256) Mã cookie (Mã hóa)

4 username varchar(128) UQ Tên người dùng

Bảng 24 Mô tả bảng categories STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 alias varchar(128) UQ Mã bí danh

3 all_parent_ids varchar(256) Danh sách mã định danh cha

5 image varchar(256) Tên hình ảnh

6 name varchar(128) UQ Tên phân loại

7 parent_id int UN Mã định danh cha

Bảng 25 Mô tả bảng brands STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 alias varchar(128) UQ Mã bí danh

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

4 logo varchar(256) Tên hình ảnh

5 name varchar(128) UQ Tên nhãn hàng

Bảng 26 Mô tả bảng brands_categories STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 brand_id int UN PK Mã định danh nhãn hàng

2 category_id int UN PK Mã bí danh phân loại

Bảng 27 Mô tả bảng products STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 alias varchar(256) UQ Mã bí danh

3 average_rating decimal(3,2) Điểm số đánh giá trung bình

5 discount_percent decimal(4,2) Phần trăm giảm giá

7 full_description longtext Mô tả chi tiết

9 in_stock bit(1) Còn hàng?

11 main_image varchar(255) Tên hình ảnh chính

12 name varchar(256) UQ Tên sản phẩm

14 review_count smallint UN Số lượng đánh giá

15 short_description varchar(1024) Mô tả ngắn gọn

18 brand_id int UN Mã định danh nhãn hàng

19 category_id int UN Mã định danh phân loại

Bảng 28 Mô tả bảng product_images

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 name varchar(256) Tên hình ảnh phụ

3 product_id int UN Mã định danh sản phẩm

Bảng 29 Mô tả bảng product_details STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 name varchar(256) Tên thành phần chi tiết sản phẩm

3 value varchar(256) Nội dung thành phần chi tiết

4 product_id int UN Mã định danh sản phẩm

Bảng 30 Mô tả bảng countries STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 code varchar(4) UQ Mã vùng quốc gia

3 name varchar(128) UQ Tên quốc gia

Bảng 31 Mô tả bảng states STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 name varchar(64) Tên tiểu vùng

3 country_id int UN Mã định danh quốc gia

Bảng 32 Mô tả bảng customers STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 account_non_expired bit(1) Tài khoản còn thời hạn?

3 account_non_locked bit(1) Tài khoản chưa bị khóa?

4 credentials_non_expired bit(1) Mật khẩu còn thời hạn?

5 address_line_1 varchar(128) Địa chỉ 1

6 address_line_2 varchar(128) Địa chỉ 2

7 birth_date date Ngày sinh nhật

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

11 phone_number varchar(16) Số điện thoại

12 postal_code varchar(16) Mã vùng

13 state varchar(64) Tên tiểu vùng

14 authentication_type varchar(16) Loại xác thực

18 is_using2fa bit(1) Sử dụng xác thực hai lớp?

19 password varchar(128) Mật khẩu (Mã hóa)

20 photo varchar(256) Tên ảnh chân dung

21 reset_password_token varchar(32) Mã khôi phục mật khẩu

22 username varchar(64) UQ Tên người dùng

24 verification_code varchar(64) Mã xác nhận đăng ký

25 country_id int UN Mã định danh quốc gia

26 password_changed_time datetime(6) Thời gian thay đổi mật khẩu

27 one_time_password varchar(128) Mật khẩu OTP (Mã hóa)

28 otp_requested_time datetime(6) Thời gian hiệu lực mật khẩu OTP

Bảng 33 Mô tả bảng addresses STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 address_line_1 varchar(128) Địa chỉ 1

3 address_line_2 varchar(128) Địa chỉ 2

7 phone_number varchar(16) Số điện thoại

8 postal_code varchar(16) Mã vùng

9 state varchar(64) Phường / thị trấn / xã

10 default_address bit(1) Địa chỉ mặc định?

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

12 customer_id int UN Mã định danh người dùng

Bảng 34 Mô tả bảng currencies STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 code varchar(4) Mã tiền tệ

3 name varchar(64) Tên tiền tệ

4 symbol varchar(4) Ký tự tiền tệ

Bảng 35 Mô tả bảng shipping_rates STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 cod_supported bit(1) Hỗ trợ COD?

3 days tinyint UN Số ngày dự kiến vận chuyển

4 rate decimal(4,2) Tỷ lệ chi phí vận chuyển

5 state varchar(64) Tên tiểu vùng

6 country_id int UN Mã định danh quốc gia

Bảng 36 Mô tả bảng orders STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 address_line_1 varchar(128) Địa chỉ vận chuyển 1

3 address_line_2 varchar(128) Địa chỉ vận chuyển 2

5 first_name varchar(64) Tên người nhận

6 last_name varchar(64) Họ người nhận

7 phone_number varchar(16) Số điện thoại người nhận

8 postal_code varchar(16) Mã vùng

9 state varchar(64) Tên tiểu vùng

10 country varchar(64) Tên quốc gia

11 deliver_date datetime(6) Ngày dự kiến giao hàng

12 deliver_days int Số ngày dự kiến giao hàng

13 order_time datetime(6) Thời gian đặt hàng

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

14 payment_method varchar(255) Phương thức thanh toán

15 product_cost float Chi phí sản phẩm

16 shipping_cost float Chi phí vận chuyển

17 status varchar(255) Tình trạng đơn hàng

18 subtotal float Tổng thành tiền

21 customer_id int UN Mã định danh khách hàng

Bảng 37 Mô tả bảng order_details STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 product_cost float Chi phí từng sản phẩm

3 quantity smallint UN Số lượng sản phẩm

4 shipping_cost float Chi phí vận chuyển trên mỗi sản phẩm

5 subtotal float Tổng thành tiền

6 unit_price float Đơn giá

7 order_id int UN Mã định danh đơn hàng

8 product_id int UN Mã định danh sản phẩm

Bảng 38 Mô tả bảng order_tracks STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 notes varchar(256) Ghi chú từng tracking

3 status enum Trạng thái từng tracking

4 updated_time datetime(6) Thời gian cập nhật

5 order_id int UN Mã định danh đơn hàng

6 unit_price float Đơn giá sản phẩm

Bảng 39 Mô tả bảng shopping_carts

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 customer_id int UN Mã định danh khách hàng

3 session_token varchar(256) Mã session

Bảng 40 Mô tả bảng cart_items STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 quantity smallint UN Số lượng sản phẩm trong giỏ hàng

3 product_id int UN Mã định danh sản phẩm

4 shopping_cart_id Int UN Mã định danh giỏ hàng

Bảng 41 Mô tả bảng wishlists STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 customer_id int UN Mã định danh khách hàng

Bảng 42 Mô tả bảng wishlist_items STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 product_id int UN Mã định danh sản phẩm

2 wishlist _id int UN Mã định danh danh sách yêu thích

Bảng 43 Mô tả bảng quesions STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 answer text Nội dung câu trả lời

3 answer_time datetime(6) Thời gian câu trả lời được duyệt

4 approved bit(1) Câu hỏi đã được duyệt?

5 ask_time datetime(6) Thời gian câu hỏi được đặt

6 question text Nội dung câu hỏi

7 votes smallint Số lượng bình chọn câu hỏi

8 answerer_id int UN Mã định danh người trả lời

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

9 asker_id int UN Mã định danh người hỏi

10 product_id int UN Mã định danh sản phẩm

Bảng 44 Mô tả bảng question_votes STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 votes int Bình chọn câu hỏi (1 hoặc -1)

3 customer_id int UN Mã định danh khách hàng

4 question_id int UN Mã định danh câu hỏi

Bảng 45 Mô tả bảng reviews STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 comment varchar(512) Nội dung đánh giá

3 headline varchar(128) Tiêu đề đánh giá

4 rating tinyint UN Xếp hạng (1 – 5)

5 review_time datetime(6) Thời gian đánh giá được viết

6 votes int Số lượng bình chọn đánh giá

7 customer_id int UN Mã định danh khách hàng

8 product_id int UN Mã định danh sản phẩm

9 approved bit(1) Đánh giá đã được duyệt?

Bảng 46 Mô tả bảng review_votes STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 votes int Bình chọn đánh giá (1 hoặc -1)

3 customer_id int UN Mã định danh khách hàng

4 review_id int UN Mã định danh đánh giá

Bảng 47 Mô tả bảng resources STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

3 default_content varchar(512) Nội dung mặc định của cú pháp

Bảng 48 Mô tả bảng resource_bundles STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 content varchar(512) Nội dung cú pháp theo ngôn ngữ

3 language varchar(2) Mã ngôn ngữ

4 resource_id int UN Mã định danh cú pháp

Bảng 49 Mô tả bảng articles STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 alias varchar(256) UQ Bí danh bài viết

3 content longtext Nội dung bài viết

4 published bit(1) Được công bố?

5 title varchar(256) UQ Tựa đề bài viết

6 type int Loại bài viết (0: Header, 1: Footer)

7 updated_time timestamp(6) Thời gian cập nhật

Bảng 50 Mô tả bảng menus STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 alias varchar(128) UQ Bí danh menu

3 enabled bit(1) Được hoạt động?

4 position int UN Thứ tự menu

5 title varchar(128) UQ Tiêu đề menu

6 type enum('HEADER','FOOTER') Loại menu

7 article_id int UN Mã định danh bài viết

Bảng 51 Mô tả bảng settings STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 key varchar(128) PK Khoá định danh

2 category varchar(128) Loại danh mục

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

3 value longtext Giá trị của khoá

Bảng 52 Mô tả bảng sections STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 description longtext Mô tả phần hiển thị

3 enabled bit(1) Được hoạt động?

4 heading varchar(256) Tiêu đề phần hiển thị

5 section_order int Thứ tự phần hiển thị

6 type varchar(255) Loại phần hiển thị

Bảng 53 Mô tả bảng articles_sections STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 article_order tinyint UN Thứ tự phần hiện thị bài viết

3 article_id int UN Mã định danh bài viết

4 section_id int UN Mã định danh phần hiển thị

Bảng 54 Mô tả bảng brands_sections STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 brand_order tinyint UN Thứ tự phần hiện thị nhãn hàng

3 brand_id int UN Mã định danh nhãn hàng

4 section_id int UN Mã định danh phần hiển thị

Bảng 55 Mô tả bảng categories_sections STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 category_order tinyint UN Thứ tự phần hiển thị phân loại

3 category_id int UN Mã định danh phân loại

4 section_id int UN Mã định danh phần hiển thị

STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 product_order tinyint UN Thứ tự phần hiển thị sản phẩm

3 product_id int UN Mã định danh sản phẩm

4 section_id int UN Mã định danh phần hiển thị

Bảng 57 Mô tả bảng questions_sections STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 question_order tinyint UN Thứ tự phần hiển thị câu hỏi

3 question_id int UN Mã định danh câu hỏi

4 section_id int UN Mã định danh phần hiển thị

Bảng 58 Mô tả bảng reviews_sections STT Thuộc tính Kiểu dữ liệu Ý nghĩa

1 id int UN PK Mã định danh

2 review_order tinyint UN Thứ tự phần hiển thị đánh giá

3 review_id int UN Mã định danh đánh giá

4 section_id int UN Mã định danh phần hiển thị

Thiết kế giao diện

3.3.1 Giao diện trang quản lý a) Giao diện lỗi

Hình 73 Trang quản lý – Giao diện lỗi b) Giao diện đăng nhập

Hình 74 Trang quản lý – Giao diện đăng nhập c) Giao diện đăng ký

Hình 75 Trang quản lý – Giao diện đăng ký d) Giao diện quên mật khẩu

Hình 76 Trang quản lý – Giao diện quên mật khẩu e) Giao diện khôi phục mật khẩu

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu f) Giao diện mục tài khoản

Hình 78 Trang quản lý – Giao diện thông tin cá nhân

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu g) Giao diện cài đặt hệ thống

Hình 80 Trang quản lý – Giao diện cài đặt chung

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán h) Giao diện mục hệ thống

Hình 86 Trang quản lý – Giao diện giám sát

Hình 87 Trang quản lý – Giao diện ghi nhật ký i) Giao diện trang chủ

Hình 88 Trang quản lý – Giao diện trang chủ j) Giao diện thống kê

Hình 89 Trang quản lý – Giao diện thống kê k) Giao diện mục doanh thu

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày

❖ Doanh thu theo phân loại / nhãn hàng

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng

❖ Doanh thu theo sản phẩm

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm l) Giao diện mục đặc quyền

Hình 93 Trang quản lý – Giao diện trang quản lý quyền

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền m) Giao diện mục vai trò

Hình 95 Trang quản lý – Giao diện trang quản lý vai trò

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò n) Giao diện mục người dùng

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng o) Giao diện mục phân loại

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại p) Giao diện mục nhãn hàng

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng q) Giao diện mục sản phẩm

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm r) Giao diện mục khách hàng

Hình 105 Trang quản lý – Giao diện quản lý khách hàng

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi t) Giao diện mục đánh giá

Hình 109 Trang quản lý – Giao diện quản lý đánh giá

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá u) Giao diện mục đơn hàng

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng

3.3.2 Giao diện trang cửa hàng

Hình 113 Trang cửa hàng – Giao diện trang chủ a) Giao diện đăng ký

Hình 114 Trang cửa hàng – Giao diện đăng ký b) Giao diện đăng nhập

Hình 115 Trang cửa hàng – Giao diện đăng nhập c) Giao diện quên mật khẩu

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu d) Giao diện mục sản phẩm

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm

Hình 118 Trang cửa hàng – Giao diện câu hỏi

Hình 119 Trang cửa hàng – Giao diện đánh giá e) Giao diện mục giỏ hàng

Hình 120 Trang cửa hàng – Giao diện giỏ hàng f) Giao diện mục khách hàng

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng g) Giao diện mục thanh toán

Hình 126 Trang cửa hàng – Giao diện thanh toán

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng

ỨNG DỤNG HỌC SÂU

Tích hợp trong hệ thống

5 Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

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

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Thiết kế hệ thống

Kiến trúc trong từng spring boot app được kết hợp giữa mẫu thiết kế MVC cùng với kiến trúc N-Tier Layer Có luồng đi và các lớp xử lý trong từng layer như sau:

Hình 1 Kiến trúc ứng dụng

Hình 2 Kiến trúc hệ thống trong môi trường phát triển

1.1.3 Mẫu thiết kế sử dụng

1.1.3.1 Mẫu thiết kế Singleton a) Khái niệm

Singleton là một design pattern thuộc nhóm creational giúp tạo ra một lớp chỉ với một thực thế duy nhất, trong khi cung cấp điểm truy cập toàn cục cho thực thế đấy

Hình 4 Mẫu thiết kế Singleton b) Triển khai

Khi một bean được định nghĩa trong Spring và không có phần cấu hình nào khác xác định, nó sẽ được coi là singleton Điều này có nghĩa là yêu cầu một bean từ Spring Container, mặc định sẽ nhận được thể hiện duy nhất của bean đó

@FieldDefaults(level = AccessLevel.PRIVATE) public class ContextProvider implements ApplicationContextAware { static ApplicationContext context; public static @NotNull T getBean(Class clazz) { return context.getBean(clazz);

@Override public void setApplicationContext(@NotNull ApplicationContext context) throws BeansException { setContext(context);

} private static void setContext(ApplicationContext context) {

Hình 5 Triển khai mẫu thiết kế Singleton 1

1.1.3.2 Mẫu thiết kế Builder a) Khái niệm

1 Triển khai mẫu thiết kế Singleton lấy thể hiện duy nhất của bất kỳ Bean trong Spring Context

CÀI ĐẶT ỨNG DỤNG VÀ KIỂM THỬ

Cài đặt ứng dụng

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

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Thiết kế hệ thống

Kiến trúc trong từng spring boot app được kết hợp giữa mẫu thiết kế MVC cùng với kiến trúc N-Tier Layer Có luồng đi và các lớp xử lý trong từng layer như sau:

Hình 1 Kiến trúc ứng dụng

Hình 2 Kiến trúc hệ thống trong môi trường phát triển

1.1.3 Mẫu thiết kế sử dụng

1.1.3.1 Mẫu thiết kế Singleton a) Khái niệm

Singleton là một design pattern thuộc nhóm creational giúp tạo ra một lớp chỉ với một thực thế duy nhất, trong khi cung cấp điểm truy cập toàn cục cho thực thế đấy

Hình 4 Mẫu thiết kế Singleton b) Triển khai

Khi một bean được định nghĩa trong Spring và không có phần cấu hình nào khác xác định, nó sẽ được coi là singleton Điều này có nghĩa là yêu cầu một bean từ Spring Container, mặc định sẽ nhận được thể hiện duy nhất của bean đó

@FieldDefaults(level = AccessLevel.PRIVATE) public class ContextProvider implements ApplicationContextAware { static ApplicationContext context; public static @NotNull T getBean(Class clazz) { return context.getBean(clazz);

@Override public void setApplicationContext(@NotNull ApplicationContext context) throws BeansException { setContext(context);

} private static void setContext(ApplicationContext context) {

Hình 5 Triển khai mẫu thiết kế Singleton 1

1.1.3.2 Mẫu thiết kế Builder a) Khái niệm

1 Triển khai mẫu thiết kế Singleton lấy thể hiện duy nhất của bất kỳ Bean trong Spring Context

Triển khai ứng dụng

Truy cập vào trang quản lý đường dẫn sau: https://ecommerce-site-admin.herokuapp.com/

Truy cập vào trang cửa hàng đường dẫn sau: https://ecommerce-site-shop.herokuapp.com/

Kiểm thử chương trình

- Integration test: kết hợp các module của ứng dụng và kiểm thử như một ứng dụng hoàn chỉnh

- Unit test: kiểm thử từng phương thức trong các lớp

- System test: kiểm thử xem thiết kế và toàn bộ hệ thống (sau khi tích hợp) có thỏa mãn yêu cầu đặt ra hay không

- Usability test: xác minh ứng dụng có khả năng ứng dụng cao và dễ sử dụng, giao diện thân thiện với người dùng

5.3.2 Mục tiêu kiểm thử Đảm bảo các chức năng của ứng dụng (được xác định trong đặc tả dự án) hoạt động chính xác trong điều kiện thực tế

Các tiêu chí kiểm thử bao gồm:

- Tiêu chí đình chỉ: nếu có ít nhất 40% số test case bị lỗi, tạm dừng việc kiểm thử đến khi tất cả các lỗi hiện tại được khắc phục

- Tiêu chí kết thúc: chỉ định các tiêu chí biểu thị việc hoàn thành thành công giai đoạn kiểm thử

• Tỷ lệ chạy test case bắt buộc phải là 100% trừ khi có lý do rõ ràng

• Tỷ lệ vượt qua các test case là 80%, việc đạt tỉ lệ này là bắt buộc.

ƯU ĐIỂM VÀ NHƯỢC ĐIỂM

4 Đề nghị cho bảo vệ hay không?

Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

ThS Mai Anh Thơ ĐH SƯ PHẠM KỸ THUẬT

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA

VIỆT NAM Độc Lập – Tự Do – Hạnh Phúc

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên sinh viên: Nguyễn Thành Phương MSSV: 20110294

Khoa: Công Nghệ Thông Tin

Chuyên ngành: Công Nghệ Phần Mềm

Tên đề tài: Xây dựng hệ thống kinh doanh thiết bị điện tử & ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung

Họ và tên giảng viên phản biện: ThS Nguyễn Trần Thi Văn

NHẬN XÉT CỦA GIẢNG VIÊN

1 Về nội dung đề tài và khối lượng thực hiện:

4 Đề nghị cho bảo vệ hay không?

Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

ThS Nguyễn Trần Thi Văn

Lời đầu tiên, em xin gửi lời cảm ơn chân thành nhất đến cô Mai Anh Thơ – giảng viên hướng dẫn của em nói riêng và toàn thể các thầy cô của khoa Công Nghệ Thông Tin nói chung đã truyền đạt cho em những kiến thức, những kinh nghiệm quý báu trong suốt những năm học qua Trong quá trình học tập và nghiên cứu, em đã nhận được sự quan tâm giúp đỡ, hướng dẫn rất tận tình và tâm huyết từ cô Cô đã dành thời gian của mình để định hướng đề tài, tư vấn, hướng dẫn và góp ý trong quá trình làm đồ án cũng như tạo mọi điều kiện thuận lợi giúp em tích lũy thêm nhiều kiến thức để có cái nhìn sâu sắc và hoàn thiện hơn trong lĩnh vực công nghệ thông tin để Để từ đó, ứng dụng những kiến thức mà cô truyền tải, em xin trình bày lại những gì mà mình đã học hỏi được thông qua việc thực hiện đề tài “Xây dựng hệ thống kinh doanh thiết bị điện tử

& ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung” và hoàn thành tốt nhất có thể trong khả năng của bản thân

Kiến thức là vô hạn và sự tiếp nhận kiến thức của bản thân mỗi người luôn tồn tại những hạn chế nhất định Do đó, trong phạm vi khả năng của bản thân, em đã rất cố gắng để hoàn thành đề tài một cách tốt nhất Tuy nhiên, chắc chắn không tránh khỏi những thiếu sót, em rất mong nhận được sự cảm thông và những ý kiến đóng góp đến từ các thầy, cô để đề tài của em được hoàn thiện hơn

Một lần nữa, em xin chân thành cảm ơn cô đã tận tình hướng dẫn, chỉ dẫn em trong suốt quá trình học tập và thực hiện đồ án này

Kính chúc cô sức khỏe, hạnh phúc thành công trên con đường sự nghiệp giảng dạy

Cuối cùng, em xin kính chúc toàn thể các thầy cô của khoa Công Nghệ Thông Tin sức khỏe, đạt được nhiều thành công trong sự nghiệp trồng người cũng như trong nghiên cứu khoa học

Nguyễn Thành Phương ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP

Họ và tên sinh viên thực hiện: Nguyễn Thành Phương MSSV: 20110294 Thời gian làm khóa luận: Từ 01/01/2023 đến 01/01/2024

Chuyên ngành: Công nghệ phần mềm

Tên tiểu luận: Xây dựng hệ thống kinh doanh thiết bị điện tử & ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung

Giảng viên hướng dẫn: ThS Mai Anh Thơ

Nhiệm vụ của tiểu luận:

✓ Tìm hiểu về các công nghệ Spring Framework, Hibernate, Thymeleaf, Redis, Elasticsearch, MySQL, AWS, các dịch vụ Google, PayPal, Heroku

✓ Tìm hiểu về thư viện TensorFlow và công nghệ truy xuất hình ảnh dựa trên nội dung (CBIR)

✓ Sử dụng Spring Framework để xây dựng các module trong hệ thống

✓ Sử dụng Hibernate để ghi nhật ký dữ liệu trong hệ thống

✓ Sử dụng MySQL để lưu trữ cơ sở dữ liệu trong môi trường phát triển

✓ Sử dụng AWS RDS để lưu trữ cơ sở dữ liệu trong môi trường vận hành

✓ Sử dụng AWS S3 để lưu trữ file trong môi trường vận hành

✓ Sử dụng Redis để cache dữ liệu trong hệ thống

✓ Sử dụng Elasticsearch để xây dựng công cụ thanh tìm kiếm

✓ Sử dụng Thymeleaf là một View Template Engine để xử lý giao diện website

✓ Sử dụng dịch vụ Google để tích hợp các tiện ích trong hệ thống như: Google reCaptcha, Google Charts

✓ Sử dụng dịch vụ PayPal để tích hợp thanh toán trực tuyến

✓ Sử dụng Websocket để giám sát hệ thống, theo dõi nhật ký & chat trực tuyến

✓ Sử dụng Flask để xây dựng hệ thống học sâu

✓ Sử dụng thư viện Tensorflow để xây dựng thuật toán truy xuất hình ảnh dựa trên nội dung (CBIR) Đề cương viết tiểu luận:

2 Mục đích của đề tài

3 Cách tiếp cận và phương pháp nghiên cứu

4 Kết quả dự kiến đạt được

5 Ý nghĩa khoa học và thực tiễn

1 Chương 1 CƠ SỞ LÝ THUYẾT

1.1.3 Mẫu thiết kế sử dụng

1.2 Các công nghệ sử dụng

1.2.1 Công nghệ xây dựng hệ thống

1.2.3 Công nghệ xây dựng giao diện

1.2.4 Công nghệ xây dựng thanh tìm kiếm

1.2.5 Quy trình và công cụ kiểm thử

1.3.2 Truy xuất hình ảnh dựa trên nội dung

2 Chương 2 KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HOÁ YÊU CẦU

2.1.1 Phương pháp khảo sát hiện trạng

2.1.2 Kết quả khảo sát hiện trạng

2.2.2 Yêu cầu phi chức năng

2.3 Mô hình hoá yêu cầu

3 Chương 3 THIẾT KẾ PHẦN MỀM

3.3 Thiết kế cơ sở dữ liệu

4 Chương 4 ỨNG DỤNG HỌC SÂU

4.1 Xây dựng hệ thống học sâu

4.2 Tích hợp trong hệ thống

5 Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

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

HƯỚNG PHÁT TRIỂN

STT Thời Gian Công Việc

- Thiết kế usecase và mô hình hoá yêu cầu

- Thiết kế cơ sở dữ liệu

2 01/02/2023 – 28/02/2023 - Tìm hiểu về Spring Boot và các modules trong

- Tìm hiểu về thư viện Thymeleaf

- Tìm hiểu về MySQL để lưu trữ dữ liệu người dùng trong môi trường phát triển

- Tìm hiểu về JUnit, AssertJ và Mockito để thực viện viết unit test case

- Tìm hiểu về RESTful API

3 01/03/2023 – 31/03/2023 - Tiến hành tạo dữ liệu mẫu

- Tiến hành phát triển các modules dành cho trang quản lý

- Viết unit test case cho từng chức năng song song khi triển khai

- Tìm hiểu và triển khai Hibernate Envers thực hiện ghi nhật ký dữ liệu

- Tìm hiểu và triển khai Spring Security thực hiện phân quyền và tạo vai trò cho người dùng

- Tìm hiểu và triển khai dịch vụ Google reCaptcha

4 01/04/2023 – 30/04/2023 - Tái cấu trúc các chức năng đã thực hiện

- Triển khai các modules cho trang cửa hàng đồng thời viết unit test case song song cho từng chức năng được thực hiện

- Tìm hiểu và triển khai Spring OAuth thực hiện đăng nhập / đăng ký qua mạng xã hội

- Tìm hiểu và triển khai dịch vụ PayPal để thanh toán online

STT Thời Gian Công Việc

5 01/05/2023 – 31/05/2023 - Tái cấu trúc và chỉnh sửa hệ thống để hoàn thiện hơn

- Kết hợp các phần đã xây dựng lại với nhau

- Tìm hiểu về các dịch vụ AWS và nền tảng Heroku

- Tiến hành viết và hoàn thiện báo cáo

6 01/08/2023 – 31/8/2023 - Tìm hiểu và triển khai dịch vụ Google Charts để xem doanh thu sản phẩm

- Hosting các trang web lên nền tảng Heroku

- Triển khai sử dụng dịch vụ AWS S3 và AWS RDS trong môi trường vận hành

7 01/09/2023 – 30/09/2023 - Chỉnh sửa và bổ sung theo kết quả phản biện từ

- Tái cấu trúc cơ sở dữ liệu & mã code trong dự án

- Triển khai dịch vụ cache dùng Redis cho một số dịch vụ trong dự án

8 01/10/2023 – 31/10/2023 - Tìm hiểu & triển khai Elasticsearch là một công cụ full-text search

- Nghiên cứu về học sâu gồm thư viện TensorFlow

& công nghệ truy xuất hình ảnh dựa trên nội dung

- Tìm hiểu về thư viện Flask để triển khai hệ thống học sâu

9 01/11/2023 – 30/11/2023 - Triển khai hệ thống học sâu dựa trên mô hình truy xuất hình ảnh dựa trên nội dung của TensorFlow cung cấp – ResNet101V2

- Triển khai Websocket để ghi nhật ký hệ thống và xem thông tin hệ thống theo thời gian thực

- Khắc phục những issues còn tồn đọng

10 01/12/2023 – 31/12/2023 - Tìm hiểu và triển khai Spring Quartz để thực hiện lên lịch biểu huấn luyện cho quá trình học mô hình học sâu đã xây dựng

STT Thời Gian Công Việc

- Kiểm thử toàn bộ chương trình

- Thực hiện triển khai lại trên môi trường vận hành Thành phố Hồ Chí Minh, ngày … tháng 01 năm 2024

Người viết đề cương Ý kiến của giáo viên hướng dẫn

(Ký và ghi rõ họ tên)

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN III PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN V LỜI CẢM ƠN VII ĐỂ CƯƠNG KHÓA LUẬN TỐT NGHIỆP VIII

KẾ HOẠCH THỰC HIỆN XI MỤC LỤC XIV DANH MỤC HÌNH ẢNH XVIII DANH MỤC BẢNG XXIII DANH MỤC KÝ TỰ VIẾT TẮT XXV

1.1.3 Mẫu thiết kế sử dụng 3

1.1.3.4 Mẫu thiết kế Template Method 7

1.2.1 Công nghệ xây dựng hệ thống 9

1.2.3 Công nghệ xây dựng giao diện 13

1.2.4 Công nghệ xây dựng thanh tìm kiếm 14

1.2.5 Quy trình và công cụ kiểm thử 15

1.3.2 Truy xuất hình ảnh dựa trên nội dung 21

1.3.3 Vector hóa (VGG16 Feature Extract) 23

2.1.1 Phương pháp khảo sát hiện trạng 25

2.1.2 Kết quả khảo sát hiện trạng 25

2.2.2 Yêu cầu phi chức năng 27

2.3 Mô hình hoá yêu cầu 28

2.3.2 Use Case đăng ký tài khoản 28

2.3.4 Use Case khôi phục mật khẩu 30

2.3.5 Use Case thay đổi thông tin tài khoản 32

2.3.6 Use Case thay đổi mật khẩu 33

3.1.1 Lược đồ chức năng người dùng 39

3.1.2 Lược đồ chức năng bảo mật 43

3.1.3 Lược đồ chức năng phân loại 44

3.1.4 Lược đồ chức năng nhãn hàng 45

3.1.5 Lược đồ chức năng sản phẩm 45

3.1.6 Lược đồ chức năng cài đặt hệ thống 46

3.1.7 Lược đồ chức năng khách hàng 46

3.1.8 Lược đồ chức năng giỏ hàng 49

3.1.9 Lược đồ chức năng tỷ giá vận chuyển 50

3.1.10 Lược đồ chức năng địa chỉ giao hàng 50

3.1.11 Lược đồ chức năng đặt hàng 51

3.1.12 Lược đồ chức năng thanh toán 52

3.1.13 Lược đồ chức năng báo cáo doanh thu 52

3.1.14 Lược đồ chức năng đánh giá 53

3.2 Thiết kế cơ sở dữ liệu 56

3.2.2 Mô tả cơ sở dữ liệu 56

3.3.1 Giao diện trang quản lý 69

3.3.2 Giao diện trang cửa hàng 90

4.1 Xây dựng hệ thống học sâu 97

4.2 Tích hợp trong hệ thống 98

4.2.1 Công cụ tìm kiếm bằng hình ảnh 98

4.2.2 Quá trình huấn luyện mô hình học sâu 99

Hình 1 Kiến trúc ứng dụng 1

Hình 2 Kiến trúc hệ thống trong môi trường phát triển 2

Hình 3 Kiến trúc hệ thống trong môi trường vận hành 2

Hình 4 Mẫu thiết kế Singleton 3

Hình 5 Triển khai mẫu thiết kế Singleton 3

Hình 6 Mẫu thiết kế Builder 4

Hình 7 Triển khai mẫu thiết kế Builder 4

Hình 8 Mẫu thiết kế Strategy 5

Hình 9 Triển khai mẫu thiết kế Strategy 6

Hình 10 Mẫu thiết kế Template Method 7

Hình 11 Triển khai mẫu thiết kế Template Method 7

Hình 12 Chiến lược Read Through 8

Hình 15 Cơ chế hoạt động của phương thức OAuth2 10

Hình 27 Cách hoạt động của Heroku 18

Hình 32 Đặc trưng kết cấu trong CBIR 22

Hình 33 Google search by image 23

Hình 34 Mô hình mạng VGG16 24

Hình 35 Lược đồ Use Case 28

Hình 36 Lược đồ chức năng người dùng 39

Hình 37 Lược đồ tạo người dùng 39

Hình 38 Lược đồ kiểm tra email người dùng duy nhất 40

Hình 39 Lược đồ cập nhật người dùng 40

Hình 40 Lược đồ xoá người dùng 40

Hình 41 Lược đồ tải hình ảnh người dùng 41

Hình 42 Lược đồ xuất dữ liệu người dùng thành file CSV 41

Hình 43 Lược đồ xuất dữ liệu người dùng thành file Excel 41

Hình 44 Lược đồ xuất dữ liệu người dùng thành file PDF 42

Hình 45 Lược đồ phân trang dữ liệu người dùng 42

Hình 46 Lược đồ xác thực người dùng 43

Hình 47 Lược đồ cập nhật tài khoản cá nhân người dùng 43

Hình 48 Bảng ma trận uỷ quyền dựa trên vai trò 44

Hình 49 Lược đồ chức năng phân loại 44

Hình 50 Lược đồ chức năng nhãn hàng 45

Hình 51 Lược đồ chức năng sản phẩm 45

Hình 52 Lược đồ chức năng cài đặt hệ thống 46

Hình 53 Lược đồ đăng ký dành cho khách hàng 46

Hình 54 Lược đồ xác nhận đăng ký dành cho khách hàng 47

Hình 55 Lược đồ chức năng khách hàng dành cho quản lý 47

Hình 56 Lược đồ đăng nhập và đăng xuất dành cho khách hàng 48

Hình 57 Lược đồ đăng nhập thông qua Google dành cho khách hàng 48

Hình 58 Lược đồ quên mật khẩu dành cho khách hàng 49

Hình 59 Lược đồ chức năng giỏ hàng 49

Hình 60 Lược đồ chức năng tỷ giá vận chuyển 50

Hình 61 Lược đồ chức năng địa chỉ giao hàng 50

Hình 62 Lược đồ chức năng đặt hàng dành cho quản lý 51

Hình 63 Lược đồ hoàn trả đơn hàng 51

Hình 64 Lược đồ chức năng thanh toán 52

Hình 65 Lược đồ chức năng báo cáo doanh thu 52

Hình 66 Lược đồ quản lý đánh giá dành cho khách hàng 53

Hình 67 Lược đồ hiển thị đánh giá trong chi tiết sản phẩm 53

Hình 68 Lược đồ hiển thị danh sách đánh giá của sản phẩm 53

Hình 69 Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng 54

Hình 70 Lược đồ viết đánh giá sản phẩm 54

Hình 71 Lược đồ bình chọn đánh giá 55

Hình 72 Lược đồ thực thể 56

Hình 73 Trang quản lý – Giao diện lỗi 70

Hình 74 Trang quản lý – Giao diện đăng nhập 70

Hình 75 Trang quản lý – Giao diện đăng ký 71

Hình 76 Trang quản lý – Giao diện quên mật khẩu 71

Hình 77 Trang quản lý – Giao diện khôi phục mật khẩu 72

Hình 78 Trang quản lý – Giao diện thông tin cá nhân 72

Hình 79 Trang quản lý – Giao diện thay đổi mật khẩu 73

Hình 80 Trang quản lý – Giao diện cài đặt chung 73

Hình 81 Trang quản lý – Giao diện cài đặt tiền tệ 74

Hình 82 Trang quản lý – Giao diện cài đặt tiểu vùng 74

Hình 83 Trang quản lý – Giao diện cài đặt hệ thống mail 75

Hình 84 Trang quản lý – Giao diện cài đặt nội dung mail 75

Hình 85 Trang quản lý – Giao diện cài đặt thanh toán 76

Hình 86 Trang quản lý – Giao diện giám sát 76

Hình 87 Trang quản lý – Giao diện ghi nhật ký 77

Hình 88 Trang quản lý – Giao diện trang chủ 77

Hình 89 Trang quản lý – Giao diện thống kê 78

Hình 90 Trang quản lý – Giao diện doanh thu theo ngày 78

Hình 91 Trang quản lý – Giao diện doanh thu theo phân loại / nhãn hàng 79

Hình 92 Trang quản lý – Giao diện doanh thu theo sản phẩm 79

Hình 93 Trang quản lý – Giao diện trang quản lý quyền 80

Hình 94 Trang quản lý – Giao diện trang tạo / chỉnh sửa quyền 80

Hình 96 Trang quản lý – Giao diện trang thêm / chỉnh sửa vai trò 81

Hình 97 Trang quản lý – Giao diện trang quản lý người dùng 82

Hình 98 Trang quản lý – Giao diện trang thêm / chỉnh sửa người dùng 82

Hình 99 Trang quản lý – Giao diện trang quản lý phân loại 83

Hình 100 Trang quản lý – Giao diện trang thêm / chỉnh sửa phân loại 83

Hình 101 Trang quản lý – Giao diện trang quản lý nhãn hàng 84

Hình 102 Trang quản lý – Giao diện trang thêm / chỉnh sửa nhãn hàng 84

Hình 103 Trang quản lý – Giao diện trang quản lý sản phẩm 85

Hình 104 Trang quản lý – Giao diện trang thêm / chỉnh sửa sản phẩm 85

Hình 105 Trang quản lý – Giao diện quản lý khách hàng 86

Hình 106 Trang quản lý – Giao diện chỉnh sửa khách hàng 86

Hình 107 Trang quản lý – Giao diện quản lý câu hỏi 87

Hình 108 Trang quản lý – Giao diện chỉnh sửa câu hỏi 87

Hình 109 Trang quản lý – Giao diện quản lý đánh giá 88

Hình 110 Trang quản lý – Giao diện chỉnh sửa đánh giá 88

Hình 111 Trang quản lý – Giao diện quản lý đơn hàng 89

Hình 112 Trang quản lý – Giao diện chỉnh sửa đơn hàng 89

Hình 113 Trang cửa hàng – Giao diện trang chủ 90

Hình 114 Trang cửa hàng – Giao diện đăng ký 91

Hình 115 Trang cửa hàng – Giao diện đăng nhập 91

Hình 116 Trang cửa hàng – Giao diện quên mật khẩu 91

Hình 117 Trang cửa hàng – Giao diện chi tiết sản phẩm 92

Hình 118 Trang cửa hàng – Giao diện câu hỏi 92

Hình 119 Trang cửa hàng – Giao diện đánh giá 93

Hình 120 Trang cửa hàng – Giao diện giỏ hàng 93

Hình 121 Trang cửa hàng – Giao diện lịch sử mua hàng 94

Hình 122 Trang cửa hàng – Giao diện thông tin tài khoản 94

Hình 123 Trang cửa hàng – Giao diện quản lý đánh giá / câu hỏi đã viết 95

Hình 124 Trang cửa hàng – Giao diện quản lý địa chỉ giao hàng 95

Hình 125 Trang của hàng – Giao diện thêm / chỉnh sửa địa chỉ giao hàng 95

Hình 126 Trang cửa hàng – Giao diện thanh toán 96

Hình 127 Trang cửa hàng – Giao diện thanh toán qua thẻ tín dụng 96

Hình 128 Lược đồ cho quá trình trích xuất CBIR từ hình ảnh trong tập dữ liệu 97Hình 129 Thực hiện tìm kiếm trên hệ thống CBIR 98Hình 130 Tìm kiếm bằng hình ảnh 98Hình 131 Kết quả truy xuất hình ảnh dựa trên nội dung 99Hình 132 Kết quả tìm kiếm bằng hình ảnh 99Hình 133 Lên lịch biểu cho quá trình huấn luyện học sâu 100Hình 134 Cú pháp biểu thức Cron 100Hình 135 Một số biểu thức Cron tham khảo 101Hình 136 Import dữ liệu sử dụng MySQL Workbench 103Hình 137 Thay đổi kết nối đến MySQL 104Hình 138 Chạy chương trình trong IntelliJ 104Hình 139 Thay đổi cấu hình gửi thư 105Hình 140 Thay đổi cấu hình thanh toán qua PayPal 105Hình 141 Thay đổi cấu hình dịch vụ Google 106Hình 142 Thay đổi cấu hình dịch vụ Amazon AWS 106

Bảng 1 Ưu điểm và nhược điểm của chiến lược Read Through 8Bảng 2 Mô tả Use Case đăng ký tài khoản 28Bảng 3 Mô tả Use Case đăng nhập 29Bảng 4 Mô tả Use Case khôi phục mật khẩu 30Bảng 5 Use Case thay đổi thông tin tài khoản 32Bảng 6 Use Case thay đổi mật khẩu 33Bảng 7 Mô tả Use Case đăng xuất 34Bảng 8 Mô tả Use Case quản lý 35Bảng 9 Mô tả Use Case thêm 36Bảng 10 Mô tả Use Case chỉnh sửa 36Bảng 11 Mô tả Use Case xóa 37Bảng 12 Mô tả thuộc tính chung 56Bảng 13 Mô tả bảng users 56Bảng 14 Mô tả bảng privileges 57Bảng 15 Mô tả bảng roles 57Bảng 16 Mô tả bảng roles_privilegles 58Bảng 17 Mô tả bảng users_roles 58Bảng 18 Mô tả bảng verification_tokens 58Bảng 19 Mô tả bảng password_reset_tokens 58Bảng 20 Mô tả bảng user_locations 58Bảng 21 Mô tả bảng new_location_tokens 58Bảng 22 Mô tả bảng user_locations 59Bảng 23 Mô tả bảng persistent_logins 59Bảng 24 Mô tả bảng categories 59Bảng 25 Mô tả bảng brands 59Bảng 26 Mô tả bảng brands_categories 60Bảng 27 Mô tả bảng products 60Bảng 28 Mô tả bảng product_images 60Bảng 29 Mô tả bảng product_details 61Bảng 30 Mô tả bảng countries 61Bảng 31 Mô tả bảng states 61

Bảng 32 Mô tả bảng customers 61Bảng 33 Mô tả bảng addresses 62Bảng 34 Mô tả bảng currencies 63Bảng 35 Mô tả bảng shipping_rates 63Bảng 36 Mô tả bảng orders 63Bảng 37 Mô tả bảng order_details 64Bảng 38 Mô tả bảng order_tracks 64Bảng 39 Mô tả bảng shopping_carts 64Bảng 40 Mô tả bảng cart_items 65Bảng 41 Mô tả bảng wishlists 65Bảng 42 Mô tả bảng wishlist_items 65Bảng 43 Mô tả bảng quesions 65Bảng 44 Mô tả bảng question_votes 66Bảng 45 Mô tả bảng reviews 66Bảng 46 Mô tả bảng review_votes 66Bảng 47 Mô tả bảng resources 66Bảng 48 Mô tả bảng resource_bundles 67Bảng 49 Mô tả bảng articles 67Bảng 50 Mô tả bảng menus 67Bảng 51 Mô tả bảng settings 67Bảng 52 Mô tả bảng sections 68Bảng 53 Mô tả bảng articles_sections 68Bảng 54 Mô tả bảng brands_sections 68Bảng 55 Mô tả bảng categories_sections 68Bảng 56 Mô tả bảng products_sections 68Bảng 57 Mô tả bảng questions_sections 69Bảng 58 Mô tả bảng reviews_sections 69Bảng 59 Giải pháp cho quá trình huấn luyện mô hình học sâu 100

DANH MỤC KÝ TỰ VIẾT TẮT

KÝ TỰ VIẾT TẮT TỪ ĐẦY ĐỦ

CSDL Cơ sở dữ liệu

DB Database (Cơ sở dữ liệu)

HQTCSDL Hệ quản trị Cơ sở dữ liệu

DBMS Database Management System (Hệ quản trị Cơ sở dữ liệu)

CBIR Content-based image retrieval (Truy xuất hình ảnh dựa trên nội dung)

1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong thời đại số hóa ngày càng phát triển, việc tìm kiếm và mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta Với sự gia tăng đáng kể của các trang web bán hàng trực tuyến, việc tìm kiếm sản phẩm phù hợp và tìm hiểu thông tin về chúng là một thách thức lớn đối với người dùng.

Việc tìm kiếm và xử lý thông tin từ hàng triệu hình ảnh đòi hỏi một phương pháp hiệu quả và tự động để giúp người dùng khám phá sản phẩm và tìm kiếm các tùy chọn tương tự Điều này làm cho việc ứng dụng AI trong tìm kiếm hình ảnh tương đồng trở thành một nhu cầu cấp thiết để giải quyết vấn đề quy mô và đa dạng của dữ liệu hình ảnh Sử dụng AI để tìm kiếm hình ảnh tương đồng cho phép người dùng tìm kiếm dựa trên hình ảnh và thu được kết quả tương tự nhanh chóng và chính xác Điều này cung cấp một trải nghiệm mua sắm trực tuyến tiện lợi và tăng cường sự hài lòng của khách hàng

2 MỤC ĐÍCH CỦA ĐỀ TÀI

Mục đích của đề tài xây dựng hệ thống kinh doanh thiết bị điện tử trong lĩnh vực công nghệ thông tin là tạo ra một cơ chế hiệu quả để cung cấp và phân phối các sản phẩm điện tử Hệ thống này nhằm đáp ứng nhu cầu ngày càng tăng của thị trường công nghệ, mang đến cho khách hàng trải nghiệm mua sắm thuận tiện và đáng tin cậy Đồng thời, nó hỗ trợ doanh nghiệp trong việc quản lý kho hàng, tối ưu hóa nguồn lực và tăng cường quan hệ khách hàng để phát triển kinh doanh một cách bền vững

Qua việc khai thác sức mạnh của AI, hệ thống tìm kiếm hình ảnh tương đồng không chỉ giúp người dùng tiết kiệm thời gian trong việc tìm kiếm sản phẩm mong muốn mà còn cung cấp những gợi ý thông minh dựa trên sở thích và nhu cầu cá nhân Điều này mang lại lợi ích lớn cho cả người dùng và các doanh nghiệp bán hàng trực tuyến, giúp tăng cường trải nghiệm mua sắm và nâng cao khả năng tiếp cận với khách hàng

3 CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Đối Tượng Nghiên Cứu Để hoàn thiện đề tài này, em tiến hành nghiên cứu nhu cầu thực tế từ sự phát triển của các cửa hàng kinh doanh online cũng như từ các hệ thống thương mại điện tử lớn trong nước nói riêng và ngoài nước nói chung Đồng thời em cũng nghiên cứu các công

Với lý do như trên, nhóm đặt mục tiêu tạo ra ứng dụng có các chức năng cơ bản như sau:

• Spring Framework và các modules của nó trong ngôn ngữ lập trình Java, kiến trúc MVC và RESTful API để xây dựng một số chức năng cho hệ thống

• Thư viện Thymeleaf để thiết kế và xây dựng giao diện cho người dùng

• Cơ sở dữ liệu MySQL để lưu trữ dữ liệu cho hệ thống

• Spring Security và Spring OAuth để bảo mật cho hệ thống trong đăng nhập / đăng ký, tạo phân quyền và vai trò cho người dùng, …

• Các dịch vụ của Google, PayPal, Maxmind, … tích hợp trong hệ thống

• Nền tảng Heroku để triển khai vận hành và các dịch vụ AWS tích hợp kèm theo

• Nghiên cứu và phân tích các phương pháp học máy và mô hình học sâu để xử lý và trích xuất đặc trưng từ hình ảnh

• Xây dựng cơ sở dữ liệu hình ảnh và thực hiện quá trình huấn luyện mô hình để tạo ra các biểu diễn số học cho các hình ảnh

• Xây dựng và triển khai hệ thống tìm kiếm hình ảnh tương đồng trong website bán hàng, tích hợp công nghệ AI và các thuật toán phân loại và tìm kiếm tương tự

3.2 Phạm Vi Nghiên Cứu Ở phạm vi đề tài này, em tập trung phát triển và xây dựng hệ thống website kinh doanh đa dụng nhất có thể, không chỉ gói gọn trong sản phẩm thiết bị điện tử hay sản phẩm cụ thể nào khác để cho phép người dùng có sự linh hoạt nhất trong trong các chức năng của hệ thống nhất có thể, không chỉ gói gọn trong những chức năng thông thường của một hệ thống kinh doanh online mà còn nhiều tính năng khác Ngoài ra, hệ thống tìm kiếm hình ảnh tương đồng sẽ giúp người dùng tìm kiếm các sản phẩm tương tự một cách dễ dàng và nhanh chóng

4 KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

Trong quá trình hoàn thiện đề tài, em dự kiến sẽ đạt được những kết quả sau:

Xây dựng được một hệ thống website kinh doanh với những chức năng cơ bản như đã đề cập trong đề cương chi tiết.

Xây dựng được giao diện người dùng thân thiện, dễ sử dụng

Sử dụng được những chức năng bảo mật để tăng cường bảo mật cho hệ thống

Sử dụng được những dịch vụ bên thứ ba để hệ thống hoàn thiện và tốt hơn

Sử dụng các dịch vụ vận hành và học cách tối ưu hoá chi phí cho việc duy trì môi trường vận hành trong thực tế

5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Sau khi hoàn thiện đề tài, em sẽ tiếp tục rèn luyện, tiếp thu những đóng góp của thầy cô hướng dẫn cũng như phản biện để thực hiện triển khai những chức năng nâng cao, còn dang dở cũng như phát triển hệ thống lên một bước phát triển mới để có thể phát hành thực tế trong cuộc sống.

Khi đề tài em được áp dụng vào thực tế, khách hàng sẽ có một lựa chọn trong hệ thống website quản lý việc kinh doanh của họ dựa vào nhưng chức năng linh hoạt có được trong hệ thống.

PHẦN NỘI DUNG CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1.1 Thiết kế hệ thống

Kiến trúc trong từng spring boot app được kết hợp giữa mẫu thiết kế MVC cùng với kiến trúc N-Tier Layer Có luồng đi và các lớp xử lý trong từng layer như sau:

Hình 1 Kiến trúc ứng dụng

Hình 2 Kiến trúc hệ thống trong môi trường phát triển

1.1.3 Mẫu thiết kế sử dụng

1.1.3.1 Mẫu thiết kế Singleton a) Khái niệm

Singleton là một design pattern thuộc nhóm creational giúp tạo ra một lớp chỉ với một thực thế duy nhất, trong khi cung cấp điểm truy cập toàn cục cho thực thế đấy

Hình 4 Mẫu thiết kế Singleton b) Triển khai

Khi một bean được định nghĩa trong Spring và không có phần cấu hình nào khác xác định, nó sẽ được coi là singleton Điều này có nghĩa là yêu cầu một bean từ Spring Container, mặc định sẽ nhận được thể hiện duy nhất của bean đó

@FieldDefaults(level = AccessLevel.PRIVATE) public class ContextProvider implements ApplicationContextAware { static ApplicationContext context; public static @NotNull T getBean(Class clazz) { return context.getBean(clazz);

@Override public void setApplicationContext(@NotNull ApplicationContext context) throws BeansException { setContext(context);

} private static void setContext(ApplicationContext context) {

Hình 5 Triển khai mẫu thiết kế Singleton 1

1.1.3.2 Mẫu thiết kế Builder a) Khái niệm

1 Triển khai mẫu thiết kế Singleton lấy thể hiện duy nhất của bất kỳ Bean trong Spring Context

Ngày đăng: 01/10/2024, 12:19

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Registration with Spring Security – Password Encoding Baeldung. (Ngày không rõ). Registration with Spring Security – Password Encoding.Truy cập từ https://www.baeldung.com/spring-security-registration-password-encoding Link
2. Prevent Brute Force Authentication Attempts with Spring Security Baeldung. (Ngày không rõ). Prevent Brute Force AuthenticationAttempts with Spring Security. Truy cập từhttps://www.baeldung.com/spring-security- prevent-brute-force- authentication Link
3. Registration – Password Strength and Rules Baeldung. (Ngày không rõ). Registration – Password Strength and Rules. Truy cập từhttps://www.baeldung.com/spring-security-registration-password-strength-rules Link
4. Spring Security CSRF Token JavaDevJournal. (Ngày không rõ). Spring Security CSRF Token. Truy cập từhttps://www.javadevjournal.com/spring- security/spring-security-csrf- token/ Link
5. Spring Security Brute Force Protection JavaDevJournal. (Ngày không rõ). Spring Security Brute Force Protection. Truy cập từhttps://www.javadevjournal.com/spring-security/spring-security-brute-force- protection/ Link

HÌNH ẢNH LIÊN QUAN

Hình 2. Kiến trúc hệ thống trong môi trường phát triển - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 2. Kiến trúc hệ thống trong môi trường phát triển (Trang 30)
Hình 8. Mẫu thiết kế Strategy - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 8. Mẫu thiết kế Strategy (Trang 33)
Hình 31. Cách hoạt động của PayPal - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 31. Cách hoạt động của PayPal (Trang 48)
Hình 33. Google search by image - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 33. Google search by image (Trang 51)
Hình 35. Lược đồ Use Case - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 35. Lược đồ Use Case (Trang 56)
Hình 52. Lược đồ chức năng cài đặt hệ thống - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 52. Lược đồ chức năng cài đặt hệ thống (Trang 74)
Hình 54. Lược đồ xác nhận đăng ký dành cho khách hàng - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 54. Lược đồ xác nhận đăng ký dành cho khách hàng (Trang 75)
Hình 58. Lược đồ quên mật khẩu dành cho khách hàng - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 58. Lược đồ quên mật khẩu dành cho khách hàng (Trang 77)
Hình 64. Lược đồ chức năng thanh toán - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 64. Lược đồ chức năng thanh toán (Trang 80)
Hình 65. Lược đồ chức năng báo cáo doanh thu - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 65. Lược đồ chức năng báo cáo doanh thu (Trang 80)
Hình 69. Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 69. Lược đồ mở khoá đánh giá sản phẩm trong chi tiết đơn hàng (Trang 82)
Hình 71. Lược đồ bình chọn đánh giá - xây dựng hệ thống kinh doanh thiết bị điện tử ứng dụng học sâu truy xuất hình ảnh dựa trên nội dung
Hình 71. Lược đồ bình chọn đánh giá (Trang 83)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w