1. Trang chủ
  2. » Cao đẳng - Đại học

Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)

103 21 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ thống khuyến nghị dành cho thương mại điện tử
Tác giả Đỗ Ngọc Cường, Đặng Ngọc Duy
Người hướng dẫn TS. Nguyễn Trịnh Đông
Trường học Đại học quốc gia tp. Hồ Chí Minh
Chuyên ngành Kỹ sư ngành kỹ thuật phần mềm
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 103
Dung lượng 6,03 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đề tài hướng đến xây dựng một hệ thống khuyến nghị độc lập với các hệ thống thương mại điện tử, khi các trang thương mại điện tử cónhu cầu, sẽ kết nối đến hệ thống này để trao đổi thông

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

ĐỖ NGỌC CƯỜNG ĐẶNG NGỌC DUY

KHÓA LUẬN TỐT NGHIỆP

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

ĐỖ NGỌC CƯỜNG – 18520542 ĐẶNG NGỌC DUY – 18520655

KHÓA LUẬN TỐT NGHIỆP

Trang 3

THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………ngày ……… của Hiệu trưởng Trường Đại học Công nghệ Thông tin

1 ……… - Chủ tịch

2 ……… - Thư ký

3 ……… - Ủy viên

4 ……… - Ủy viên

Trang 4

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập - Tự Do - Hạnh Phúc

TP.HCM, ngày……tháng… năm……

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ HƯỚNG DẪN)

Tên khóa luận:

HỆ THỐNG KHUYẾN NGHỊ DÀNH CHO THƯƠNG MẠI ĐIỆN TỬ

Nhóm SV thực hiện: Cán bộ hướng dẫn:

Đỗ Ngọc Cường 18520542 TS NGUYỄN TRỊNH ĐÔNG

Đặng Ngọc Duy 18520655

Trang 5

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Số trang Số chương _

Số bảng số liệu Số hình vẽ

Số tài liệu tham khảo Sản phẩm _

Một số nhận xét về hình thức cuốn báo cáo:

………

………

………

………

2 Về nội dung nghiên cứu: ………

………

………

………

3 Về chương trình ứng dụng: ………

………

………

………

………

4 Về thái độ làm việc của sinh viên: ………

Trang 6

Đánh giá chung:Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư/

cử nhân, xếp loại Giỏi/ Khá/ Trung bình

Điểm từng sinh viên:

Trang 7

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc Lập - Tự Do - Hạnh Phúc

TP.HCM, ngày……tháng… năm……

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ PHẢN BIỆN)

Tên khóa luận:

HỆ THỐNG KHUYẾN NGHỊ DÀNH CHO THƯƠNG MẠI ĐIỆN TỬ

Nhóm SV thực hiện: Cán bộ phản biện:

Đỗ Ngọc Cường 18520542

Đặng Ngọc Duy 18520655

Trang 8

Đánh giá Khóa luận

1 Về cuốn báo cáo:

Số trang Số chương _

Số bảng số liệu Số hình vẽ _

Số tài liệu tham khảo Sản phẩm _

Một số nhận xét về hình thức cuốn báo cáo:

………

………

………

2 Về nội dung nghiên cứu: ………

………

………

………

3 Về chương trình ứng dụng: ………

………

………

4 Về thái độ làm việc của sinh viên: ………

Trang 9

Đánh giá chung:Khóa luận đạt/không đạt yêu cầu của một khóa luận tốt nghiệp kỹ sư/

cử nhân, xếp loại Giỏi/ Khá/ Trung bình

Điểm từng sinh viên:

Trang 10

LỜI CẢM ƠN

Sau khi trải qua một kỳ học tập cũng như suốt quá trình gắn bó tại trườngĐại học Công Nghệ Thông Tin, nhóm chúng em xin gửi lời cảm ơn đến tất cả cácthầy cô trong trường vì đã quan tâm, giúp đỡ, hướng dẫn tận tình cho chúng em

Đặc biệt là thầy Nguyễn Trịnh Đông vì đã tận tình và trực tiếp giảng dạynhóm chúng em, những lời góp ý cũng như truyền đạt của thầy đã góp phần ảnhhưởng rất lớn tới định hướng đồ án của nhóm em Trong quá trình thực hiện cũngnhư quá trình làm báo cáo, nhóm chúng em khó lòng tránh khỏi những sai sót,chúng em mong thầy bỏ qua Cảm ơn thầy vì đã luôn động viên và sát cánh bênchúng em từ những bước đi ban đầu cho tới những khó khăn gặp phải trong quátrình làm việc Những lời động viên hay những kiến thức quý báu của thầy sẽ là nềntảng, hậu phương vững chắc chắp cánh cho tụi em phát triển trên con đường sựnghiệp sau này

Chúng em xin chân thành cảm ơn!

Trang 11

CHƯƠNG 3: HỆ THỐNG KHUYẾN NGHỊ 22

