đồ án 2 xây dựng hệ thống hỗ trợ mua bán đa nền tảng có tích hợp recommender system

96 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 xây dựng hệ thống hỗ trợ mua bán đa nền tảng có tích hợp recommender system

Đ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

Trang 1

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

XÂY DỰNG HỆ THỐNG

HỖ TRỢ MUA BÁN ĐA NỀN TẢNG CÓ TÍCH HỢPRECOMMENDER SYSTEM

Đồ án 2

Giảng viên hướng dẫn: ThS Nguyễn Công Hoan

Sinh viên thực hiện:

20520630 – Vũ Đức Mạnh20520628 – Đinh Quang Mạnh

Trang 2

Đồ án 2

Giảng viên hướng dẫn: ThS Nguyễn Công Hoan

Sinh viên thực hiện:

20520630 – Vũ Đức Mạnh20520628 – Đinh Quang Mạnh

Trang 3

Thành phố Hồ Chí Minh, tháng 09 năm 2023ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: XÂY DỰNG HỆ THỐNG HỖ TRỢ MUA BÁN ĐA NỀNTẢNG CÓ TÍCH HỢP RECOMMENDER SYSTEM

Cán bộ hướng dẫn: ThS Nguyễn Công Hoan

Thời gian thực hiện: Từ ngày 05/09/2023 đến ngày 31/12/2023Sinh viên thực hiện:

20520630 – Vũ Đức Mạnh20520630 – Đinh Quang Mạnh

Nội dung đề tài:

ý do chọn đề tài:

Hiện nay, thị trường mua bán qua internet đang phát triển rất mạnh Người dùngcó nhu cầu mua bán các sản phẩm trực tuyến ngày càng tăng, đặc biệt là với tìnhhình dịch bệnh hiện nay Một ứng dụng mua bán đa nền tảng là một giải pháphiệu quả để giúp người dùng tiếp cận với những sản phẩm mà họ cần một cáchdễ dàng và thuận tiện trên nhiều nền tảng khác nhau như website, ứng dụngtrên di động, hoặc trên các nền tảng mạng xã hội Vì vậy, nghiên cứu về Ứngdụng mua bán đa nền tảng là rất cần thiết và có tính ứng dụng cao trong thực tế.Điều này đảm bảo cho người dùng sẽ tiếp cận đến nhiều khách hàng hơn và nângcao khả năng bán hàng của họ Ngoài ra, ứng dụng mua bán đa nền tảng còn giúpcho người tiêu dùng dễ dàng tìm kiếm sản phẩm mà họ muốn mua trên nhiềunền tảng khác nhau, đồng thời giúp họ so sánh giá cả và chất lượng sản phẩm,gợi ý những sản phẩm liên quan mà khách hàng có thể thích Để giải quyết vấnđề trên, nhóm em quyết định chọn đề tài Ứng dụng mua bán đa nền tảng, nhằmphát triển một ứng dụng cung cấp môi trường, cũng như một thị trường online

Trang 4

để người dùng có thể trao đổi, mua bán các loại mặt hàng sản phẩm trên nềntảng di động IOS và Android.

Cung cấp các thống kê, biểu đồ trực quan số liệu, từ đó đề xuất ra các mặt hàngđang được nhiều người quan tâm nhất.

Phạm vi:

Đề tại xây dựng một ứng dụng cung cấp một số tính năng cơ bản về mua bánquần áo online với các phân quyền chính:

Về phía công ty:

Admin sẽ là người có quyền hạn cao nhất, quản lí dữ liệu và nhân viên khácManager là người quản lí dữ liệu phim, xuất chiếu, rạp …

Trang 5

Censor là người kiểm duyệt các bài đăng từ khách hàng

Kết quả mong đợi:

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

Biết được thủ tục thanh toán, quản lí hệ thống quản lí sản phẩm

Xây dựng được một ứng dụng mobile có ứng dụng recommender systemỨng dụng có khả năng mở rộng trong tương lai.

Trang 6

LỜI CẢM ƠN

Đồ án với đề tài “XÂY DỰNG HỆ THỐNG HỖ TRỢ MUA BÁN ĐA NỀN TẢNG CÓTÍCH HỢP RECOMMENDER SYSTEM” là minh chứng cho quá trình cố gắng khôngngừng trong việc tìm tòi, học hỏi khi học tập tại trường Đại học Công nghệ Thông tin.Thể hiện khả năng của bản thân trong việc áp dụng kiến thức chuyên môn vào giải quyếtbài toán thực tế.

