Xây dựng hệ thống hỗ trợ mua bán đa nền tảng có tích hợp recommender system bằng công nghệ ReatcJS

MỤC LỤC

Mục tiêu

● Đáp ứng được các tính năng cần thiết với ngôn ngữ Javascript, công nghệ mới ReatcJS, ExpressJS và chuẩn bảo mật JWT. ● Giúp khách hàng có thể xem thông tin sản phẩm, đánh giá sản phẩm cũng như thực hiện thao tác mua hàng, thanh toán. ● Có hệ thống quản lý dữ liệu: quản lý sản phẩm, tài khoản, các đơn hàng đã đặt, thông tin cá nhân.

● Đưa ra các sản phẩm mà khách hàng có thể thích dựa vào hành vi của các khách hàng tương tự.

Phạm vi

● Nghiên cứu, phát triển các thuật toán, giải pháp với ngôn ngữ Python, công nghệ. ● Đề xuất các sản phẩm liên quan dựa vào những sản phẩm đã yêu thích.

Công nghệ sử dụng

● Biết được quy trình xây dựng một ứng dụng mobile cơ bản thông qua các công nghệ đã đề ra.

Quy trình thực hiện

Collaborative filtering Recommenders: Những hệ thống này được sử dụng rộng rãi và chúng cố gắng dự đoán “ratings” hoặc “preference” mà người dùng sẽ đưa ra một mặt hàng dựa trên xếp hạng trước đây và sở thích của những người dùng khác. Hybrid Recommenders: Hybrid Filtering là sự kết hợp của hai giải thuật Content-based Filtering và Collaborative Filtering: Hybrid Filtering được sử dụng mềm dẻo khi hệ thống Collaborative Filtering không có các hành vi (ratings), khi đó hệ thống sẽ sử dụng Content-based Filtering và ngược lại, khi Content-based Filtering không có các feature cần thiết trong việc đánh giá thì hệ thống sẽ sử dụng Collaborative Filtering để thay thế. Quan sát thấy rằng vì số lượng ratings biết trước thường là một số rất nhỏ so với kích thước của utility matrix, sẽ tốt hơn nếu chúng ta lưu ma trận này dưới dạng sparse matrix, tức chỉ lưu các giá trị khác không và vị trí của chúng.

Có thể sắp xếp unrated items theo thứ tự tự lớn đến bé của các predicted ratings, hoặc chỉ chọn các items có normalized predicted ratings dương - tương ứng với việc user này có nhiều khả năng thích hơn.

Hình 1. Phân loại Recommender System
Hình 1. Phân loại Recommender System

Công nghệ sử dụng .1 React native

Với JavaScript, bạn có thể thực hiện các tác vụ như kiểm tra dữ liệu đầu vào, xử lý sự kiện người dùng, thay đổi nội dung trang web động, tạo hiệu ứng đồ họa, giao tiếp với máy chủ và nhiều hơn nữa. Với Firebase và React Native, bạn có thể sử dụng các tính năng như lưu trữ dữ liệu trong cơ sở dữ liệu thời gian thực (Realtime Database hoặc Firestore), xác thực người dùng (Firebase Authentication), lưu trữ và quản lý tệp tin (Firebase Storage), gửi thông báo đẩy (Firebase Cloud Messaging), phân tích ứng dụng (Firebase Analytics), và nhiều dịch vụ khác. Firebase cung cấp một cách dễ dàng để tích hợp các tính năng mạnh mẽ và quản lý các khía cạnh cơ sở hạ tầng của ứng dụng của bạn mà không cần lo lắng về việc triển khai và vận hành hạ tầng phức tạp.

Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rừ ràng, dễ hiểu và linh động, làm cho nú nhanh chúng trở thành một ngụn ngữ lý tưởng để viết script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng.

Hình 7. Expo Go
Hình 7. Expo Go