Trang 12

3.1 Giới thiệu 22

3.2.2 Knowledge Discovery in Database (KDD) 23

3.3.1 Khuyến nghị dựa trên các luật kết hợp 24

3.3.5 Khuyến nghị linh hoạt dựa trên các hành vi của người dùng 313.4 Hướng phát triển và sử dụng dữ liệu trong ứng dụng của nhóm 34

4.1.4 Xác định không gian địa lý hoạt động và các thuộc tính của

4.1.5 Xác định mối quan hệ giữa sự vật và sự việc trong không gian

4.1.6 Phạm vi kiến thức để giải bài toán (chuyên môn, nghiệp vụ) 39

Trang 13

4.2.1.5 Physical view 434.2.2 Các mục tiêu và ràng buộc về kiến trúc 43

Trang 15

DANH MỤC HÌNH

Hình 2.1.3 Kiến trúc hệ thống Flutter 8Hình 2.1.4.1 Ví dụ StatefulWidget 10Hình 2.1.4.2 Ví dụ StatelessWidget 11Hình 2.1.5 Clean Architecture 12Hình 2.2.3 Mô hình MVC trong ASP.NET Core 15Hình 2.3.1: Logo SQL Server 16Hình 2.3.3: Mô hình của SQL Server 16Hình 2.4.1: Khái niệm Python 18

Hình 2.4.3: Google Colab 21Hình 4.1.5 Hình ảnh sơ đồ cơ cấu tổ chức 39Hình 4.2.2 Schedule Gantt 46

Hình 4.2.5 Sơ đồ ngữ cảnh 54Hình 4.2.5.1 Sơ đồ tuần tự “Integrate recommendation service” 55Hình 4.2.5.2 Sơ đồ tuần tự “Người dùng tạo đơn hàng” 55Hình 4.2.5.3 Sơ đồ tuần tự “Người dùng thanh toán giỏ hàng” 56Hình 4.2.5.4 Sơ đồ tuần tự “Người dùng thêm sản phẩm” 57Hình 4.2.5.5 Sơ đồ tuần tự “ Người dùng quản lý giá thành” 57Hình ảnh 4.2.5 Sơ đồ hoạt động “Người dùng tạo đơn hàng” 58

Trang 16

Hình ảnh 4.2.5 Sơ đồ hoạt động “Người dùng thanh toán” 59Hình ảnh 4.2.5 Sơ đồ hoạt động “Người dùng quản lý thông tin sản phẩm” 60Hình ảnh 4.2.5 Sơ đồ hoạt động “Người dùng quản lý giá thành” 61Hình 4.3: Thiết kế cơ sở dữ liệu 62Hình ảnh 4.4 Kiến trúc hệ thống 71Hình 5.1.1.1: ma trận đầu vào của ứng dụng 77Hình 5.1.1.2: ma trận tương quan giữa người dùng 78

Trang 17

DANH MỤC BẢNG

Bảng 1 - Các loại dữ liệu sử dụng trong hệ thống khuyến nghị 24

Trang 18

DANH MỤC TỪ VIẾT TẮT

Trang 19

TÓM TẮT KHÓA LUẬN

Hệ thống thương mại điện tử toàn cầu đã phát triển sâu rộng trong những nămgần đây, Việt Nam cũng không nằm ngoài xu thế đó, đặc biệt trong giai đoạn dịchbệnh Thương mại điện tử đã khẳng định vai trò to lớn trong giao thương Bên cạnh

sự những ưu điểm đó, thương mại điện tử còn một số vấn đề như thông tin hàng hóaphụ thuộc vào sự trung thực của người bán, khách hàng không trực tiếp xem hànghóa Hàng giả và hàng thật khó phân biệt, do chưa áp dụng được truy xuất nguồngốc Đồng thời, quá trình vận chuyển hàng hóa cũng nảy sinh nhiều vấn đề nhưhàng bị tráo, bị va đập gây sứt mẻ, trong khi đó khách hàng là người lãnh nhận rủi

ro Tức là chất lượng cung cấp dịch vụ gặp nhiều vấn đề Một khía cạnh nữa, khixây dựng trang web thương mại điện tử, có một số mục tiêu phải được tính đến, mộttrong số đó là cách tăng hiệu quả của trang web để đảm bảo lượt truy cập của kháchhàng và đạt được lợi nhuận cần thiết Đối với những nhà cung cấp trung thực muốnnhận phản hồi của khách hàng để phục vụ được tốt hơn, bán được nhiều hàng hơn,với công nghệ và chi phí hiện tại khó có thể thu thập các ý kiến khách hàng riêng lẻhoặc khảo sát trên thị trường