Trong quá trình thực hiện đồ án, em đã nhận được sự hướng dẫn tận tình từ thầy Mộtcách đặc biệt, em xin được gửi lời cảm ơn chân thành đến:

Các thầy cô trường Đại học Công nghệ Thông Tin nói chung và Thầy Nguyễn CôngHoan nói riêng đã tận tình truyền đạt kiến thức tới em trong những năm học tập tạitrường Đó là tài sản quý báu đã giúp em hoàn thành đồ án và cũng là hành trang cho conđường sự nghiệp của bản thân sau này.

Em xin được gửi lời cảm ơn sâu sắc tới ThS Nguyễn Công Hoan, người đã trực tiếphướng dẫn, chỉ bảo, giúp đỡ em những lúc khó khăn, đưa ra những lời khuyên bổ ích đểkhoá luận được hoàn thành đúng tiến độ và đáp ứng các yêu cầu đề ra ban đầu.

Các thành viên trong nhóm đã luôn nỗ lực phấn đấu, lắng nghe và luôn sẵn sàng hỗ trợ nhau trong suốt cả quá trình học tập và thực hiện đồ án Để đạt được kết quả như ngày hôm nay.

Lời cuối cùng, em xin dành lời cảm ơn gửi tới gia đình, anh chị, bạn bè đã luôn bên cạnhđể động viên và đóng góp ý kiến trong quá trình hoàn thành đồ án này.

Thành phố Hồ Chí Minh, tháng 12 năm 2023Sinh viên 1 Sinh viên 2

Vũ Đức Mạnh Đinh Quang Mạnh

Trang 7

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 8

DANH MỤC HÌNH ẢNH

Hình 12 Sơ đồ phân rã chức năng nhân viên 34Hình 13 Sơ đồ phân rã chức năng customer 34

Hình 18 Sequence Diagram Cập nhật tài khoản 53

Hình 22 Sơ đồ liên kết các màn hình của khách hàng 57Hình 23 Sơ đồ liên kết các màn hình của khách hàng 57

Trang 10

DANH MỤC BẢNG BIỂU

Bảng 6 Đặc tả use case đăng ký tài khoản 40

Bảng 8 Đặc tả use case cập nhật thông tin tài khoản 42Bảng 9 Đặc tả use case tìm kiếm sản phẩm 42Bảng 10 Đặc tả use case sản phẩm yêu thích 43Bảng 11 Đặc tả use case xem thông tin chi tiết sản phẩm 44Bảng 12 Đặc tả use case xóa sản phẩm trong giỏ hàng 45Bảng 13 Đặc tả use case xóa sản phẩm trong danh sách yêu thích 45Bảng 14 Đặc tả use case thêm sản phẩm muốn bán 46Bảng 15 Đặc tả use case xóa sản phẩm muốn bán 46

Bảng 18 Đặc tả use case thêm sản phẩm muốn bán 49

Trang 11

1.3 Phạm vi1.4 Đối tượng

1.5 Phương pháp thực hiện1.6 Công nghệ sử dụng1.7 Kết quả mong đợi1.8 Quy trình thực hiện

Chương 2 CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ2.1 Lý thuyết

2.1.1 Recommend System2.2 Công nghệ sử dụng

2.2.1 React native2.2.2 JavaScript

2.2.3 React Navigation2.2.4 Expo Go

2.2.5 Firebase2.2.6 Django2.2.7 Python

Chương 3 PHÂN TÍCH BÀI TOÁN3.1 Nghiệp vụ

3.2 Yêu cầu tính năng

3.3 Phân tích yêu cầu chức năng3.3.1 Admin

3.3.2 Nhân viên3.3.3 Khách hàng

3.4 Phân tích yêu cầu phi chức năng3.5 Phân tích yêu cầu người dùng3.6 Sơ đồ Use case

3.6.1 Danh sách tác nhân

Trang 12

3.6.2 Danh sách Use case3.6.3 Mô tả chi tiết Use case3.7 Class Diagram

4.1 Sơ đồ liên kết màn hình4.2 Danh sách các màn hình4.3 Mô tả chi tiết các màn hình

4.3.1 Màn hình Onboarding4.3.2 Màn hình Home4.3.3 Màn hình Shopping4.3.4 Màn hình Detail Product4.3.5 Màn hình Favorite4.3.6 Màn hình Cart4.3.7 Màn hình Payment4.3.8 Màn hình Login4.3.9 Màn hình Register4.3.10 Màn hình Profile

