Để 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