Hiện nay có một phương pháp nổi bật để phân tích các nhận định, đánh giá củakhách hàng khi mua hàng trên hệ thống thương mại điện tử Dựa trên các phân tíchcác dữ liệu, khách hàng có thông tin về sản phẩm và chất lượng dịch vụ nhằm mụcđích khuyến khích khách hàng lựa chọn được sản phẩm và dịch vụ chất lượng.Đồng thời, giúp cho người bán hàng có một công cụ nắm bắt được thị hiếu củakhách hàng tốt hơn để gia tăng doanh thu

Bên cạnh những trang thương mại điện tử lớn như Amazon, Alibaba, Tiki,Shopee, v.v còn có nhiều công ty, hệ thống chuỗi cũng mong muốn xây dựng cáctrang thương mại điện tử của riêng họ Tuy nhiên, không phải hệ thống thương mạiđiện tử nào cũng có khả năng tài chính và nhân lực để xây dựng riêng cho họ một

hệ thống khuyến nghị Một bài toán đặt ra liệu có thể xây dựng một hệ thốngkhuyến nghị dành cho các trang thương mại điện tử có nguồn lực hữu hạn mà vẫn

Trang 20

có đầy đủ các chức năng về phân tích, đánh giá và đưa ra khuyến nghị dựa trên cáchành vi và phản hồi của khách hàng?

Xuất phát từ lý do trên chúng em lựa chọn đề tài “Hệ thống khuyến nghị dành

cho thương mại điện tử” Đề tài hướng đến xây dựng một hệ thống khuyến nghị

độc lập với các hệ thống thương mại điện tử, khi các trang thương mại điện tử cónhu cầu, sẽ kết nối đến hệ thống này để trao đổi thông tin Đề tài tập trung tìm hiểucác phương pháp khuyến nghị trong hệ thống thương mại điện tử sau đó áp dụngthử nghiệm trên ứng dụng bán hàng di động Khóa luận được tổ chức thành nămchương Chương 1 giới thiệu tổng quát về đề tài, phạm vi nghiên cứu, những kiếnthức áp dụng trong khóa luận và kết quả hướng tới Chương 2 trình bày về các côngnghệ và kiến thức sử dụng trong khóa luận gồm có ngôn ngữ lập trình Dart và nềntảng Flutter để xây dựng phần frontend cho ứng dụng trong môi trường di động.Phía backend, khóa luận sử dụng công nghệ NET của Microsoft Cụ thể, khóa luận

sử dụng ASP.NET để xây dựng các mô đun, Webservice, xử lý, truy vấn và cập nhật

dữ liệu lên Cơ sở dữ liệu Chương 3 Khóa luận trình bày các yếu tố liên quan vàcác cách tiếp cận cũng như thuật toán được triển khai trong hệ thống khuyến nghị

Để phát triển hệ thống khuyến nghị, hiện nay có một số cách tiếp cận chính như

Collaborative Recommender system, Content-based recommender system, Demographic based recommender system, Knowledge based recommender system

và Community-based, bên cạnh đó còn một số cách tiếp cận khác [tài liệu 1] Trong

khóa luận này chúng em sử dụng phương pháp Collaborative Filtering để triển

khai Chương 4 Phân tích thiết kế hệ thống Trong chương này, Khóa luận phân tíchcác chức năng của hệ thống khuyến nghị, người dùng và dữ liệu để thiết kế hệthống Cuối cùng là Chương 5 trình bày kết quả đạt được và hướng phát triển tiếptheo

Qua quá trình thực hiện Khóa luận, chúng em đã nắm được nhiều kiến thức vềlĩnh vực khai phá tri thức, quy trình phát triển phần mềm, đặc biệt phần mềm dựatrên việc khai thác thông tin người dùng và các sản phẩm thương mại điện tử

Trang 21

Những kiến thức trong khóa luận giúp chúng em rất nhiều trong việc nâng cao trình

độ và định hướng công việc trong tương lai

Trang 22

CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN

Cũng vì thế việc tối đa hóa các giao dịch trên các ứng dụng E-Commerce cũng

là một bài toán cần phải giải quyết và cách giải quyết bài toán này có thể thông quacác ứng dụng khuyến nghị cho hệ thống

ra ngoài

Trang 23

Tiếp theo sau giai đoạn này là việc tối đa hóa số lượng các giao dịch thông qua

hệ thống khuyến nghị tích hợp vào chương trình Hệ thống này sẽ hỗ trợ dự đoáncác sản phẩm mà người dùng có thể thích hoặc sẽ mua tiếp theo để khuyến nghị chongười dùng

1.2.3 Phạm vi nghiên cứu

Phạm vi bài toán chỉ bao gồm các nghiệp vụ của một ứng dụng của một ứngdụng E-commerce hỗ trợ việc mua sắm trực tuyến Ứng dụng không đi sâu vào cácnghiệp vụ nhập kho, quản lý nhân viên

Bài toán cũng xử lý thông tin của người dùng để có thể xây dựng hệ thốngkhuyến nghị đưa tới người dùng các sản phẩm mà người dùng có thể thích nhất