4.3.11 Màn hình Information Account4.3.12 Màn hình Secondhand

4.3.13 Màn hình Add Post4.3.14 Màn hình My Order4.3.15 Màn hình Detail Order4.3.16 Màn hình Address4.3.17 Màn hình Add Address4.3.18 Màn hình Card

4.3.19 Màn hình Add Card4.3.20 Màn hình Dashboard4.3.21 Màn hình Users4.3.22 Màn hình Products

Trang 13

4.3.23 Màn hình Orders4.3.24 Màn hình Add User4.3.25 Màn hình Add Product4.3.26 Màn hình Detail User4.3.27 Màn hình Detail User4.3.28 Màn hình Detail Product4.3.29 Màn hình Update OrderChương 5 CÀI ĐẶT VÀ KIỂM THỬ5.1 Môi trường cài đặt và kiểm thử:5.2 Kết quả kiểm thử

Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN6.1 Kết quả đạt được

6.2 Thuận lợi và khó khăn6.2.1 Thuận lợi

6.2.2 Khó khăn6.3 Hướng phát triển

Chương 7 TÀI LIỆU THAM KHẢO

Trang 14

Mặc khác, ứng dụng giúp tạo ra một trải nghiệm mua sắm nhất quán cho khách hàngtrên tất cả các nền tảng Điều này đảm bảo rằng khách hàng có thể truy cập vào các sảnphẩm và dịch vụ của bạn một cách dễ dàng và thuận tiện, không phụ thuộc vào thiết bịhoặc nền tảng mà họ đang sử dụng.

Sử dụng một ứng dụng mua bán đa nền tảng có thể giúp mở rộng phạm vi kinh doanhvà tăng doanh số bán hàng Bằng cách tiếp cận các khách hàng trên nhiều nền tảng, tacó thể thu hút đối tượng khách hàng mới và tạo ra một kênh bán hàng bổ sung để tăngdoanh thu và lợi nhuận.

1.2 Mục tiêu

● Hoàn thiện thêm ứng dụng mobile với giao diện thân thiện, màu sắc hài hòa, bốcục hợp lí

Trang 15

● Đáp ứng được các tính năng cần thiết với ngôn ngữ Javascript, công nghệ mớiReatcJS, 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.

● Hỗ trợ việc tìm kiếm theo nhiều bộ lọc khác nhau

● 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

● Hỗ trợ quản lý thống kê doanh thu, báo cáo.

● 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ệ ● Gợi ý khách hàng các sản phẩm tương tự với một sản phẩm cụ thể

● Đư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áchhàng tương tự

● Đề 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.

Trang 16

1.4 Đối tượng

● Người mua: Đây là nhóm người sử dụng chính của ứng dụng Người mua muốntìm kiếm và mua các sản phẩm hoặc dịch vụ trực tuyến một cách thuận tiện và dễdàng Họ muốn có trải nghiệm mua sắm trực tuyến tốt, tìm kiếm sản phẩm dễdàng, so sánh giá cả, đánh giá và đánh giá sản phẩm, và thực hiện thanh toán antoàn.

● Người bán: Đối tượng này bao gồm các doanh nghiệp, cửa hàng, người bán lẻhoặc cá nhân muốn tiếp cận thị trường trực tuyến và bán hàng qua ứng dụng Họmuốn có một nền tảng để quảng bá, quản lý và bán sản phẩm hoặc dịch vụ củamình Người bán muốn có cơ hội tiếp cận đến một số lượng lớn khách hàng tiềmnăng, quản lý đơn hàng, cung cấp hỗ trợ sau bán hàng và tăng doanh thu.

● Người quản lý hệ thống: Đối tượng này là nhóm người quản lý và điều hành ứngdụng mua bán đa nền tảng Họ có nhiệm vụ quản lý cơ sở dữ liệu, quản lý tàikhoản người dùng, theo dõi hoạt động giao dịch, đảm bảo an ninh và bảo mật dữliệu, cung cấp hỗ trợ kỹ thuật và đảm bảo sự ổn định và hiệu suất của hệ thống.

Trang 17

● Back-end: NodeJS, Python● Database: Firebase

1.7 Kết quả mong đợi

● 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ôngnghệ đã đề ra

● Ứng dụng có khả năng mở rộng trong tương lai

