1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ á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 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Xây Dựng Hệ Thống Hỗ Trợ Mua Bán Đa Nền Tảng Có Tích Hợp Recommender System
Tác giả Vũ Đức Mạnh, Đinh Quang Mạnh
Người hướng dẫn ThS. Nguyễn Công Hoan
Trường học Đại học Công nghệ Thông tin
Chuyên ngành Công nghệ phần mềm
Thể loại Đồ án
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 96
Dung lượng 4,17 MB

Nội dung

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ách dễ dàng và thuận tiện trên nhiều nền tảng khác nhau như websit

Trang 1

Sinh viên thực hiện:

20520630 – Vũ Đức Mạnh

20520628 – Đinh Quang Mạnh

Trang 2

Sinh viên thực hiện:

20520630 – Vũ Đức Mạnh

20520628 – Đinh Quang Mạnh

Trang 3

Thành phố Hồ Chí Minh, tháng 09 năm 2023

ĐỀ CƯƠNG CHI TIẾTTÊN ĐỀ 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

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/2023

Sinh viên thực hiện:

Hiện nay, thị trường mua bán qua internet đang phát triển rất mạnh Người dùng

có 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ách

dễ 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.

Tương tác giữa người mua và người bán

Recommeder system gợi ý sản phẩm liên quan

Cung cấp giao diện thân thiện, tiện dụng, phù hợp với mọi đối tượng khách hàng.Cung cấp giao diện quản lý tài khoản nội bộ, đăng và chỉnh sửa tin tức, quản lýhỏi đáp, giải quyết thắc mắc dành cho nhân viên trung tâm, phân quyền theotừng vị trí

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

Phân tính, đánh giá các ứng dụng tương tự

Khảo sát lấy ý kiến người dù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

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

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

3.3.1 Admin

3.3.2 Nhân viên

3.3.3 Khách hàng

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

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

3.6 Sơ đồ Use case

3.6.1 Danh sách tác nhân

Trang 12

3.6.2 Danh sách Use case

3.6.3 Mô tả chi tiết Use case

3.7 Class Diagram

3.8 Sequence Diagram

3.8.1 Sequence Diagram Đăng nhập

3.8.2 Sequence Diagram Đăng ký

3.8.3 Sequence Diagram Cập nhật tài khoản3.8.4 Sequence Diagram Đặt hàng

3.8.5 Sequence Diagram Đăng bán

3.8.6 Sequence Diagram Thêm sản phẩmChương 4 THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG4.1 Sơ đồ liên kết màn hình

Trang 13

Chương 5 CÀI ĐẶT VÀ KIỂM THỬ

5.1 Môi trường cài đặt và kiểm thử:

Trang 14

Chương 1 GIỚI THIỆU TỔNG QUAN ĐỀ TÀI1.1 Lý do chọn đề tài

Hiện nay, thương mại điện tử đang ngày càng phát triển, và người mua hàng ngày càngtìm kiếm các nền tảng mua bán trực tuyến để mua sản phẩm và dịch vụ Việc phát triểnmột ứng dụng mua bán đa nền tảng có thể giúp chúng ta tận dụng cơ hội thị trường vàthu hút một số lượng lớn khách hàng tiềm năng Ngoài ra, người dùng truy cập Internetchủ yếu thông qua các thiết bị di động như điện thoại thông minh và máy tính bảng.Một ứng dụng mua bán đa nền tảng cho phép khách hàng truy cập và mua hàng từ bất

kỳ thiết bị di động nào, tạo ra trải nghiệm mua sắm thuận tiện và tiện ích Với một ứngdụng mua bán đa nền tảng, chúng ta có thể tiếp cận và phục vụ khách hàng trên nhiềunền tảng khác nhau, bao gồm các hệ điều hành di động (Android, iOS), trình duyệt web

và có thể mở rộng thậm chí đến các nền tảng điện tử khác như smart TV hoặc thiết bịđeo

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 doanh

và 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, ta

có 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

1.3 Phạm vi

Phát triển hệ thống khuyến nghị tích hợp với quản lý với tính năng hỗ trợ khách hàng:

● Có loại tương tự với một sản phẩm cụ thể

● Các sản phẩ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ươngtự

● Dựa vào những sản phẩm đang hot hiện nay

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

1.5 Phương pháp thực hiện

● Tìm hiểu, phân tích quy trình xây dựng một website bằng các công nghệ đã đề ra

● Phân tính, đánh giá các ứng dụng tương tự

● Tìm hiểu tổng quan về Recommend System và các thuật toán liên quan

● Hiện thực hệ thống

1.6 Công nghệ sử dụng

● Front-end: ReactJS

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

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

Trang 18

recommender systems

filtering recommender systems

Trang 19

Amazon sử dụng nó để đề xuất sản phẩm cho khách hàng

Netflix 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ế

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 ta

có 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

bảo:

¿(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ương

và â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 e similarity(u 1 ,u 2)=cos(u 1,u 2)= uT 1u 2

¿∨u 1∨¿2.∨¿u 2∨¿2Trong đó 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 vector toà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

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ính

vì 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ần

tử trong trang web, thay đổi nội dung, xử lý sự kiện và giao tiếp với máy chủ để trao đổi

dữ 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ồm

cơ 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ện

hỗ 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 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á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ển

sử 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 33

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

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ăng

3.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ầu

và 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ập

2 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ụng

3 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, đăng

nhập vào ứng dụng

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

khoản mới

3 Quên mật khẩu Dành cho Người dùng sở hữu tài khoản, đặt

lại mật khẩu mới thông qua email

4 Đă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ập

nhật thông tin tài khoản cá nhân

6 Đổ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ân

7 Xem danh sách sản phẩm Xem danh sách các sản phẩm có trong cửa

hàng

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

tê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 mua

14 Đặt hàng Khách hàng tiến hành thanh toán các sản

phẩm có trong giỏ

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

sách Xóa sản phẩm đã yêu thích trong danh sách

17 Xem sản phẩm được bán Xem các sản phẩm cũ đang được đăng bán

của người dùng khác

18 Quản lý sản phẩm bán Quản lý các sản phẩm người dùng đã đăng

bán

19 Thêm sản phẩm muốn bán Đăng sản phẩm mà người dùng muốn bán

20 Xóa sản phẩm muốn bán Xóa các sản phẩm người dùng đã đăng

21 Sửa sản phẩm muốn bán Sửa sản phẩm người dùng đã đăng bán

22 Thêm người dùng Dành cho admin, thêm người dùng sử dụng

ứng dụng

23 Xóa người dùng Dành cho admin, xóa người dùng

24 Thêm sản phẩm Dành cho admin, thêm sản phẩm vào cửa

hàng

25 Xóa sản phẩm Dành cho admin, xóa sản phẩm muốn xóa

26 Xóa hóa đơn Dành cho admin, xóa hóa đơn khách hàng đã

tạo

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

HÌNH ẢNH LIÊN QUAN

Hình 1. Phân loại Recommender System - đồ á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
Hình 1. Phân loại Recommender System (Trang 19)
Hình 7. Expo Go - đồ á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
Hình 7. Expo Go (Trang 29)
Hình 8. Firebase - đồ á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
Hình 8. Firebase (Trang 30)
Hình 9. Django - đồ á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
Hình 9. Django (Trang 31)
Hình 11. Sơ đồ phân rã chức năng Admin - đồ á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
Hình 11. Sơ đồ phân rã chức năng Admin (Trang 35)
Hình 12. Sơ đồ phân rã chức năng nhân viên - đồ á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
Hình 12. Sơ đồ phân rã chức năng nhân viên (Trang 36)
Hình 14. Sơ đồ Use case - đồ á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
Hình 14. Sơ đồ Use case (Trang 38)
Hình 15. Class Diagram - đồ á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
Hình 15. Class Diagram (Trang 52)
Hình 16. Sequence Diagram Đăng nhậ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
Hình 16. Sequence Diagram Đăng nhập (Trang 53)
Hình 17. Sequence Diagram Đăng ký - đồ á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
Hình 17. Sequence Diagram Đăng ký (Trang 54)
Hình 19. Sequence Diagram Đặt hàng - đồ á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
Hình 19. Sequence Diagram Đặt hàng (Trang 56)
Hình 22. Sơ đồ liên kết các màn hình của khách hàng - đồ á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
Hình 22. Sơ đồ liên kết các màn hình của khách hàng (Trang 59)
Hình 26. Màn hình Shopping - đồ á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
Hình 26. Màn hình Shopping (Trang 65)
Hình 27. Màn hình Detail Product - đồ á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
Hình 27. Màn hình Detail Product (Trang 66)
Hình 28. Màn hình Favorite - đồ á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
Hình 28. Màn hình Favorite (Trang 67)
Hình 29. Màn hình Cart - đồ á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
Hình 29. Màn hình Cart (Trang 68)
Hình 34. Màn hình Information Account - đồ á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
Hình 34. Màn hình Information Account (Trang 73)
Hình 35. Màn hình Secondhand - đồ á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
Hình 35. Màn hình Secondhand (Trang 74)
Hình 36. Màn hình Add Post - đồ á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
Hình 36. Màn hình Add Post (Trang 75)
Hình 38. Màn hình Detail Order - đồ á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
Hình 38. Màn hình Detail Order (Trang 77)
Hình 39. Màn hình Address - đồ á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
Hình 39. Màn hình Address (Trang 78)
Hình 40. Màn hình Add Address - đồ á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
Hình 40. Màn hình Add Address (Trang 79)
Hình 41. Màn hình Card - đồ á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
Hình 41. Màn hình Card (Trang 80)
Hình 42. Màn hình Add Card - đồ á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
Hình 42. Màn hình Add Card (Trang 81)
Hình 43. Màn hình Dashboard - đồ á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
Hình 43. Màn hình Dashboard (Trang 82)
Hình 49. Màn hình Detail User - đồ á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
Hình 49. Màn hình Detail User (Trang 88)

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

TÀI LIỆU LIÊN QUAN

w