1.2.4 Nội dung nghiên cứu

Các dịch vụ liên quan đến E-commerce với các tính năng cơ bản của một ứngdụng buôn bán hàng hóa trực tuyến Ứng dụng này giúp cho các chủ cửa hàng trựctuyến có thể quản lý hàng hóa của mình, đồng thời là nơi cho các người dùng phổthông có thể mua hàng hóa với trải nghiệm tốt nhất khi mua hàng online

Hệ thống khuyến nghị cũng là chủ đề lớn trong lần làm khóa luận lần này vớimục đích là tối ưu hóa trải nghiệm của người dùng Cùng với E-commerce app và

hệ thống khuyến nghị sẽ cho thấy được khả năng sử dụng dữ liệu của người pháttriển cũng như là khả năng đáp ứng nhu cầu cho các ứng dụng hiện tại

1.2.5 Kết quả hướng tới

Chủ shop: ứng dụng hỗ trợ chủ cửa hàng quản lý hàng hóa một cách tiện lợi,nhanh chóng, tạo ra các coupon để thu hút người dùng

Về phía khách hàng phổ thông: Ứng dụng hỗ trợ mua hàng trực tuyến với quytrình nhanh chóng, đơn giản, theo dõi tình trạng đơn hàng một cách chi tiết, nângcao trải nghiệm người dùng với giao diện tiện dụng và dễ sử dụng

Về phía ứng dụng: phải cho người dùng trải nghiệm tốt và khuyến nghị cácmặt hàng đúng, hợp nhu cầu của khách hàng vào lúc hiện tại

Trang 24

1.3 Công cụ sử dụng

Trong quá trình xây dựng phần mềm, nhóm đã sử dụng các phần mềm sau:

● Visual Studio IDE: IDE hỗ trợ xây dựng các ứng dụng liên quan tới.NET (server)

● Visual Studio Code: hỗ trợ xây dựng ứng dụng giao diện người dùng(Flutter)

● Mysql server management: hỗ trợ nhóm lưu trữ dữ liệu cũng như làcác thao tác trên cơ sở dữ liệu

● Google Colab: hỗ trợ nhóm xây dựng các model, trực quan hóa dữliệu, training các bảng dữ liệu để xây dựng hệ thống khuyến nghị

Trang 25

CHƯƠNG 2: CÔNG NGHỆ TRIỂN KHAI

Chương này Khóa luận trình bày các công nghệ nền tảng để phát triển hệ thống.Mục 2.1 giới thiệu Flutter và Dart để xây dựng ứng dụng trên thiết bị di động, ứngdụng này sẽ hiển thị các mặt hàng để khách hàng mua hàng hóa, nhận xét, và phảnhồi thông tin về hàng hóa và chất lượng dịch vụ Mục 2.2 giới thiệu công nghệ.NET và các kiến thức liên quan, Khóa luận sử dụng ASP.NET để xây dựng phầnBackend cho ứng dụng Tiếp theo, Mục 2.3 trình bày về SQL Server, máy chủ cơ sở

dữ liệu này lưu trữ các thông tin được lấy từ khách hàng, dữ liệu đã xử lý để phảnhồi lại cho ứng dụng di động Cuối cùng là mục Python, nhờ tính ưu việt củaPython trong xử lý dữ liệu trong lĩnh vực học máy, Khóa luận sử dụng Python để xử

2.1.2 Ưu nhược điểm của Flutter và Dart

Các nhà phát triển tại Google và các nơi khác sử dụng Dart để tạo các ứng dụngchất lượng cao, quan trọng cho iOS, Android và web Với các tính năng nhắm đến

sự phát triển phía khách hàng, Dart rất phù hợp cho cả ứng dụng di động và web.Dart giúp bạn tạo ra những trải nghiệm đẹp, chất lượng cao trên tất cả các màn hình:

● Một ngôn ngữ được tối ưu hóa cho client

● Framework mạnh mẽ

Trang 26

● Công cụ linh hoạt

2.1.3 Kiến trúc Flutter

Flutter được thiết kế như một hệ thống nhiều lớp, có thể mở rộng Nó tồn tạidưới dạng một loạt các thư viện độc lập mà mỗi thư viện phụ thuộc vào lớp bêndưới Không có lớp nào có quyền truy cập đặc quyền vào lớp bên dưới và mọi phầncủa mức khung được thiết kế để trở thành tùy chọn và có thể thay thế

Hình 2.1.3 Kiến trúc hệ thống Flutter

● Embedder: Platform-specific:

Đối với hệ điều hành cơ bản, các ứng dụng Flutter được đóng gói giống như bất

kỳ ứng dụng gốc nào khác Embedder Platform-specific cung cấp một điểm nhập;

Trang 27