Sơ đồ Use case

    15 Quản lý danh sách yêu thích Quản lý danh sách sản phẩm yêu thích 16 Xóa sản phẩm trong danh. Tính năng đăng nhập hỗ trợ xác thực người dùng thông qua tài khoản và mật khẩu. Nếu tài khoản hợp lệ thì hệ thống tiến hành gửi mã xác thực và chuyển sang giao diện nhập mã.

    Nếu tài khoản hợp lệ thì hệ thống tiến hành gửi mã xác thực và chuyển sang giao diện nhập mã. Hệ thống kiểm tra tính hợp lệ của thông tin, nếu không hợp lệ thì báo lỗi và kết thúc use case. Tóm tắt Cho phép người dùng lưu hoặc xoá sản phẩm đang chọn vào danh sách yêu thích.

    Tại màn hình thông tin sản phẩm, người dùng nhấn vào biểu tượng Trái tim (yêu thích). Hệ thống kiểm tra nếu danh sách yêu thích, nếu đã tồn tại sản phẩm thì xoá, ngược lại thêm vào danh sách. Hệ thống kiểm tra trong giỏ hàng, nếu đã tồn tại sản phẩm thì cộng thêm vào số lượng, ngược lại thêm vào.

    Tại màn hình bất kỳ nếu có thể điều hướng tới màn chi tiết phim, người dùng nhấn vào sản phẩm cần xem thông tin. Đặc tả use case xóa sản phẩm trong danh sách yêu thích 3.6.3.11 Use case Thêm sản phẩm muốn bán.

    THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG 4.1 Sơ đồ liên kết màn hình

    Danh sách các màn hình

    1 Onboarding Screen Màn hình chính Màn hình giới thiệu đầu tiên khi mở ứng dụng. 2 Home Screen Màn hình chính Màn hình hiển thị các sự kiện mới của cửa hàng. 11 My Order Screen Màn hình chính Màn hình danh sách lịch sử các hóa đơn đặt hàng.

    12 Details Order Screen Màn hình chi tiết Màn hình chi tiết hóa đơn đặt hàng. 17 Secondhand Screen Màn hình chính Màn hình danh sách sản phẩm cũ đang được bán. 21 Information Screen Màn hình nhập liệu Màn hình cập nhật thông tin cá nhân của tài khoản.

    Màn hình thống kê thông tin của cửa hàng như: số lượng người dùng, số lượng sản phẩm, số lượng hóa đơn, thu nhập,…. 26 Add User Screen Màn hình nhập liệu Màn hình nhập thông tin thêm người dùng. 27 Add Product Screen Màn hình nhập liệu Màn hình nhập thông tin thêm sản phẩm.

    28 Detail User Screen Màn hình nhập liệu Màn hình hiển thị thông tin chi tiết của người dùng. Screen Màn hình nhập liệu Màn hình hiển thị thông tin chi tiết của sản phẩm.

    Mô tả chi tiết các màn hình .1 Màn hình Onboarding

    Trong màn hình xem chi tiết này sẽ hiện thị các thông tin của sản phẩm như tên, kích cỡ, thông tin chi tiết, giá. Người dùng có thể xóa hoặc sửa các sản phẩm trong màn hình danh sách yêu thích và thêm chúng vô giỏ hàng. Người dùng có thể đăng nhập bằng tài khoản đăng ký từ trước hoặc đăng nhập bằng tài khoản Google hoặc Facebook.

    Trong màn hình tài khoản sẽ hiện thị tên người dùng và các danh mục như chỉnh sửa profile, cài đặt tài khoản, yêu thích,…. Trong màn hình thông tin tài khoản, người dùng có thể cập nhật các thông tin cá nhân như tên, email, mật khẩu,. Trong màn hình này, người dùng có thể xem các sản phẩm do người dùng khác đăng bán và đặt hàng nếu muốn.

    Trong màn hình users, hiển thị danh sách người dùng sử dụng ứng dụng, admin có thể thêm hoặc xóa người dùng. Trong màn hình products, hiển thị tất cả sản phẩm đang bán trong cửa hàng, admin có thể thêm hoặc sửa sản phẩm. Trong màn hình Orders, hiển thị các hóa đơn mà khách hàng tạo, admin có thể xóa hoặc tùy chỉnh trạng thái của hóa đơn.

    Trong màn hình add product, admin có thể nhập các thông tin cần thiết của sản phẩm và thêm sản phẩm vào cửa hàng. Trong màn hình detail user, admin có thể coi thông tin cá nhân của người dùng và các hóa đơn người dùng đã tạo. Trong màn hình detail user, admin có thể coi thông tin cá nhân của người dùng và các hóa đơn người dùng đã tạo.

    Trong màn hình update order, admin có thể coi thông tin chi tiết của đơn hàng, thông tin các sản phẩm trong hóa đơn và cập nhật trạng thái của hóa đơn.

    Hình 26. Màn hình Shopping
    Hình 26. Màn hình Shopping

    CÀI ĐẶT VÀ KIỂM THỬ 5.1 Môi trường cài đặt và kiểm thử

    Kết quả kiểm thử

    Thông qua việc nghiên cứu và tìm hiểu các công nghệ, đặc biệt là các công nghệ mới, nhóm em đã phát triển được một phần hệ thống hỗ trợ mua bán đa nền tảng tích hợp recommender systerm. Kết quả chạy thử cho thấy hệ thống hoạt động tốt, và có thể mở rộng, phát triển thêm trong tương lai. Tìm hiểu được được quy trình hoạt động của chatbot và áp dụng được vào trong ứng dụng.

    Tìm hiểu được quy trình hoạt động hệ thống khuyến nghị và áp dụng được vào ứng dụng. Học được quy trình thực hiện một ứng dụng hoàn chỉnh từ lên kế hoạch, hiện thực, kiểm thử, deploy, …. Rèn luyện được kĩ năng nhận dạng bài toán, nghiên cứu và khảo sát thực tế, phân tích các chức năng và thực hiện tài liệu mô tả.

    Nâng cao khả năng tìm hiểu và nghiên cứu công nghệ, đặc biệt là các công nghệ mới. Phát triển các kỹ năng mềm cá nhân như lên kế hoạch, trình bày văn bản, dự trù thời gian, … và kỹ năng làm việc nhóm như khả năng tranh luận, thuyết phục và hỗ trợ lẫn nhau.

    Thuận lợi và khó khăn .1 Thuận lợi

    Có kiến thức ở các môn học như Kiểm chứng phần mềm, Quản lý dự án phát triển phần mềm, Thiết kế giao diện người dùng, Phương pháp phát triển phần mềm hướng đối tượng, Công nghệ Web và ứng dụng phục vụ rất tốt cho công tác xây dụng và phát triển ứng dụng. Hiện tại các thành viên nhóm đang trong quá trình thực tập nên bất cập về thời gian làm đồ án. Machine learning là một phạm trù mới của nhóm, nên việc vừa học vừa áp dụng kết quả mang lại chưa thật sự cao.