● Có khả năng nghiên cứu, phân tích khi gặp một bài toán mới.

1.8 Quy trình thực hiện

Bảng 1 Phân công công việc

Tuần Thành viên 1(Đức Mạnh)

Thành viên 2(Quang Mạnh)

Cả nhóm

lại Đồ án 1- Tìm hiểu tổng quan về

Recommended System

- Xây dựng cơ sở dữliệu

5 + 6 - Tìm hiểu Content based

- Tìm hiểu

Collaborative

- Soạn báo cáo

Trang 18

recommender systems

filtering recommender systems

dựa vào lý thuyết đã tìm hiểu ở tuần 5 - 6

9 + 10 Chỉnh sửa lại giao diện ứng dụng

Gợi ý phim dựa vàoTrends

Hiện thực hệ thống

Kiểm thử và đóng gói hệ thống

Trang 19

Amazon sử dụng nó để đề xuất sản phẩm cho khách hàngNetflix sử dụng gợi ý phim cho người dùng

YouTube sử dụng nó để đề xuất các video và quyết định video sẽ phát tiếp theo trên chếđộ tự động phát

Facebook sử dụng nó để gợi ý kết bạn, đề xuất các trang để thích và mọi người theo dõi.Phân loại:

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

Trang 20

Nhìn chung, hệ thống Recommender System có thể được chia thành 4 loại chính:

Simple Recommenders: Đưa ra các đề xuất tổng quát cho mọi người dùng, dựa trên mức

độ phổ biến và/hoặc thể loại phim Ý tưởng cơ bản đằng sau hệ thống này là những bộphim nổi tiếng hơn và được giới phê bình đánh giá cao hơn sẽ có xác suất được khán giảbình thường thích cao hơn.

Content-based Recommenders: Đề xuất các mặt hàng/phim tương tự dựa trên một mặt

hàng/phim cụ thể Hệ thống này sử dụng siêu dữ liệu mục, chẳng hạn như thể loại, đạodiễn, mô tả, diễn viên, v.v cho phim, để đưa ra các đề xuất này Ý tưởng chung đằng saucác hệ thống giới thiệu này là nếu một người thích một mặt hàng cụ thể, họ cũng sẽthích một mặt hàng tương tự với nó Và để khuyến nghị điều đó, nó sẽ sử dụng siêu dữliệu mục trước đây của người dùng Một ví dụ điển hình có thể là YouTube, nơi dựa trênlịch sử của bạn, nó gợi ý cho bạn những video mới mà bạn có thể xem.

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ặthà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 Bộ lọc cộngtác không yêu cầu siêu dữ liệu mục giống như các bộ lọc dựa trên nội dung của nó.

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ốngCollaborative Filtering không có các hành vi (ratings), khi đó hệ thống sẽ sử dụngContent-based Filtering và ngược lại, khi Content-based Filtering không có các featurecần thiết trong việc đánh giá thì hệ thống sẽ sử dụng Collaborative Filtering để thay thế.

Content-based Recommendation Systems

Đối với phương pháp content-based, hệ thống sẽ đánh giá các đặc tính của items đượcrecommended Nó sẽ gợi ý các item dựa trên hồ sơ (profiles) của người dùng hoặc dựavào nội dung, thuộc tính (attributes) của những item tương tự như item mà người dùngđã chọn trong quá khứ Ví dụ: một người rất thích ăn cam, vậy thì hệ thống gợi ý một

Trang 21

loại trái cây tương tự với cam, ở đây là bưởi để đề xuất Cách tiếp cận này yêu cầu việcsắp xếp các items vào từng nhóm hoặc đi tìm các đặc trưng của từng item.

Hình 2 Mô tả thuật toán

Neighborhood-based Collaborative Filtering

Ý tưởng cơ bản của Neighborhood-Based Collaborative Filtering là xác định mức độquan tâm của một user tới một item dựa trên các users khác gần giống với user này.Việc gần giống nhau giữa các users có thể được xác định thông qua mức độ quan tâmcủa các users này tới các items khác mà hệ thống đã biết Ví dụ, A, B đều thích phimCCC, tức đều rate bộ phim này 5 sao Ta đã biết A cũng thích một phim AAA, vậy nhiềukhả năng B cũng thích bộ phim này.

Neighborhood-based Collaborative Filtering trả lời 2 câu hỏi:Làm thế nào xác định được sự giống nhau giữa hai users?

Trang 22