phối hợp với hệ điều hành cơ bản để truy cập vào các dịch vụ như hiển thị bề mặt,khả năng truy cập và đầu vào; và quản lý vòng lặp sự kiện tin nhắn Trình nhúngđược viết bằng ngôn ngữ phù hợp với nền tảng: hiện tại là Java và C ++ choAndroid, Objective-C / Objective-C ++ cho iOS và macOS, và C ++ cho Windows

và Linux Sử dụng công cụ nhúng, mã Flutter có thể được tích hợp vào ứng dụnghiện có dưới dạng mô-đun hoặc mã có thể là toàn bộ nội dung của ứng dụng Flutterbao gồm một số trình nhúng cho các nền tảng mục tiêu chung

● Flutter Engine:

Cốt lõi của Flutter là Flutter Engine, phần lớn được viết bằng C ++ và hỗ trợcác nguyên tắc cần thiết để hỗ trợ tất cả các ứng dụng Flutter Động cơ chịu tráchnhiệm sắp xếp các cảnh tổng hợp bất cứ khi nào cần sơn một khung mới Nó cungcấp triển khai cấp thấp của API cốt lõi của Flutter, bao gồm đồ họa, bố cục văn bản,tệp và mạng I / O, hỗ trợ trợ năng, kiến trúc plugin và chuỗi công cụ biên dịch vàthời gian chạy Dart

● Flutter Framework:

Flutter Framework , cung cấp một framework hiện đại được viết bằng ngôn ngữDart Nó bao gồm một bộ thư viện nền tảng, bố cục và nền tảng phong phú, baogồm một loạt các lớp Làm việc từ dưới lên trên, gồm:

Foundation classes và các dịch vụ khối xây dựng như animation, painting, andgestures cung cấp các nội dung trừu tượng thường được sử dụng trên nền tảng cơbản

Rendering layer cung cấp một sự trừu tượng để xử lý bố cục Với lớp này, bạn

có thể xây dựng một cây các đối tượng có thể kết xuất Bạn có thể thao tác động cácđối tượng này, với cây tự động cập nhật bố cục để phản ánh các thay đổi của bạn.Widgets layer là một phần trừu tượng hóa thành phần Mỗi đối tượng kết xuấttrong lớp kết xuất có một lớp tương ứng trong lớp vật dụng Ngoài ra, lớp vật dụng

Trang 28

cho phép bạn xác định tổ hợp các lớp mà bạn có thể sử dụng lại Đây là lớp mà tại

đó mô hình lập trình phản ứng được giới thiệu

Các thư viện Material và Cupertino cung cấp các bộ điều khiển toàn diện sửdụng các thành phần native của lớp widget để triển khai ngôn ngữ thiết kế Materialhoặc iOS

2.1.4 Một số khái niệm cơ bản của Flutter

Class main extends StatefulWidget

Và để một state cần có thể render được thì phải override các phương thức buildcủa state đó với cú pháp:

@override

Widget build(buildcontext context)

Và cuối cùng để có thể đổi state của widget thì sẽ cập nhật thông qua phươngthức setState() của widget

Các chức năng nên sử dụng stateful Widget là:

Trang 29

Hình 2.1.4.1 Ví dụ StatefulWidget

● StatelessWidget

Stateless Widget là một loại widget tĩnh và không thể tự thay đổi được những gì

mà nó hiển thị sau khi render

Để có thể tạo ra một Stateless Widget cần phải kế thừa từ lớp StateLess widget của flutter và cần phải override lại một lớp build để có thể render được widget

Class main extends StatelessWidget

@override

Widget build (buildcontext context)

Stateless widget không thể tự thay đổi được chính nó nhưng nếu widget cha

thay đổi thì stateless widget sẽ được khởi tạo lại

Các trường hợp nên sử dụng StateLess Widget:

Hình 2.1.4.2 Ví dụ StatelessWidget

2.1.5 Clean Architecture

Clean Architecture được xây dựng dựa trên tư tưởng "độc lập" kết hợp với cácnguyên lý thiết kế hướng đối tượng(đại diện tiêu biểu là Dependency Inversion).Độc lập ở đây nghĩa là việc project không bị phụ thuộc vào framework và các công

cụ sử dụng trong quá trình kiểm thử

Trang 30

Kiến trúc của Clean Architecture chia thành 4 layer với một quy tắc phụ thuộc.Các layer bên trong không nên biết bất kỳ điều gì về các layer bên ngoài Điều này

có nghĩa là nó có quan hệ phụ thuộc nên "hướng" vào bên trong Nhìn vào hình vẽminh họa sau đây:

Hình 2.1.5 Clean Architecture

● Entities: là khái niệm dùng để mô tả các Business Logic Đây là layer quan

trọng nhất, là nơi bạn thực hiện giải quyết các vấn đề - mục đích khi xâydựng app Layer này không chứa bất kỳ một framework nào, bạn có thể chạy

nó mà không cần emulator Nó giúp bạn dễ dàng test, maintain và developphần business logic

