Chương 1 giới thiệu tổng quát về đề tài, phạm vi nghiên cứu, những kiến thứ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ông nghệ 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ền tả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 dé xây dựng các mô đun, Webservice, xử lý, truy vấn và cập nhật đữ 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 va Community-based, bên cạnh đó con một số cách tiếp cận khác [1]. Trong khóa luận này chúng em sử dụng phương pháp Collaborative Filtering dé 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ích các chức năng của hệ thống khuyến nghị, người dùng và dữ liệu dé thiết kế hệ thống. Cuối cùng là Chương 5 trình bày kết qua đạt được và hướng phát triển tiếp theo. 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 phan mềm dựa trê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ử. 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.
CHUONG 1: GIỚI THIỆU TONG QUAN 1. Thông tin nhóm 1. Bài toán thực tế Mô hình thương mại điện tử đã khăng định vai trò và ưu thế trước mô hình kinh doanh truyền thống và đã phổ biến như Amazon, Alibaba ở phạm vi quốc tế, đối với phạm vi trong nước các trang thương mại điện tử như Tiki, Shopee, Lazada, v. đã thành công và đem lại nhiều lợi ích cho người tiêu dùng.
Các ứng dụng này thành công nhờ việc tối đa hóa về các mảng cung cấp các dịch vụ, hàng hóa. Cũng vì thế việc tối đa hóa các giao đị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 qua các ứng dụng khuyến nghị cho hệ thống. Tổng quan đề tài Nhóm đã đề ra kế hoạch phát triển một ứng dụng di động dé phuc vu cho viéc mua sam cho người dùng va ứng dung Decee là giải quyết cho van dé này E-shop cung cap các dung cụ dé cho người dùng tương tác va sử dung dé buôn ban. Người chủ cửa hàng có thé đưa lên các sản phẩm mong muốn, và người dùng phổ thông có thé kiếm những mặt hang đó và mua các mặt hàng.
Cùng với hệ thống admin hệ thống dam bảo giá cả phải chăng và người dùng luôn không bi lừa đảo, kèm theo đó là các yếu tố bảo mật đảm bảo thông tin của người dùng sẽ không bị lộ ra ngoài. 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án các sản phâm mà người dùng có thé thích hoặc sẽ mua tiếp theo dé khuyến nghị cho người dùng. 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 ứng dụng E-commerce hỗ trợ việc mua sắm trực tuyến.
Ứng dụng không di sâu vào các nghiệ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ống khuyế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. Nội dung nghiên cứu Các dich vụ liên quan đến E-commerce với các tinh năng cơ bản của một ứng dụ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ực tuyến có thé quản lý hang 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ới mụ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 thay được kha năng sử dụng dữ liệu của người phát triển cũng như là khả năng đáp ứng nhu cầu cho các ứng dụng hiện tại. 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 dé thu hút người dùng Về phía khách hàng phổ thông: Ung dụng hỗ trợ mua hàng trực tuyến với quy trình nhanh chóng, đơn giản, theo dõi tình trạng đơn hàng một cách chỉ tiết, nâng cao 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ác mặt hàng đúng, hợp nhu cầu của khách hàng vào lúc hiện tại.
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: e Visual Studio IDE: IDE hỗ trợ xây dựng các ứng dụng liên quan tới .NET (server) e Visual Studio Code: hỗ trợ xây dựng ứng dụng giao diện người dùng (Flutter) e 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 bang dir liệu dé xây dựng hệ thống khuyến nghị. Source tree RecommendationAPI: https://github.com/pmn2wodee/recommendationAPI Frontend: https://github.com/pmn2wodee/project_2 Backend: https://github.com/TrDayken/Project-2-School Colab: https://colab.com/drive/1543IwPEb6_Fuj2G- oWStytYfiYmxCIFI?usp=sharing CHƯƠNG 2: CÔNG NGHỆ TRIEN KHAI Chương này Khóa luận trình bày các công nghệ nền tang dé phát triển hệ thống.1 giới thiệu Flutter và Dart để xây dựng ứng dụng trên thiết bị di động, ứng dụng này sẽ hiển thị các mặt hàng dé khách hàng mua hàng hóa, nhận xét, và phản hồi thông tin về hàng hóa và chất lượng dịch vụ.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 dé xây dựng phan Backend 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 lay từ khách hàng, dữ liệu đã xử lý dé phản hôi lại cho ứng dụng di động. Cuối cùng là mục Python, nhờ tính ưu việt của Python trong xử lý dữ liệu trong lĩnh vực học máy, Khóa luận sử dụng Python để xử lý đữ liệu về hệ thống khuyến nghị.
Flutter và Dart 2. Giới thiệu Flutter được Google giới thiệu là một người mới trong thế giới ứng dụng di động. Là một SDK mới của Google dành cho các thiết bị di động giúp developers và designers xây dựng nhanh chóng ứng dụng dành cho các thiết bị đi động (Android, iOS). Flutter là dự án mã nguồn mở đang trong giai đoạn thử nghiệm.
Flutter bao gồm Reactive framework và công nghệ hién thị 2D (2D rendering engine) và các công cụ phát triển (development tool). Các thành phần này làm việc cùng nhau giúp ta thiết kế, xây dựng, test, debug ứng dụng. Ư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ử dung Dart dé tạo các ứng dụng chất lượng cao, quan trọng cho 10S, Android và web. Với các tính nang 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: e_ Một ngôn ngữ được tối ưu hóa cho client e Framework mạnh mẽ e Công cụ linh hoạt 2. 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ại đướ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ên dướ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ần của mức khung được thiết kế dé trở thành tùy chọn và có thé thay thé.
Framework Cupertino Dart P Widgets Rendering Animation Painting Gestures Foundation Engine C/C++ Service Protocol Composition Platform Channels Dart Isolate Setup System Events Dart Runtime Mgmt Frame Scheduling Asset Resolution Frame Pipelining Text Layout Embedder : : : Platform-specific Render Surface Setup Native Plugins App Packaging Thread Setup Event Loop Interop Hình 2. Kiến trúc hệ thống Flutter e Embedder: Platform-specific: Đối với hệ điều hành cơ bản, các ứng dung Flutter được đóng gói giống như bat kỳ ứng dụng gốc nào khác. Embedder Platform-specific cung cấp một đầu vào; phối hợp với hệ điều hành co bản dé 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 tang: hiện tại là Java và C ++ cho Android, 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ụng hiệ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. Flutter bao gồm một sô trình nhúng cho các nên tảng mục tiêu chung. e Flutter Engine: Cốt lõi của Flutter là Flutter Engine, phan 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ách nhiệm sắp xếp các cảnh tông hợp bat cứ khi nào cần son một khung mới.
Nó cung cấ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. e Flutter Framework: Flutter Framework , cung cấp một framework hiện dai đượ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ú, bao gồ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 dich vụ khối xây dựng nhu animation, painting, and gestures cung cấp các nội dung trừu tượng thường được sử dụng trên nền tang cơ bản.
Rendering layer cung cấp một sự trừu tượng dé 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 dé 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ất trong lớp kết xuất có một lớp tương ứng trong lớp vật dụng.