Khi đã xác định được các users gần giống nhau (similar users) rồi, làm thế nào dự đoánđược mức độ quan tâm của một user lên một item?

Việc xác định mức độ quan tâm của mỗi user tới một item dựa trên mức độ quan tâmcủa similar users tới item đó còn được gọi là User-user collaborative filtering Có mộthướng tiếp cận khác được cho là làm việc hiệu quả hơn là Item-item collaborativefiltering Trong hướng tiếp cận này, thay vì xác định user similarities, hệ thống sẽ xácđịnh item similarities Từ đó, hệ thống gợi ý những items gần giống với những items màuser có mức độ quan tâm cao.

Thuật toán

Công việc quan trọng nhất phải làm trước tiên trong User-user Collaborative Filtering làphải xác định được sự giống nhau (similarity) giữa hai users Dữ liệu duy nhất chúng tacó là Utility matrix Y, vậy nên sự giống nhau này phải được xác định dựa trên các cột

tương ứng với hai users trong ma trận này Xét ví dụ:

Hình 3 Ma trận dữ liệu

Một cách trực quan, hành vi của u 0 giống với u 1 hơn là u 2, u 3, u 4, u 5, u 6 Từ đó có thể

dự đoán rằng u 0 sẽ quan tâm tới i2u 1 cũng quan tâm tới item này.

Giả sử có các users từ u 0 đến u 6 và các items từ i 0 đến i 4 trong đó các số trong mỗi ô

vuông thể hiện số sao mà mỗi user đã rated cho item với giá trị cao hơn thể hiện mức độ

Trang 23

quan tâm cao hơn Các dấu hỏi chấm là các giá trị mà hệ thống cần phải đi tìm Đặt mứcđộ giống nhau của hai users ui, uj là ¿(ui, uj) Vì vậy, một similiarity function tốt cần đảm

¿(u 0 ,u 1)>¿(u 0 , u i),∀ i>1

Để đo similarity giữa hai users, cách thường làm là xây dựng feature vector cho mỗi userrồi áp dụng một hàm có khả năng đo similarity giữa hai vectors đó Chú ý rằng việc xâydựng feature vector này khác với việc xây dựng item profiles như trong Content-basedRecommendation Systems Các vectors này được xây dựng trực tiếp dựa trên Utilitymatrix chứ không dùng dữ liệu ngoài như item profiles Với mỗi user, thông tin duy nhấtchúng ta biết là các ratings mà user đó đã thực hiện, tức cột tương ứng với user đótrong Utility matrix Tuy nhiên, khó khăn là các cột này thường có rất nhiều misingratings vì mỗi user thường chỉ rated một số lượng rất nhỏ các items Cách khắc phục làbằng cách nào đó, ta giúp hệ thống điền các giá trị này sao cho việc điền không làm ảnhhưởng nhiều tới sự giống nhau giữa hai vector Việc điền này chỉ phục vụ cho việc tínhsimilarity chứ không phải là suy luận ra giá trị cuối cùng.

Vậy mỗi dấu ‘?’ nên được thay bởi giá trị nào để hạn chế việc sai lệch quá nhiều? Mộtlựa chọn có thể nghĩ tới là thay các dấu ‘?’ bằng giá trị ‘0’ Điều này không thực sự tốt vìgiá trị ‘0’ tương ứng với mức độ quan tâm thấp nhất Một giá trị an toàn hơn là 2.5 vì nólà trung bình cộng của 0, mức thấp nhất, và 5, mức cao nhất Tuy nhiên, giá trị này cóhạn chế đối với những users dễ tính hoặc khó tính Với các users dễ tính, thích tươngứng với 5 sao, không thích có thể ít sao hơn, 3 sao chẳng hạn Việc chọn giá trị 2.5 sẽkhiến cho các items còn lại là quá negative đối với user đó Điều ngược lại xảy ra vớinhững user khó tính hơn khi chỉ cho 3 sao cho các items họ thích và ít sao hơn chonhững items họ không thích.

Một giá trị khả dĩ hơn cho việc này là trung bình cộng của các ratings mà user tương ứngđã thực hiện Việc này sẽ tránh được việc users quá khó tính hoặc dễ tính, tức lúc nàocũng có những items mà một user thích hơn so với những items khác.

Trang 24

Chuẩn hoá dữ liệu:

Giá trị cao tương ứng với các user dễ tính và ngược lại Khi đó, nếu tiếp tục trừ từ mỗirating đi giá trị này và thay các giá trị chưa biết bằng 0, ta sẽ được normalized utilitymatrix có thể thắc mắc tại sao bước chuẩn hoá này lại quan trọng, câu trả lời ở ngayđây:

Việc trừ đi trung bình cộng của mỗi cột khiến trong trong mỗi cột có những giá trị dươngvà âm Những giá trị dương tương ứng với việc user thích item, những giá trị âm tươngứng với việc user không thích item Những giá trị bằng 0 tương ứng với việc chưa xácđịnh được liệu user có thích item hay không.

Về mặt kỹ thuật, số chiều của utility matrix là rất lớn với hàng triệu users và items, nếulưu toàn bộ các giá trị này trong một ma trận thì khả năng cao là sẽ không đủ bộ nhớ.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íchthướ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 sparsematrix, tức chỉ lưu các giá trị khác không và vị trí của chúng Vì vậy, tốt hơn hết, các dấu‘?’ nên được thay bằng giá trị ‘0’, tức chưa xác định liệu user có thích item hay không.Việc này không những tối ưu bộ nhớ mà việc tính toán similarity matrix sau này cũnghiệu quả hơn.

Cosine similarity:

Đây là hàm được sử dụng nhiều nhất, và cũng quen thuộc với các nhất Nếu các khôngnhớ công thức tính coscos của góc giữa hai vector u 1,u 2 trong chương trình phổ thông,thì dưới đây là công thức:

cosin esimilarity(u 1 ,u 2)=cos(u 1,u 2)= uT 1u 2

¿∨u 1∨¿2.∨¿u 2∨¿2

Trong đó u 1,2 là vectors tương ứng với users 1, 2 đã được chuẩn hoá như ở trên.

Có một tin vui là python có hàm hỗ trợ tính toán hàm số này một cách hiệu quả.

Trang 25

Độ similarity của hai vector là 1 số trong đoạn [-1, 1] Giá trị bằng 1 thể hiện hai vectortoàn toàn similar nhau Hàm số coscos của một góc bằng 1 nghĩa là góc giữa hai vector

bằng 0, tức một vector bằng tích của một số dương với vector còn lại Giá trị cos bằng -1

hể hiện hai vector này hoàn toàn trái ngược nhau Điều này cũng hợp lý, tức khi hành

vi của hai users là hoàn toàn ngược nhau thi similarity giữa hai vector đó là thấp nhất.Rating prediction:

Công thức phổ biến được sử dụng để dự đoán rating của u cho i là:

yi, u=∑uj∈ N (u ,i) yi ,ujsim(u , uj)

trong đó N (u , i) là tập hợp kk users trong neighborhood (tức có similarity cao nhất)

của uu mà đã rated i

Việc hệ thống quyết định recommend items nào cho mỗi user có thể được xác định bằng nhiều cách khác nhau 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.

Trang 26

2.2 Công nghệ sử dụng2.2.1 React native

Hình 4 React Native

React Native là các đoạn code đã được viết sẵn (framework) do công ty công nghệFacebook phát triển Các lập trình viên React Native là người sử dụng những frameworknày để phát triển nên các hệ thống, nền tảng ứng dụng trên các hệ điều hành như IOS vàAndroid Ngôn ngữ lập trình được sử dụng nhiều nhất là Javascript.

Sự ra đời của React Native đã giải quyết được bài toán về hiệu năng và sự phức tạp khitrước đó người ta phải dùng nhiều loại ngôn ngữ native cho mỗi nền tảng di động Chínhvì thế lập trình React Native sẽ giúp tiết kiệm được phần lớn thời gian và công sức khithiết kế và xây dựng nên một ứng dụng đa nền tảng Javascript phù hợp với rất nhiều nềntảng khác nhau.

Trang 27

2.2.2 JavaScript

Hình 5 JavaScript

JavaScript là một ngôn ngữ lập trình thông dịch phía client (thông thường chạy trongtrình duyệt web) hoặc phía server (với Node.js) Nó được sử dụng rộng rãi để tạo ra cácứng dụng web động, tương tác và đáp ứng.

Ban đầu, JavaScript được phát triển để thực hiện các tính toán đơn giản trên trang web vàcung cấp các hiệu ứng động Tuy nhiên, với sự phát triển của web, JavaScript đã trởthành một ngôn ngữ mạnh mẽ cho phép viết ứng dụng web phức tạp hơn.