● Usecase: chứa các rule liên quan trực tiếp tới ứng dụng cục bộ

(application-specific business rules)

● Interface Adapter: tập hợp các adapter phục vụ quá trình tương tác với các

công nghệ

Trang 31

● Framework and Drivers: chứa các công cụ về cơ sở dữ liệu và các

framework, thông thường bạn sẽ không phải lập trình nhiều ở tầng này Tuynhiên cần chắc chắn về mức ưu tiên sử dụng các công cụ này trong project

2.1.5.1 Ưu điểm

● Mạch lạc - dễ xem (bản gốc ghi screaming với dụng ý là chỉ cần nhìn cấutrúc package cũng có thể hiểu được mục đích và cơ chế hoạt động của ứngdụng)

● Linh hoạt - thể hiện ở khả năng độc lập, không phụ thuộc vào framework,database, application server

● Indirect - quá nhiều interface

● Cồng kềnh - thể hiện ở việc có quá nhiều class so với các project cùng mụctiêu (tuy nhiên các class được thêm vào đều có chủ ý và đáp ứng đúng quyđịnh khi triển khai kiến trúc)

2.2 Hệ thống NET

2.2.1 Khái niệm

.NET là một nền tảng lập trình được phát triển bởi Microsoft, chạy trên hệ điềuhành Microsoft Window .NET không phải là ngôn ngữ lập trình, mà là nền tảngcho phép các ngôn ngữ lập trình khác nhau như C# sử dụng để tạo nên các website,ứng dụng trên Internet và bao gồm một thư viện lớp lớn có tên là Framework ClassLibrary – viết tắt là FCL

Trang 32

.NET Framework được xem là một thành quả tối ưu được dựng nên từ các nhàphát triển của Microsoft nhằm tạo ra một nền tảng cho việc xây dựng cũng như triểnkhai nhanh chóng các ứng dụng web và dịch vụ Các ngôn ngữ được sử dụng trênnền tảng NET gồm có C#, VB.Net.

2.2.2 Ưu nhược điểm của NET

Theo như các ý ở trên NET là một môi trường hoàn thiện và đầy đủ đặc biệtcác các ứng dụng web .NET hỗ trợ rất nhiều từ tạo api và deployment kèm theo đó

là các thư viện hỗ trợ rất mạnh vì vậy nếu làm web app mà bỏ qua NET có thể làmột bất lợi lớn Và nhóm chọn NET với 2 tiêu chí:

● Thuận tiện cho việc deploy

● dễ mở rộng chiều ngang

2.2.3 Kiến trúc MVC của NET

MVC là tên gọi tắt của Model – View – Controller – một mẫu kiến trúc(architectural pattern) lâu đời và rất phổ biến trong phát triển phần mềm

Mẫu kiến trúc MVC được áp dụng rộng rãi trong ứng dụng web, desktop vàmobile Trên thực tế, mẫu MVC nguyên bản vốn được xây dựng dành cho ứng dụngvới giao diện đồ họa tương tự ứng dụng desktop chứ không phải cho ứng dụng web.Tuy nhiên, hiện nay mẫu kiến trúc này được sử dụng rộng rãi nhất trong các webframework

Tuy nhiên, dù vận dụng ở đâu và theo cách nào, mẫu này cũng hướng tới phântách việc biểu diễn dữ liệu khỏi quản lý và xử lý dữ liệu Để tạo ra sự phân tách này,mẫu MVC phân chia ứng dụng ra 3 thành phần với nhiệm vụ cơ bản như sau:

● Model: dữ liệu và trạng thái của ứng dụng

● View: khuôn mẫu dành cho hiển thị dữ liệu

● Controller: cập nhật model và lựa chọn view

Trang 33

Hình 2.2.3 Mô hình MVC trong ASP.NET Core

2.3 SQL Server

2.3.1 Khái niệm

SQL server (tên đầy đủ: Microsoft SQL Server) là một loại phần mềm đượcphản triển bởi microsoft được sử dụng để lưu trữ dữ liệu dựa trên tiêu chuẩnRDBMS

SQL Server cung cấp đầy đủ các công cụ cho việc quản lý từ giao diện ngườidùng (GUI), đến sử dụng các câu truy vấn SQL SQL Server hỗ trợ nhiều nền tảng

đi kèm như là ASP.NET, C# để xây dựng winform và nếu để độc lập thì cũng có thểhoạt động riêng lẻ

Trang 34

Hình 2.3.1: Logo SQL Server

2.3.2 Ưu nhược điểm của SQL Server

Kèm theo các điều kiện ở trên SQL Server hỗ trợ rất tốt từ việc phát triển sảnphẩm, ví dụ như là sql, hỗ trợ các framework như là entity framework ở trong các

mô hình NET, dễ dàng truy xuất dữ liệu bằng các câu SQL, v.v cho tới việcdeployment sản phẩm trên azure bằng SQL Server nhờ cùng cấu trúc nên có thể dễdàng mua một máy chủ SQL server trên azure và deploy

Trang 35

Các thành phần cơ bản của SQL server.

- Database Engine: chứa dữ liệu dưới dạng table, có thể tự điều chỉnh

- Integration Services: là tập hợp các đối tượng lập trình, các công cụ đểsao chép, di chuyển và chuyển đổi dữ liệu

- Analysis Services: dịch vụ phân tích dữ liệu của Microsoft

- Notification Services: nền tảng cho việc phát triển và triển khai các

ứng dụng soạn và gửi thông báo Có chức năng thông báo tới nhiềuthiết bị theo lập trình lập lịch

- Reporting Services: tạo, quản lý , triển khai báo cáo.

- Full Text Search Services: thành phần đặc biệt đánh chữ mục dữ

liệu văn bản không cấu trúc được lưu trong SQL server

- Service Broker: môi trường lập trình, tạo ra các ứng dụng trong việc

Trang 36

Hình 2.4.1: Khái niệm Python

● Tính năng chính của Python:

○ Ngôn ngữ lập trình nhập môn: hướng đến sự đơn giản và dễ hiểu

nên cấu trúc Python khá rõ ràng, cho phép viết mã lệnh với số lần gõphím tối thiểu Ngày nay, Python được đánh giá là ngôn ngữ lý tưởngcho việc bắt đầu học lập trình

○ Mã nguồn mở và hoàn toàn miễn phí: Khác với nhiều ngôn ngữ lập

trình bậc cao, Python cho phép sử dụng một cách miễn phí tất cả phầnmềm, chương trình được viết Mã nguồn mở sở hữu cộng đồng đôngđảo, giúp bạn giải đáp mọi thắc mắc và liên tục cập nhật, cải thiện

○ Tương thích nhiều nền tảng: Python dễ dàng tương thích với nhiều

nền tảng như Windows, MacOS, Linux Thậm chí là di chuyển qua lạigiữa các nền tảng cũng không gặp nhiều khó khăn

○ Khả năng nhúng và mở rộng: Có thể kết hợp cùng các ngôn ngữ lập

trình khác để phát triển các ứng dụng phức tạp

○ Tự động chuyển đổi code: Khi dùng Python, người sử dụng hoàn

toàn không phải lo các vấn đề về quản lý bộ nhớ, dọn dẹp dữ liệu…Python sẽ tự động chuyển code sang ngôn ngữ máy tính có thể hiểu

Trang 37

○ Thư viện lớn: Nhờ số lượng thư viện khổng lồ của mình Python hoàn

toàn đáp ứng được mọi nhu cầu lập trình khác nhau

○ Ngôn ngữ lập trình hướng đối tượng: Dù được đơn giản hóa cho

người mới học song Python vẫn giữ bản chất hướng đối tượng Giảiquyết các vấn đề trong lập trình một cách trực quan, dễ hiểu

2.4.2 Ưu nhược điểm của hệ thống Python

● Ưu điểm:

○ Đơn giản: Cú pháp đơn giản giúp cho người lập trình dễ dàng đọc và

tìm hiểu

○ Tốc độ: Python có tốc độ xử lý nhanh hơn so với ngôn ngữ PHP.

○ Tương tác: Chế độ tương tác cho phép người lập trình thử nghiệm

tương tác sửa lỗi của các đoạn mã

○ Chất lượng: Thư viện có tiêu chuẩn cao, Python có khối cơ sở dữ liệu

khá lớn nhằm cung cấp giao diện cho tất cả các CSDL thương mạilớn

○ Thuận tiện: Python được biên dịch và chạy trên tất cả các nền tảng

lớn hiện nay

○ Mở rộng: Với tính năng này, Python cho phép người lập trình có thể

thêm hoặc tùy chỉnh các công cụ nhằm tối đa hiệu quả có thể đạt đượctrong công việc

Trang 38

2.4.3 Công nghệ đi kèm của Python

Flask: Flask là một web frameworks, thuộc loại micro-framework Flask cho

phép xây dựng các ứng dụng web từ đơn giản tới phức tạp Flask có thể xây dựngcác API nhỏ, ứng dụng web chẳng hạn như các trang web, blog, trang wiki hoặcmột website dựa theo thời gian hay thậm chí là một trang web thương mại

Flask là một micro-framework Điều này có nghĩa Flask là một môi trường độclập, ít sử dụng các thư viện khác bên ngoài Do vậy, Flask có ưu điểm là nhẹ, có rất

ít lỗi do ít bị phụ thuộc cũng như dễ dàng phát hiện và xử lý các lỗi bảo mật

Hình 2.4.2: Flask

Colab: Colaboratory hay còn gọi là Google Colab, là một sản phẩm từ Google

Research, nó cho phép chạy các dòng code python thông qua trình duyệt, đặc biệtphù hợp với Data analysis, machine learning và giáo dục Colab không cần yêu cầucài đặt hay cấu hình máy tính, mọi thứ có thể chạy thông qua trình duyệt, bạn có thể

sử dụng tài nguyên máy tính từ CPU tốc độ cao và cả GPUs và cả TPUs đều đượccung cấp cho bạn

Trang 39

Hình 2.4.3: Google Colab

Ngrok: Ngrok là công cụ tạo đường hầm (tunnel) giữa localhost và internet.

Giúp người khác mạng có thể truy cập được localhost thông qua custom domain củangrok

Trang 40

CHƯƠNG 3:HỆ THỐNG KHUYẾN NGHỊ

Trong chương này, Khóa luận trình bày các kiến thức tổng quát để xây dựng

hệ thống khuyến nghị Phần đầu giới thiệu về hệ thống khuyến nghị Mục 3.2 trìnhbày về người dùng và bài toán khai phá tri thức trong ngữ cảnh hệ thống khuyếnnghị Mục 3.3 trình bày các phương pháp ứng dụng trong khuyến nghị và mục cuốicùng trình bày ứng dụng kiến thức trong học máy vào bài toán khuyến nghị vàhướng phát triển của Khóa luận

Hệ thống khuyến nghị cho phép việc cá nhân hóa các trang web thương mạimột cách liên tục và tự động Hệ thống này cho phép các website gia tăng doanh thubằng cách đưa những vật phẩm cần thiết cho đúng khách sử dụng ứng dụng

3.2 Các thông tin chung

3.2.1 Cách sử dụng thông tin về người dùng

Các thông tin thường được sử dụng để làm khuyến nghị cho người dùng baogồm các thông tin về người dùng, các thông tin về sản phẩm, các sản phẩm ưa thíchcủa người dùng

Các thông tin của người dùng là các thuộc tính có thể ảnh hưởng tới kết quảkhuyến nghị Các thông tin này bao gồm cả việc thích hay không thích một sảnphẩm, giới tính, độ tuổi, mức thu nhập, và sở thích của một tập người dùng nhấtđịnh, sở thích, v.v .Các thuộc tính của sản phẩm có thể rõ ràng hoặc không rõ ràng

Ngày đăng: 16/06/2022, 21:03

HÌNH ẢNH LIÊN QUAN

Hình 2.1.3. Kiến trúc hệ thống Flutter - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 2.1.3. Kiến trúc hệ thống Flutter (Trang 26)
Hình 2.1.5. Clean Architecture - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 2.1.5. Clean Architecture (Trang 30)
Hình 2.2.3. Mô hình MVC trong ASP.NET Core - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 2.2.3. Mô hình MVC trong ASP.NET Core (Trang 33)
Hình 2.3.3: Mô hình của SQL Server - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 2.3.3 Mô hình của SQL Server (Trang 34)
Hình 2.4.1: Khái niệm Python - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 2.4.1 Khái niệm Python (Trang 36)
Bảng 1 - Các loại dữ liệu sử dụng trong hệ thống khuyến nghị - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Bảng 1 Các loại dữ liệu sử dụng trong hệ thống khuyến nghị (Trang 42)
Hình 3.4: bảng đánh giá rating từng sản phẩm của từng người dùng - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 3.4 bảng đánh giá rating từng sản phẩm của từng người dùng (Trang 52)
Hình 4.2.2. Schedule Gantt - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 4.2.2. Schedule Gantt (Trang 64)
Hình 4.2.3. Use-case - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 4.2.3. Use-case (Trang 65)
Hình 4.2.5. Sơ đồ ngữ cảnh - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 4.2.5. Sơ đồ ngữ cảnh (Trang 72)
Hình 4.2.5.1 Sơ đồ tuần tự “Integrate recommendation service” - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 4.2.5.1 Sơ đồ tuần tự “Integrate recommendation service” (Trang 73)
Hình 4.2.5.3: Sơ đồ tuần tự “Người dùng thanh toán giỏ hàng” - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 4.2.5.3 Sơ đồ tuần tự “Người dùng thanh toán giỏ hàng” (Trang 74)
Hình 4.2.5.5 Sơ đồ tuần tự “ Người dùng quản lý giá thành” - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 4.2.5.5 Sơ đồ tuần tự “ Người dùng quản lý giá thành” (Trang 75)
Hình 4.2.5.4 Sơ đồ tuần tự “Người dùng thêm sản phẩm” - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
Hình 4.2.5.4 Sơ đồ tuần tự “Người dùng thêm sản phẩm” (Trang 75)
Hình ảnh 4.2.5. Sơ đồ hoạt động “Người dùng tạo đơn hàng” - Hệ thống khuyến nghị dành cho thương mại điện tử (khóa luận tốt nghiệp)
nh ảnh 4.2.5. Sơ đồ hoạt động “Người dùng tạo đơn hàng” (Trang 76)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w