JavaScript có cú pháp dễ học và linh hoạt, cho phép lập trình viên tương tác với các phầntử trong trang web, thay đổi nội dung, xử lý sự kiện và giao tiếp với máy chủ để trao đổidữ liệu.

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ớimáy chủ và nhiều hơn nữa.

JavaScript cũng có nhiều thư viện và frameworks phổ biến như React, Angular và Vue.js,giúp phát triển ứng dụng web phức tạp một cách dễ dàng và hiệu quả.

Trang 28

2.2.3 React Navigation

Hình 6 React Navigation

React Navigation là một thư viện điều hướng được phát triển cho ứng dụng React Native.Nó cung cấp các công cụ và thành phần để quản lý việc điều hướng và chuyển đổi giữacác màn hình trong ứng dụng.

React Navigation hỗ trợ các loại điều hướng phổ biến như điều hướng xếp chồng (stacknavigation), điều hướng tab (tab navigation), và điều hướng ngăn xếp (drawernavigation) Nó cung cấp một cách đơn giản và linh hoạt để xác định các tuyến đường(routes) và quản lý trạng thái điều hướng trong ứng dụng.

Thư viện này cho phép bạn tạo các màn hình (screens) và khung (containers) để chứachúng Bạn có thể định nghĩa các tuyến đường, đăng ký màn hình với tên duy nhất, và sửdụng các hàm điều hướng để chuyển đổi giữa các màn hình.

React Navigation cung cấp cách điều hướng và chuyển đổi màn hình một cách trơn tru vàlinh hoạt Nó cũng cho phép bạn tùy chỉnh giao diện và hiệu ứng điều hướng của ứngdụng Thư viện này đã trở thành một lựa chọn phổ biến trong việc xây dựng ứng dụngReact Native và được cộng đồng hỗ trợ rộng rãi.

Trang 29

2.2.4 Expo Go

Hình 7 Expo Go

Expo Go là một ứng dụng di động cho phép chạy và xem trước ứng dụng di động đượcphát triển bằng Expo trên thiết bị di động Expo là một nền tảng phát triển ứng dụng diđộng cung cấp một bộ công cụ và dịch vụ để xây dựng ứng dụng di động đa nền tảngbằng JavaScript và React Native.

Khi phát triển một ứng dụng bằng Expo, bạn có thể sử dụng Expo Go để xem trước ứngdụng trên điện thoại di động của mình ngay trong quá trình phát triển Điều này cho phépkiểm tra và thử nghiệm các tính năng của ứng dụng trên thiết bị di động thực tế một cáchthuận tiện.

Expo Go giúp rút ngắn thời gian phát triển và thử nghiệm ứng dụng di động, và cung cấpmột trải nghiệm tương tự như khi chạy ứng dụng trực tiếp trên điện thoại di động.

Trang 30

2.2.5 Firebase

Hình 8 Firebase

Firebase là một nền tảng phát triển ứng dụng di động và web do Google cung cấp Nócung cấp một loạt các dịch vụ đám mây để giúp phát triển và quản lý ứng dụng, bao gồmcơ sở dữ liệu thời gian thực, xác thực người dùng, lưu trữ tệp, phân tích, thông báo đẩy,và nhiều hơn nữa.

Trong mối quan hệ với React Native, Firebase cũng cung cấp một bộ công cụ và thư việnhỗ trợ cho việc phát triển ứng dụng React Native Firebase SDK cho React Native giúpbạn tương tác với các dịch vụ của Firebase từ ứng dụng React Native của mình.

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 trongcơ 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áckhí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 Điều này giúp bạn tập trung vào phát triển chức năng và trảinghiệm người dùng của ứng dụng của mình.

Trang 31

2.2.6 Django

Hình 9 Django

Django là phần mềm bạn có thể sử dụng để phát triển các ứng dụng web một cách nhanh chóng và hiệu quả Hầu hết các ứng dụng web có một số chức năng phổ biến, như xác thực, truy xuất thông tin từ cơ sở dữ liệu và quản lý cookie Các nhà phát triển phải viết mã cho chức năng tương tự vào mọi ứng dụng web mà họ viết Django giúp họ làm việc dễ dàng hơn bằng cách nhóm các chức năng khác nhau thành một tập hợp lớn các mô-đun có thể tái sử dụng, được gọi là một khung ứng dụng web Các nhà phát triểnsử dụng khung web Django để sắp xếp và viết mã của họ hiệu quả hơn và giảm đáng kể thời gian phát triển web.

Trang 32

2.2.7 Python

Hình 10 Python

Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum Python có cú pháp đơn giản và dễ sử dụng, do đó nó trở thành một trong những ngôn ngữ lập trình nhập môn tốt nhất cho người mới bắt đầu.

Python có cấu trúc dữ liệu cao cấp mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng 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.

Trang 34

Đăng bán sản phẩm x

3.2 Yêu cầu tính năng

Hệ thống chạy trên nền tảng mobile, có khả năng truy cập ở tất cả mọi vị trí, thời điểm cókết nối internet.

Một vài yêu cầu mà hệ thống cần đáp ứng:

Chức năng truy vấn: Đáp ứng yêu cầu truy vấn của người dùng như tìm kiếm, xem danhsách sản phẩm theo chủ đề,

Chức năng cập nhật: Chức năng cập nhật luôn được thực hiện và giảm thiểu tối đa saisót của người dùng.

Chức năng truy vấn nhanh: Gợi ý sản phẩm.

Trang 35

3.3 Phân tích yêu cầu chức năng3.3.1 Admin

Hình 11 Sơ đồ phân rã chức năng Admin

Trang 37

3.4 Phân tích yêu cầu phi chức năng

● Ứng dụng sử dụng tiếng Anh, hoạt động ổn định trên nền tảng mobile.

● Để thu hút được người dùng hứng thú sử dụng, các thao tác trên ứng dụng phảithật đơn giản Giao diện thân thiện, hiển thị nhiều hình ảnh trực quan.

● Dữ liệu sản phẩm được cập nhật liên tục, đảm bảo trải nghiệm người dùng

● Các thông tin của người dùng được bảo mật và bảo đảm chỉ có những người cóthẩm quyền mới có thể truy cập vào các tài nguyên cụ thể.

3.5 Phân tích yêu cầu người dùng

Hệ thống sử dụng kết quả khảo sát, nghiên cứu hiện trạng để tiến hành phân tích yêu cầuvà chức năng của hệ thống, được biểu diễn bằng ngôn ngữ mô hình hoá (UML).

Trang 38

3.6 Sơ đồ Use case

Hình 14 Sơ đồ Use case

Trang 39

3.6.1 Danh sách tác nhân

1 Người dùng Người dùng, là người dùng khi không đăng nhập2 Khách hàng Khách hàng, là người dùng có thể đăng nhập vào ứng

dụng và sử dụng các chức năng của ứng dụng3 Admin Admin, là người quản lý ứng dụng, là người có quyền

quản lý sản phẩm, người dùng và hóa đơn

Bảng 3 Danh sách tác nhân

3.6.2 Danh sách Use case

1 Đăng nhập Dành cho Người dùng sở hữu tài khoản, đăngnhập vào ứng dụng

2 Đăng ký Dành cho Người dùng khách, đăng ký tàikhoản mới

3 Quên mật khẩu Dành cho Người dùng sở hữu tài khoản, đặtlại mật khẩu mới thông qua email4 Đăng xuất Dành cho Người dùng sở hữu tài khoản, đăng

xuất khỏi ứng dụng

5 Cập nhật thông tin tài khoản Dành cho Người dùng sở hữu tài khoản, cậpnhật thông tin tài khoản cá nhân6 Đổi mật khẩu Dành cho Người dùng sở hữu tài khoản, đổi

mật khẩu mới cho tài khoản cá nhân7 Xem danh sách sản phẩm Xem danh sách các sản phẩm có trong cửa

8 Tìm kiếm sản phẩm Tìm kiếm sản phẩm có trong danh sách theotên

9 Xem thông tin chi tiết sản

phẩm Xem thông tin chi tiết sản phẩm

Trang 40

10 Thêm sản phẩm vào giỏ hàng Thêm sản phẩm muốn mua vào giỏ hàng đểthanh toán

11 Quản lý giỏ hàng Quản lý danh sách sản phẩm đã thêm vô giỏhàng

12 Xóa sản phẩm trong giỏ hàng Xóa sản phẩm trong giỏ hàng

13 Sửa số lượng sản phẩm Tăng hoặc giảm số lượng sản phẩm muốn mua14 Đặt hàng Khách hàng tiến hành thanh toán các sản

27 Sửa hóa đơn Dành cho admin, thay đổi trạng thái hóa đơn

Bảng 4 Danh sách Use case

Ngày đăng: 15/05/2024, 09:26

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan