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

Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng ứng dụng di động kết nối người dùng có nhu cầu trao đổi, mua bán hàng online

133 0 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 ứng dụng di động kết nối người dùng có nhu cầu trao đổi, mua bán hàng online
Tác giả Bùi Thị Huyền Trân, Nguyễn Thị Kim Yến
Người hướng dẫn ThS. Nguyễn Hồ Duy Tri
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Hệ thống thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 133
Dung lượng 65,65 MB

Nội dung

TÓM TẮT KHÓA LUẬNĐề tài khóa luận “Xây dựng ứng dung di động kết nối người dùng có nhu cau traođổi, mua bán hang online” là một đề tài hướng đến đối tượng người dùng có nhu cầu tìm kiếm

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA HE THONG THONG TIN

BUI THI HUYEN TRAN

NGUYEN THI KIM YEN

KET NOI NGUOI DUNG CO NHU CAU TRAO DOI,

MUA BAN HANG ONLINE

Building mobile application for connecting

in need sale online

KY SU NGANH HE THONG THONG TIN

TP HO CHi MINH, 2021

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

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

KHOA HỆ THÓNG THÔNG TIN

Bùi Thị Huyền Trân — 16521275

Nguyễn Thị Kim Yến - 16521485

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

XÂY DỰNG ỨNG DỤNG DI ĐỘNG

KET NÓI NGƯỜI DUNG CÓ NHU CAU TRAO DOI,

MUA BAN HANG ONLINE

Building mobile application for connecting

in need sale online

KY SU NGANH HE THONG THONG TIN

GIANG VIEN HUONG DAN

ThS Nguyễn Hồ Duy Tri

TP HÒ CHÍ MINH, 2021

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ố

HĐẦY của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

—= ee cece eee e nent eee ee eee eneeeenene ee en — Chủ tịch.

—= — Thư ký.

— ence cece een e cence eee e tent ene ena een ees — Uy viên

Boece eee e cence eee ence eee eeeenaeneeneeneens — Uy viên

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, nhóm tác giả xin gửi lời cảm ơn chân thành đến quý Thầy Côtrường Đại học Công nghệ Thông tin đặc biệt là quý Thầy Cô Khoa Hệ thống thôngtin - những người đã dùng tri thức và tâm huyết của mình dé truyền đạt cho chúng

em vốn kiến thức vô cùng quý báu trong khoảng thời gian học tập tại trường Nhữngkiến thức mà Thầy Cô truyền đạt là bước đệm quan trọng giúp chúng em có thé hoànthành đề tài tốt hơn

Đặc biệt, nhóm tác giả xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắcđến ThS Nguyễn Hồ Duy Trí, cảm ơn Thay đã tận tình hướng dẫn và tạo điều kiệntốt nhất cho nhóm hoàn thành đề tài này Những lời động viên, góp ý chân tình củaThầy là động lực để nhóm tiếp thu được nhiều kiến thức bé ích cũng như vượt quanhững khó khăn khi tìm hiểu và thực hiện khóa luận

Trong thời gian thực hiện đề tài, nhóm tác giả đã cô gang vận dụng những kiếnthức nền tang đã học, kết hop học hỏi và tìm hiểu công nghệ mới dé ứng dụng xây

dựng đề tài khóa luận tốt nghiệp Tuy nhiên trong quá trình thực hiện, do kiến thức

và kinh nghiệm còn nhiều hạn chế, nên khó tránh khỏi những thiếu sót Chính vì vậy,nhóm tác giả rat mong nhận được sự góp ý từ quý Thay Cô dé nhóm hoàn thiện thêmnhững kiến thức và kỹ năng can thiết, làm hành trang quý báu dé nhóm thực hiện các

dự án thực tế trong tương lai

Xin chân thành cảm ơn quý Thay Cô!

Nhóm tác giả

Trang 5

3.1.1 Dah nghĩa 2Q nh SH HH ng tre 9

3.1.2 _ Giao diện người dùng óc St 3 E3 rtstrrrrrrerrkrrkrrre 9

3.1.3 Cơ sở dữ liệu và backend - <5 + +2 **‡++*c+eseekessexeeese 10

3.1.4 _ Nền tảng tích hợp -¿+s++k++keEkS E212 erkrrree 1 3.1.5 Ưu điểm va nhược điểm c-5+cccccxtertrrtrrrrrrrrrrrrrrrrrkes 12 3.2 Ngôn ngữ lập trình ÏD4Y( - <5 E1 1E9111911 1 930 19910119 ng ng như 13

3.2.1, Dinh in 13

3.2.2 Cac thư viện hỗ trợ và packages -:-5+©5++c2xccxerxerxerxee 13

3.2.3 Ưu điểm và nhược điểm: -:- 5: S2+E+ESEESESESEEEESEvEEEErEerrkrrerres 15

E0 ẦẦỢOÁ 3ä 15

3.3.1 Dinh nh o 5 15

3.3.2, Các dịch vụ nổi bật của Firebase ¿- 2s s+xeEx+EeExeEerxererkers 16

Trang 6

3.3.3 Ưu điểm và nhược điểm -¿- 5c St+E+EEESE+ESEEEESEEEEEkrEerrkrkerrrx 18

B.A, Python 19

5 "0i ha 19

3.4.2 Ưu điểm va nhược điểm c:-5cctcccvvtrerrtrrtrrkrrirrrtrrrrrkes 19

4.4 Thử nghiệm và đánh gIá - (E323 321 E*1 9E SE HH ng triệt 27

4.5 Ứng dụng thuật toán vào bài toán của đề tài - 2-5 s2xz+xs+rxerxcres 29

Chương 5 PHAN TICH VÀ THIET KE HỆ THNG - - cs5++xec+ 32

5.1 Phan tich yOu nh ố -cd ÔỎ 32

5.1.1 Yêu cầu chức năng - ¿+ +k+EE+EEEEEEEESEEEEEErkerkerkrrkee 325.1.2 _ Yêu cầu phi chức năng - ++++2+++EE+EEeEEtrErrrkrrkerkerreee 325.1.3 Yêu cầu lưu trữ cccccrrriirrrtriirrrrrrrrrrrrrrrerriee 335.2 SO 46 UseCase ân::ˆ›Ö33334334 33

5.3 Danh sách các tác nan oo ee cece eeccseeeseceseceeeceeeseesseceeeseeeseseaesseenaeens 34

5.4 Sơ đồ hoạt động -:- ¿St SE E2112112712112112111121121111 111.111 35

5.4.1 RAO Vat 8 — 35

5.4.2 XEM CIN TAO VAE 77 aa 37 5.4.3 DAC HANG ccccccecccccsssssssseseesssssesssssssssseessessssssessessesessessessssseseesseesessee 37

Trang 7

5.4.4 Quản lý đơn hang oo ee eee eceeceeseeeseceeececeeeeeaeceaeceeeseeeaeseseeeeeeaeees 39

5.4.5 Yêu thích/ bỏ yêu thích sản phẩm cccccccscsssessesstesseessessesstssseessees 41

5.4.6 Đăng ký/ hủy đăng ký kênh -.- 5 SĂ cty 42

5.5.3 Đặt NaN eee eceeececeseeseeseeseeeeceeecssceseesesseesessessessessesseseeeeeeeaes 48

5.5.4 Quản lý đơn hàng 222 12111 1 gi 49

5.5.5 _ Yêu thích/ bỏ yêu thích sản phẩm -¿-s¿©+sz+zx++zs+ex 50

5.5.6 Đăng ký/ hủy đăng ký kênh - 5 +c + xssrseerrerererrrrre 51

5.6.4 Quản lý đơn hàng -Q St nS 3S TH HH ng ng ry 57 5.6.5 Yêu thích/ bỏ yêu thích sản phẩm - 2-2 s¿52+z+z++zxezszez 57 5.6.6 Đăng ký/ hủy đăng ký kênh - - 5s kg 58

5.6.7 Tìm Ki6 woes eeeceseeeeessseecesssecssneeccssnecessnecessneceesnneeessnecssneessnnsecssneeeteey 58

Trang 8

5.6.8 XAc MNAN tin LAO Vat cc 59

5.6.9 RepOrt ha e 59

5.7.2 So đồ trạng thái tin -c- ccStccte SE 2x tererrrrkeg 60

5.8 Thiết kế cơ sở dit liệu +: 2¿©5¿+SE+2EE+EE+SEE2EEE2E12712221221 21122122 re 61

5.8.1 _ Tổ chức dữ liệu ¿©-+++c+t2EEtEEEEEEEEkerrrerkrsrkrrrrees 615.8.2 Mô tả cau trúc dit liệu + E222 EEEEEEEEErrrrrrkerkerreee 62

Chương 6 CÀI DAT UNG DỤNG - 2 + k+EE+E+E+Eerkerkerkerkrree 71

6.1 Cài đặt và triển khai hệ thống: -¿- ¿2S +E+EE+EE+E£+EE+E££EeEEerEerkerxereee 71

6.1.1 Cau hình cài đặt 55cScccccrkererrrrrrerkerreee 71

6.1.2 Môi trường phát triển và trién khai hệ thống -. - 71

6.1.3 SO đồ giao HEM eee ceccccscessessseessesssesssesssessecssessecssecssecssessecssecseeseeasecs 72

6.2 Man hin Chih 8 AẢ ÔỎ 73

6.11 Don hang ban oo -4- 85

Trang 9

6.11.1 Danh sách đơn hang bán - - 5 Ăn gi, 85

6.11.2 Chi tiết đơn hang ban occ ceccccccecseessesssessssessesseessecssecsessseessecstesseessess 85

6.12.1 Danh sách đơn hang mua -.- 5 5 S5 SE ** ESEEskEsekseesrksreeeee 87

6.12.2 Chi tiết đơn hàng mua 2- 2-52 £SESE£EE£EEEEE2EEEEEerkerkerrereee 88

6.13 Kénh c2 .ố 89

6.13.1 Danh sách kênh đăng ký - 5-12 1S irrresrkrerkrree 89

6.13.2 Chi tiết KONW occ cecececccscessesssesssessssssessssesssesssssesssessusesecssessuessesesesesecs 90

SE 00/).0,0) 00087 ÔỎ 91

6.15 Màn hình trợ giúp - 2: <©+2+EE£2EE+2EE£EEEEEEEEEEEEEEE1E2E1211711 21 xrrxee 92

6.16 Màn hình chi tiết sản phẩm 2-2 ¿+ E£SE£EE+EE2EE2EE2EEEEEEErEerkrrkrrkee 93

Chương7 KẼẾTLUẬN © +-E+cE+EEEEESEEEEErrErrkerkerkrres 95 Chương 8 HƯỚNG PHAT TRIÉN 2 2¿©+¿+£+2+z+£xe+rxezxesree 96

PHU LUC eee cece cceesecececsecesscsecsecsseescssessessessessessessessessesseseeseessesseeeeegs 98

Trang 10

DANH MỤC HÌNH

Hình 2.1: Bảng xếp hạng các doanh nghiệp thương mại điện tử hàng đầu tại Việt

ÌNAI G1 Họ TT TH 6 Hình 3.1: Logo framework TFÏUẨ€T- - 5c 121 393119111910 1 9301 kg ngư 9

Hinh 3.2: BLOC pattern an 11 Hình 3.3: Logo ngôn ngữ lập trình Dart - <5 3c 3+2 + ESveereeereeereeeere 13 Hình 3.4: Logo cơ sở dữ liệu Flrebase 63+ 12119 1v ri 15

Hình 4.1: Framework chung của NCTE - << 1 3k k* HH TH HH trên 23

Hình 4.2: Mô hình Neural matrix factorization (thừa số hóa ma trận NO-Fron) 24

Hình 4.3: Kết quả chạy thuật toán INCE -2- 22 2 E+SE+EEE2EE2EEEEEEEEEEEkerkrrkrrer 28

Hình 4.4: Kết quả chạy thuật toán CTF ¿- ¿- ¿+ +E+EE£EE+EE2EE2EEEEEEeEEerkerkerkrree 28Hình 4.5: Kiến trúc khuyến nghị 2-2 + 5S©S£2S£+EE£EEtEEE£EEEEEeEEerkerrerrxerkrree 29Hình 4.6: Quy trình áp dụng thuật toán NCF vào hệ khuyên nghị của ứng dụng 30

Hình 4.7: Dữ liệu lịch sử mua hang - - - 5 62+ 3119139 SE re 30

Hình 5.1: Sơ đồ UseCase tổng quat +: 2© ¿+ 2+Ek+EE+EEE£EE+EEEEEerEErrkrrkerkrex 34

Hình 5.2: Sơ đồ hoạt 00301900 36

Hình 5.5: Sơ đồ hoạt động Quản lý đơn hàng -2- 2© 2©5£ E+£EczEzEsrxerxezex 40

Hình 5.6: Sơ đồ hoạt động Thêm sản pham yêu thích/ bỏ yêu thích sản pham 41

Hình 5.8: Sơ đồ hoạt động Tim kiếm ¿- ¿2£ + E+EE2EE£E£+E£E£EerEerxerxrrerree 44

Hình 5.10: Sơ đồ hoạt động report tỉn 2¿- +¿©5+2E++Ex+2Ext2EEtEErerxesrxerresree 46

Hình 5.11: Sơ đồ tuần tự raO Vặt -¿-c- tt St St E21 E111 1111 EEEEEEEEEEEEEEkrrrrrrer 47

Hình 5.12: Sơ đồ tuần tự xem tin raO VẶT ¿+ St Sk+EvEvEESESEEEESEeEerkrkerrrerkrree 48

Hình 5.13: Sơ đồ tuần tự đặt hàng - 2 5¿+22+EE‡EEEEEEEEEEEEEEEEEEEkrrkerkrrer 48

Trang 11

Hình 5.15: Sơ đồ tuần tự yêu thich/ bỏ yêu thích sản phẩm ở trang danh sách sản

Hình 5.16: Sơ đồ tuần tự yêu thích bỏ yêu thích sản phẩm ở màn hình chỉ tiết sản

0Ð 50

Hình 5.18: Sơ đồ tuần tự tìm kiếm tỉn -2-©5¿©22+2++2Et£E+2EESEEerxrrkerrxerkerkrres 51Hình 5.19: Sơ đồ tuần tự tìm kiếm đơn hàng -. -2- 2¿©2+¿2++2x++zxzzxrrxesree 52

Hình 5.21: Sơ đồ tuần tự tìm kiếm sản phẩm yêu thích -2- ¿5 5 s+cs2 5+2 53

Hình 5.22: Sơ đồ tuần tự duyệt tin rao Vat ceeceeceeccsscessesseesessessesseessessessessesseeseeseees 53

Hình 5.23: Sơ đồ tuần tự report tỉn - 2 2+5 SEeSESEEEEEEEEEEEE2121 21212 erkrree 54Hình 5.24: So đồ lớp thêm/ cập nhật tin rao Vặt ¿+ + +++<+++sexsseeeesess 54Hình 5.25: Sơ đồ lớp xem tin raO VẶT 2-2: +22E£+EE£EE£EEE2EEEEEEEEErEerrkerkerkrex 55Hình 5.26: Sơ đồ lớp đặt hàng -2-©22©2222x2E122E12711221211221.221 2112 crkv 56

Hình 5.27: Sơ đồ lớp quản lý đơn hang - - 2 2 E+E+2E££EE+EE+EEezEezExerxerxerex 57

Hình 5.29: So đồ lớp đăng ký/ hủy đăng ký kênh 2-2 2 2s +x+zx+zx+zxzse2 58

Hình 5.30: So đồ lớp tìm KiGM cccceccecceccssessesccssessessessesesessessessesscssesessucsssessessessesseaee 58

Hình 5.32: Sơ đồ lớp report tỉn ¿ 2¿- + ©++2+++Ex2EEEEEESEEE2EE2EEE2EESELCErrerkrrree 59

Hình 5.33: Sơ đồ trạng thái user - ¿2 25+ 2EE2EE£EEEEEEEEEEEEEEEEEEErrkrrkerkrrer 60

Hình 5.34: Sơ đồ trạng thái tỉn - 2 2522 +ESEEEEEEEEEEEEE2E1211215 21211111 xe 60Hình 5.35: Sơ đồ trạng thái đơn hàng ¿- ¿5c s+SE9EE+EE£EE+EEZEEEEerEerkerkrrkrree 60Hith 6.1: So 46 giao 8N 72

Hình 6.2: Màn hình chính: - << E2 2211111112253 1 1111 953111 119933511 key 73

Hinh 6.4: Man hinh dang ky oc 75

Hình 6.6: Màn hình đăng nhập - - 2G 1122111131111 1 81 111 1 1 1 1 81 1g ng 77

Trang 12

Hình 6.7: Màn hình cập nhật thông tin tài khoản - - 55 Ssss++ksseersseeese 78

Hình 6.8: Màn hình đăng t1T 6 113 23 919 HT HH ng g g gưệp 79

Hình 6.9: Màn hình cập nhật hình ảnh của sản phẩm 2- ¿52522552 80

Hình 6.10: Màn hình danh sách tin duyỆt - - - 5 5-5 + +vEEsseseserseeers 81

Hình 6.11: Danh mục sản phẩm - 2 2 £+S£+E£+E£EE#EE+EE£EEEEEZEEEEerEerkerxrrkrree 82 Hình 6.12: Màn hình danh sách tin tôi đăng - - 55 5-5 + *+*ssseeeeeerseeers 83 Hình 6.13: Màn hình giỏ hàng - 5 55 + 231 91T TH TH HH giết 84

Hình 6.14: Màn hình danh sách đơn hàng bán - - s6 + secssesseseesee 85 Hình 6.15: Man hình chi tiết đơn hàng ban -2- 2-52 2+52+E2+Ee£Eezxerxerssee 86

Hình 6.16: Màn hình danh sách đơn hàng mua 5 5555 + *+scs+esserses 87 Hình 6.17: Màn hình chi tiết đơn hàng mua c cecceccssessessessessessessesesessessessessesseeseees 88

Hình 6.18: Màn hình danh sách kênh đăng ký - 5+ + +5 £+++sex+eesseess 89

Hình 6.19: Màn hình chi tiết kênh - 2-2 52E£+E+EE£EE££EE+EEvEEerEezEerrxerxerex 90

Hình 6.21: Màn hinh chi tiết sản phẩm -2- 2 2 E5E2E£2EE2EE+EEe£EEzEE+Exerxezez 92Hình 6.22: Màn hình chi tiết sản phẩm khi duyệt tin/ khi user xem tin của minh 93

Hình 6.23: Màn hình chi tiết sản phẩm mua hang 2-2 25525552 s+£s2 5+2 94

Hình 2: Màn hình Đổi mật khẩu occ eeessseeessseeessneeessneeessneeessneeessneeessneees 99

Hình 3: Màn hình Quên mật khâu - - 2 + E +E+EE+E#EE+EEEE+EEEEEErkerrkerxree 100

Hình 5: Sơ đồ hoạt động Đăng ký 2-22-55222Et 2222221221211 crkre, 102

Hình 8: Sơ đồ tuần tự đăng nhập - 2 2 SESE+2EE2EEEEEEEEEEEEEEEEEEEEEerkrrrrrrkee 105

Hình 10: Sơ đồ tuần tự quản lý tài khoản -©2¿ 5¿2c++2x++zxezrxsrxrrseee 106Hình 11: Sơ đồ tuần tự cập nhật sé lượng ở màn hình danh sách sản phẩm ¬— 106

Trang 13

Sơ đồ tuần tự cập nhật số lượng ở màn hình chi tiết sản phẩm " 107

Sơ đồ tuần tự hủy giỏ hàng -2- 2-55 S222 EEEEEEEEErkerkrrrrrrred 107

Sơ đồ tuần tự tìm kiếm đơn hàng - 2 5 5 E2££+£E+£Eerxezrerrerred 108

Sơ đồ tuần tự tìm kiếm kênh yêu thích -¿ 2 s2 szxz+zz+zs+zxd 108

Sơ đồ tuần tự quản lý đơn hàng bán -2- 5:52 <2xcxezxezzxered 109

Sơ đồ tuần tự liên hỆ - ¿5c 2+2<+EE£EE2EE2EEEEEEEE2EE21121 212 crrrrei 110

Sơ đồ lớp đăng KY ¿- 2¿©2+22t2x 2 122112711211211 11121121111 re 111

Sơ đồ lớp đăng nhapn ceceecceccccsesssssesesseesessessessessesesessessessessssseseaeesees 111

Sơ đồ lớp liên HG oeececcecceeccsccessessecssessessessessssssessessessesssessessessesssesseesesseseneess 111

Sơ đồ lớp quan lý tài KHOAM oo eececcescesessessessessessessesesessesseesesessesesesesees 112

Mail gửi mã xác thực đăng ký tài khoản 55-5 < << <++ses+sss2 113 Mail thông báo đơn hàng đã nhận - 5 55555 £ + ++vEsereereerrke 113 Mail thông báo đơn hàng dang Ø1aO 5 5 55 + + sssksrskrskrrke 114 Mail thông báo đơn hang đã giao thành công 555 +++s<++s 115

Mail thông báo đơn hàng bị hỦy - - 5 5S t3 kseExeereereerrrsrres 116

Mail reset mật khẫu ¿5t SE EEEEESEEEEEEEEEEEEEEEEEEEkrkekererkersrr 117

Trang 14

Bảng 5.14: Mô tả collection recommendation prodUCt - 5s «<< <£+s£+s+ 69 Bang 5.15: Mô tả collection report DOSE - - G1111 1 HH ng re 70

Trang 15

DANH MỤC TỪ VIET TAT

STT | Thuật ngữ Từ viết tắt | Nội dung

1 8-bit Unicode UTF-8 Dinh dạng chuyên đổi

Transformation Format Unicode 8-bit

2 Advanced RISC Machine ARM một kiến trúc dạng RISC cho

các vi xử ly máy tính, được

cau hình cho các môi trường

khác nhau, trong đó RISC là

một cách thiết kế vi xử lí

3 Application Programming | API Phương thức, giao thức kết

Interface nối với các thư viện và ứng

dụng khác.

4 Artificial Intelligence AI Trí tuệ nhân tạo

5 Backend-as-a-Service BaaS Cung cấp các phần mềm dưới

dạng dịch vụ.

6 Business Logic Component | BLoC Đây là hệ thống quan lý trạng

thái dành cho Flutter do các

nhà phát triển của Google đềxuất

7 Collaborative Filtering CF Loc cộng tác

8 Cơ sở dữ liệu CSDL Co sở dt liệu

9 Generalized Matrix GMF Dữ liệu hóa ma trận tong quát

Factorization

10 Identification ID Mã nhận dang cho đối tượng

Trang 16

11 JavaScript Object Notation | JSON JSON là một cú pháp dé lưu

trữ và trao đôi dữ liệu, là vănbản, được viết với ký hiệu đối

tượng JavaScript.

12 Just In Time JIT Biên dich trong thời gian chạy

một cách nhanh chóng.

13 Multi-Layer Perceptron MLP Perceptron nhiều lớp

14 Neural Collaborative NCF Lọc cộng tac băng mạng

nơ-Filtering ron

15 Secure Sockets Layer SSL Tiêu chuẩn an ninh công nghệ

toàn cầu tạo ra một liên kết

giữa máy chủ web và trình

17 Unified Modeling UML Ngôn ngữ dành cho việc đặc

Language tả, hình dung, xây dựng và

làm tải liệu của các hệ thông phân mêm theo hướng đôi

tượng.

Trang 17

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

Đề tài khóa luận “Xây dựng ứng dung di động kết nối người dùng có nhu cau traođổi, mua bán hang online” là một đề tài hướng đến đối tượng người dùng có nhu cầu

tìm kiếm va đăng thông tin mua bán, trao đôi sản phẩm, dịch vụ trên ứng dụng rao

vặt Đây là đề tài quan trọng và có tính thực tế trong bối cảnh thị trường rao vặt trực

tuyến đang phát triển mạnh mẽ

Đề tài xây dựng một ứng dụng rao vặt đáp ứng được các chức năng cơ bản như các

ứng dụng rao vặt hiện nay như: lịch sử mua hàng, nội dung rao vặt, thông báo, thông

tin cá nhân của người dùng, Bên cạnh đó bổ sung tính năng khuyến nghị vào ứng

dụng dé đưa ra gợi ý, giúp người dùng tìm được sản phẩm phù hợp với nhu cầu của

mình một cách nhanh chóng và dễ dàng.

Sau khi tìm hiểu, khảo sát các trang rao vặt trực tuyến cũng như các ứng dụng raovặt, nhóm tác giả đưa ra hướng thực hiện cho đề tài như sau:

- _ Xây dựng ứng dụng với giao diện thân thiện, dé sử dụng Ung dụng cung cấp

các chức năng cơ bản như: đăng nhập, đăng ký tài khoản, tìm kiếm và xem tin

rao vặt, cho phép người dùng đăng và quản lý tin, quản lý tài khoản của mình,

sản phẩm yêu thích, kênh yêu thích, mua hàng, theo dõi trạng thái đơn hàng,

người bán nhận đơn và xử ly đơn hang.

- _ Xác định mục tiêu khuyến nghị cho hệ thống là đề xuất sản phẩm cho người

dùng, từ đó tìm hiểu các phương pháp khuyến nghị cơ bản để xây dựng hệkhuyến nghị, điều chỉnh các phương pháp nếu có để cho hiệu suất tốt nhất có

Trang 18

Chương 1 MO ĐẦU

Trong chương này nhóm tác giả sẽ trình bày về bài toán cũng như lý do chọn đề tài,phân tích van dé, các thách thức mà đề tài gặp phải Bằng cách tìm hiệu các ứng dụng

rao vặt hiện có trên thị trường, nhóm đã xác định được mục đích, đối tượng và phạm

vi nghiên cứu của đê tài.

1.1 Dat vần đề

Cuộc sống hiện đại hối hả cùng với sự phát triển vượt bậc của khoa học công nghệnhư điều kiện làm người tiêu dùng trên toàn cầu thay đôi thói quen mua sắm với việcdành nhiều thời gian và tiền bạc cho hoạt động mua hàng trực tuyến Trong báo cáo

"Các thành phố thương mại điện tử hàng đầu ở Châu A"! cũng ghi nhận rằng ngành

thương mại điện tử đang tiếp tục trở thành lĩnh vực day tiềm năng, với tốc độ tăng

trưởng đáng kinh ngạc khi đạt doanh thu 2,86 nghìn tỷ USD vào năm 2018, ước tính

sẽ tăng thêm va đạt mức 6 nghìn tỷ USD vào năm 2022 Theo báo cáo eConomy SEA

20192? do Google va Temasek công bố, quy mô thị trường thương mại điện tử ViệtNam đầu năm 2020 đạt 5 tỷ USD Đặc biệt trong bối cảnh dịch bệnh Covid- 19, người

tiêu dùng có xu hướng mua hàng trực tuyến dé hạn chế việc tiếp xúc ở nơi đôngngười.

Hòa cùng xu thế phát triển đó, các kênh bán hàng trực tuyến xuất hiện ngày càng

nhiều và dần khăng định ưu thế vượt trội so với kênh bán hàng truyền thống Cáctrang mạng xã hội như Facebook’, Zalo' là nơi mọi người liên lạc, trao đôi thông tincũng được tận dụng làm kênh mua bán Bắt nhịp xu hướng các ứng dụng rao vặt ởViệt Nam xuất hiện ngày càng nhiều như: Chợ Tét®, Mua bán rao vặt5, Rồng Bay’,Rao Vặt 3653, Nhu cầu người dùng tăng cao là cơ hội xây dựng hệ thống mua bán

Trang 19

trực tuyến, nhưng cũng là thách thức dé các nhà phát triển ứng dụng cạnh tranh dé

làm sao ra mat người dùng ứng dụng mua săm đem lại trải nghiệm tot.

Dé giải quyết van dé cho bài toán nêu trên, nhóm tác giả quyết định xây dựng mộtứng dụng rao vặt phi lợi nhuận kết nối những người có nhu cầu trao đổi, mua bánhàng hóa với nhau Đối tượng hướng đến là những người có nhu cầu trao đổi, muabán hàng hóa trong phạm vi khu đô thị Đại học Quốc gia, trong đó phần lớn là các

bạn sinh viên Ứng dụng không chỉ giải quyết được bài toán kết nối người bán, người

mua, có những chức năng cơ bản đáp ứng nhu cầu rao vặt mà còn tích hợp hệ khuyếnnghị đưa ra những gợi ý mua hàng hữu ích cho người dùng, kết nối người bán với

người mua một cách tot nhat.

1.2 Mục đích

Mục đích của đề tài là xây dựng ứng dụng di động kết nối những người có nhu cầu

trao đổi, mua bán hàng hóa với nhau Ứng dụng giúp người bán dễ tiếp cận khách

hàng hơn, quản lý sản phẩm và quá trình bán hàng hiệu quả hơn, có thêm một kênh

bán hàng, mà mục tiêu hướng đến là những tin rao vặt Bên cạnh đó, giúp người

mua dễ dàng tìm kiếm các sản phẩm cần mua Việc liên lạc trao đổi giữa người bán

và người mua cũng đơn giản hơn Ứng dụng còn cung cấp hệ thống khuyến nghị

cho người dùng.

Cụ thé:

- Tim hiểu về framework Flutter? và cơ sở dữ liệu NoSQL

- Tim hiểu về quy trình mua bán hang ở một số ứng dụng rao vặt, thương mại

điện tử, phan nào có cái nhìn tong quan hơn về việc mua bán trao đổi hang

hóa trên thị trường thương mại điện tử.

- Tim hiểu các thuật toán về hệ thống gợi ý (Recommender Systems) từ đó

đưa ra những gợi ý mua hàng cho người dùng một cách tốt hơn.

? https://flutter.dev/

Trang 20

- _ Xây dựng thành công ứng dụng di động kết nối người mua, người bán với

nhau và đưa ra gợi ý mua hàng cho người mua.

1.3 Đối tượng

Các hoạt động mua bán, trao đổi hàng hóa trên thị trường thương mại điện tử như:

lịch sử mua hàng, nội dung rao vặt, thông báo, thông tin cá nhân của người dùng,

Các lý thuyết về thuật toán gợi ý mua hàng

Ứng dụng di động

1.4 Phạm vi nghiên cứu

Sinh viên ở khu đô thị đại học Quốc gia Thành phố Hồ Chí Minh nói riêng và nhữngngười có nhu cầu mua bán hàng hóa nói chung

Ứng dụng hỗ trợ hai nhóm tin rao vặt:

- Rao vặt ăn uống.

- Rao vặt đồ dùng bao gồm hàng mới và hàng thanh lý

Framework: Flutter’.

Database: hệ quan trị NoSQL thông dụng va phù hợp với yêu cầu đề tài

Các kỹ thuật, thuật toán trong bài toán về hệ thống gợi ý

Với những lý do và mục đích đã trình bày nhóm tác giả quyết định thực hiện đề tài

“Xây dựng ứng dụng kết nối người dùng có nhu cầu trao đổi mua bán hàng hóa

online” với đôi tượng và phạm vi nghiên cứu mà nhóm đã xác định.

Trang 21

Chương 2 TONG QUAN

Khi bắt đầu thực hiện khóa luận, nhóm tác giả đã có những tìm hiểu về các số liệuliên quan đến thị trường thương mại điện tử nói chung và thị trường rao vặt nói riêng.Sau đây là những thông tin về tình hình nhu cầu, thị trường và các ứng dụng rao vặttương tự với ứng dụng mà nhóm muốn xây dựng

Ứng dụng thương mại điện tử: Lazada!!, Shopee!2, Tiki!3,

Ứng dụng chuyên về rao vặt: Chợ Tốt”, Mua bán rao vat®, Rao Vặt 3653

Mang xã hội: Facebook’, Instagram, Zalof,

2.3 Tình hình thị trường

Theo báo cáo từ Bộ Công Thương!” vào tháng 11/2020, thị trường thương mại điện

tử bán lẻ Việt Nam tăng trưởng nhanh chóng từ 2,2 tỷ USD năm 2013 lên 10,08 tỷ

USD năm 2020, đóng góp 4,9% doanh thu bán lẻ và dịch vụ tiêu dùng của cả nước.

Theo số liệu báo cáo “Bảng xếp hạng các doanh nghiệp thương mại điện tử hàng đầutại Việt Nam” do iPrice insights'* cập nhật vào ngày 11/11/2020 cho thấy Shopee

Việt Nam tiếp tục dẫn đầu trong quý 3/2020 về lượng truy cập website, đạt trung bình

Trang 22

62,7 triệu lượt/tháng Theo sau lần lượt là Thegioididong'Š với 29,5 triệu lượt/tháng,

Tiki!’ với 22,6 triệu lượt/tháng.

= Lượng truy cập web ếphạng 4 Ï xếphạng a ry

5 Điện Máy Xanh he l8-.- nịa | 1,649,800

6 [EQ sendo 8-.‹ '.@|O|l 141,000 |

ở Việt Nam như Chợ Tốt” bên cạnh những ưu điểm vượt trội, vẫn còn một số khuyết

điểm làm người dùng chưa hài lòng:

- Uudiém:

e Cho phép người dùng xem và đăng tin với đầy đủ các lĩnh vực.

e _ Có chế độ kiêm duyệt dé tránh tin rác

e_ Có hệ thống gợi ý sản phẩm

- Nhược điểm:

1 https://www.thegioididong.com/

Trang 23

Kiểm duyệt còn nhằm lẫn trùng tin (hai bài đăng có một số từ ngữ giống

nhau nhưng thực ra nội dung khác nhau).

Hệ khuyến nghị chỉ được áp dụng cho một số tin.

Chưa có quản lý đơn hàng.

Cần nạp phí dé tối ưu thứ tự hiển thị tin (phí cô định, không phụ thuộcvào giá trị sản phẩm nên những sản phẩm giá trị thấp cần day tin sẽthiệt thòi hơn sản phẩm giá tri cao)

Bên cạnh chọn những ứng dụng rao vặt, người dùng vẫn có thói quen đăng lên các

trang mạng xã hội như Facebook’, Zalo, Instagram! 5 vì tính thuận tiện — đây là

kênh giao tiếp hăng ngày Việc đăng tin trên các trang mạng xã hội cũng có những

ưu, nhược điêm cân làm rõ như sau:

- Ưuđiểm:

Đăng ký tài khoản nhanh chóng hoặc người dùng đã có sẵn dé giao tiếphăng ngày

Thao tác đăng bài đơn giản.

Có thê đăng bài hướng đến nhóm đối tượng khách hàng bằng cách đăng

vào các nhóm, giới hạn đôi tượng tương tác.

- Khuyết điểm:

Trang mạng xã hội là nơi mọi người chia sẻ mọi điều trong cuộc sống,

nên các bài đăng bán sẽ dễ bị trôi, khó tiếp cận khách hàng

Chưa có tích hợp quản lý đơn hàng vào hệ thống

Việc tìm kiếm sản phẩm cần mua sẽ khó khăn hơn là tìm trên trang

chuyên về mua bán hàng trực tuyên.

Như vậy, đôi với những tin mua bán thời vụ, rao vặt, người dùng cũng mong chờ vào

một ứng dụng thuận tiện bang sự kết hợp các ưu điểm và khắc phục những nhược

điêm kê trên, đáp ứng nhu câu rao vặt trực tuyên.

16 https://www.instagram.com/

Trang 24

Qua tìm hiểu, nhóm nhận thấy được ưu, khuyết điểm của của các ứng dụng rao vặt

và mạng xã hội trên thị trường Từ đó hướng đến phát triển những ưu điểm, khắc

phục những khuyết điểm góp phần vào việc phát triển đề tài khóa luận “Kết nối người

dùng có nhu cầu mua bán hàng hóa online” và giải quyết bài toán khuyến nghị cho

ứng dụng.

Trang 25

Chương 3 CƠ SỞ LÝ THUYẾT

Trong chương này sẽ trình bày về tổng quát về framework Flutter’, ngôn ngữ lập trìnhDart và Firebase mà nhóm sẽ sử dụng dé xây dựng ứng dụng

3.1 Framework Flutter

3.1.1 Định nghĩa

Hình 3.1: Logo framework Flutter

Flutter là framework của Google để tạo các ứng dụng đẹp, được biên dịch nguyên

bản cho thiết bị đi động, web và máy tính dé bàn từ một cơ sở mã duy nhất Trên ứngdụng di động dùng được trên hai nền tang Android và iOS

Flutter hoàn toàn miễn phí và cũng là mã nguồn mở

3.1.2 Giao diện người dùng

Các widget Flutter được xây dựng bằng cách sử dụng một khuôn khô hiện đại laycảm hứng từ React!” Ý tưởng chính là xây dựng giao diện từ các widget Các widget

mô tả chế độ xem của chúng sẽ trông như thế nào với cấu hình và trạng thái hiện tạicủa chúng Khi trạng thái của widget thay đổi, widget sẽ dựng lại mô tả của nó

Flutter đi kèm với một bộ các tiện ích cơ bản mạnh mẽ, trong đó những tiện ích sau

đây thường được sử dụng:

- Text: một widget văn ban Văn bản có thé được căn chỉnh vị trí, phông chữ,

cỡ chữ, trọng lượng phông chữ, màu sắc, khoảng cách chữ và nhiều thứ khác

17 https://reactjs.org/

Trang 26

Button: Một widget Button cho phép người dùng thực hiện một số hành độngkhi nhắn Flutter? không có tiện ích trực tiếp "Button", mà thay vào đó nó có

các loại nút như FlatButton và RaisedButton.

Row, Column: cho phép xây dựng bố cục linh hoạt theo cả chiều ngang (Row)

và dọc (Column) Thiết kế của những đối tượng này dựa trên mô hình bố cục

flexbox của web.

Scaffold: widget Scaffold là một khung dé thêm các yếu tô thiết kế widget phổbiến như AppBars, Drawers, Floating Action Buttons, Bottom Navigation Stack: thay vì được định hướng tuyến tính (theo chiều ngang hoặc chiều dọc),

Stack cho phép các widget xếp chồng lên nhau theo thứ tự Sau đó, có thé sử

dung widget Positioned dé điều chỉnh vị trí các phần tử con trong Stack Stackdựa trên bố cục vị trí tuyệt đối của web

Container: cho phép tạo phần tử trực quan hình chữ nhật Container có thêđược trang trí bằng BoxDecoration, chang hạn như nền, viền, đỗ bóng Thêm

vào đó, Container có thê được biến đồi trong không gian ba chiều bằng cách

sử dụng ma trận.

3.1.3 Cơ sở dữ liệu và backend

Quản lý trạng thái: một số phương pháp quản trị trạng thái:

e Provider: cho phép không chỉ hiển thị một giá trị mà còn tao, lắng nghe,

loại bỏ nó.

e setState: Trạng thái của widget con được lưu trữ trong trạng thái của

đối tượng Trạng thái bao gồm các giá trị có thể thay đổi, ví dụ giá trịhiện tại của thanh trượt hoặc kiểm tra checkbox có được chọn haykhông Khi trang thái của widget con thay đổi, trạng thái của đối tượnggọi setState() yêu cầu framework dựng lại widget

e BLoC/Rx

10

Trang 27

UI Screen

Bloc

Repository

Model

Hinh 3.2: BLOC pattern

- Giao thức http đa nền tang: package http cung cấp cách đơn giản nhất dé đưa

ra các yêu cầu http, được hỗ trợ trên Android, iOS và web

-_ Firebase: là nền tang phát triển ứng dụng Backend-as-a-Service (BaaS) cung

cấp các dịch vụ backend được lưu trữ trên máy chủ Khi nhắc đến cơ sở dữ

liệu dùng cho ứng dung Flutter? thi Eirebase như là lựa chọn ưu tiên.

FlutterFire là một tập hop các plugin Flutter kết nối ứng dụng Flutter với

Firebase.

3.1.4 Nén tang tich hop

- Thêm một iOS App Clip vào dự án Flutter hiện có hoặc đối với những tinh

huống mà ứng dụng không được viết hoàn toàn bằng Flutter cùng một lúc,Flutter có thé được tích hợp từng phần vào ứng dụng hiện có, như một thư viện

hoặc mô-đun.

II

Trang 28

- _ Tiện ích mở rộng Apple Watch: Mặc dù không thé xây dựng ứng dụng Apple

Watch với Flutter?, nhưng có thê thêm tiện ích mở rộng Apple Watch vào ứng

dụng Flutter.

- Flutter sử dụng một hệ thống linh hoạt cho phép gọi các API dành riêng cho

từng nền tảng: Kotlin hoặc Java trên Android, Swift hoặc Objective-C trên

hỗ trợ hot reload trong quá trình viết code Tính năng hot reload hoạt

động trong mi-li giây dé hiện thị giao diện tới người dùng.

Trải nghiệm hay độ mượt của ứng dụng khá tốt

Viết ứng dụng một lần chạy được trên cả iOS và Android, vì vậy thời

gian sửa lỗi và kiêm tra sẽ nhanh hơn, tiết kiệm chi phí xây dựng ứng

Trang 29

3.2 Ngôn ngữ lập trình Dart

3.2.1 Định nghĩa

Hình 3.3: Logo ngôn ngữ lập trình Dart

Dart!Š là ngôn ngữ thuần hướng đối tượng được Google giới thiệu từ năm 2011, vớimục đích cung cấp sự lựa chọn hiện đại hơn, tối ưu cho người dùng, nhất là ứng dụng

đa nên tảng

3.2.2 Các thư viện hỗ trợ và packages

Những thư viện Dart di cùng SDK Dart, sử dụng bang cách khai báo import

'dart:tên thư_viện', danh sách thư viện như:

- Thy viện đa nền tảng (Multi-platform):

e dart:async — Hỗ trợ lập trình không đồng bộ, với các lớp như Future và

Stream.

e dart:collection — Cung cấp các cấu trúc dit liệu như HashSet, HashMap,

Queue,

e dart:convert— Bộ mã hóa và bộ giải mã dé chuyên đôi giữa các kiêu dit

liệu khác nhau, bao gồm JSON và UTF-8

e dart:core -Thư viện cung cấp các hàm, lớp cơ ban và tự động nạp nên

không cần import thư viện này

!8 https://dart.dev/

13

Trang 30

e dart:developer— Tương tác với các công cụ của nhà phát triển như trình

gỡ lỗi và trình kiểm tra.

e dart:math — Hang số va hàm toán học, tạo số ngẫu nhiên

Thư viện nền tảng gốc (Native platform):

e dart:io — Hỗ trợ File, Socket, HTTP va input/output khác cho các ứng

dụng không phải web.

e dart: isolate

Thu vién nén tang web:

e dart:html — Các phan tử HTML và các tài nguyên khác dành cho các

ứng dụng dựa trên web.

e dart:web_audio — Lập trình âm thanh độ trung thực cao trong trình

duyệt.

e dar(:web_ø]— Lập trình 3D trên trình duyệt.

Package chung:

e archive - Mã hóa và giải mã các định dạng lưu trữ và nén khác nhau.

e http — Một tập hợp các hàm và lớp cấp cao giúp dé dang sử dụng tài

nguyên HTTP.

e yaml — Trinh phân tích cú pháp cho YAML.

Package mở rộng trên thư viện lõi của Dart:

e_ async — thêm các lớp tiện ích dé hoạt động với tinh toán không đồng

bộ.

e collection — thêm các chức năng và lớp tiện ich để làm việc với các bộ

sưu tập (collection) dễ dàng hơn.

e io— Chứa hai thư viện ansi va io, dé đơn giản hóa việc làm việc với tệp,

luồng tiêu chuẩn và quy trình Sử dụng thư viện ansi để tùy chỉnh đầu

ra của thiết bị đầu cuối Thư viện io có các API để xử lý các quy trình,

stdin và sao chép tệp.

14

Trang 31

3.2.3 Ưu điểm và nhược điểm:

- Uudiém:

e Năng suất: Cú pháp Dart rõ ràng và súc tích, công cụ của nó đơn giản

nhưng mạnh mẽ Loại an toàn (Type-safe) giúp người lập trình xác định

sớm các lỗi tinh tế Dart có các thư viện cốt lõi và một hệ sinh thái gồm

hàng ngàn package.

e Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn dé có

được dự đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động

và web.

e Di động: Dart biên dịch thành mã ARM và x86, dé các ứng dụng di

động của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa,

đối với các ứng dụng web, chuyển mã từ Dart sang JavaScript

e Dễ gan: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú

pháp và định hướng đối tượng của nó Nếu ai đã biết C#, Javascript

hoặc Java sẽ học Dart nhanh hơn Reactive Dart rất phù hợp với lập

trình Reactive Dart hỗ trợ lập trình không đồng bộ thông qua các tínhnăng ngôn ngữ và API sử dụng các đối tượng Future và Stream

Trang 32

Firebase'° là nền tảng phát triển ứng dụng Backend-as-a-Service (BaaS) cung cấp các

dịch vụ backend được lưu trữ trên máy chủ như cơ sở đữ liệu thời gian thực, lưu trữ

đám mây, xác thực, báo cáo sự cố, máy học, cấu hình từ xa và lưu trữ cho các tệp

tĩnh.

Firebase được ra mắt vào năm 2012, đến năm 2014 thì được Google mua lại Firebase

bao gồm ban trả phí và bản miễn phí bị giới hạn một số tính năng va lượt truy cập

3.3.2 Các dịch vụ nỗi bật của Firebase

- Analytics:

e Google Analytics là một giải pháp do lường ứng dụng cung cấp thông

tin chỉ tiết về việc sử dụng ứng dụng và mức độ tương tác của người

dùng.

e Analytics tích hợp trên các tính năng của Firebase và cung cấp báo cáo

không giới hạn cho tối đa 500 sự kiện riêng biệt bằng cách sử dụngSDK Firebase Với kết quả phân tích này nhà phát triển có thé biết được

người dùng cần gi dé nên nâng cấp những tinh năng nào

- Firebase Realtime Database:

e Luu trữ va đồng bộ dữ liệu với co sở dữ liệu dam mây NoSQL Dữ liệu

được đồng bộ hóa trên tất cả người dùng trong thời gian thực và vẫn cósẵn khi ứng dụng ngoại tuyến

e Dé liệu được lưu trữ dưới dạng JSON và được đồng bộ hóa trong thời

gian thực cho mọi máy khách được kết nối Khi tạo các ứng dụng đanền tảng bang SDK iOS, Android va JavaScript, tat cả người dùng ứng

dụng đều cùng chia sẻ một phiên ban cơ sở dữ liệu thời gian thực và tự

động nhận các bản cập nhật với dữ liệu mới nhất.

- Cloud Firestore:

! https://firebase.google.com/

16

Trang 33

La cơ sở dữ liệu đám mây NoSQL linh hoạt, có thé mở rộng dé pháttriển thiết bị đi động, web và máy chủ từ Firebase và Google Cloud

Cloud Firestore cũng cung cấp khả năng tích hợp liền mạch với các sản

phẩm Firebase và Google Cloud Platform khác, bao gồm cả chức năng

đám mây.

Authentication:

Firebase Authentication cho phép tao một user mới, lưu xác thực của

user xuống Firebase Database

Firebase Authentication cung cấp các dịch vụ backend, SDK dễ sử dụng

và thư viện giao diện người dùng được tạo san để xác thực người dùng

với ứng dụng Sử dụng Firebase Authentication người dùng sẽ xác thực

tài khoản bằng nhiều cách như email, Facebook, Twitter, Google hay

Github.

Cloud Messaging:

La một giải pháp nhắn tin đa nền tảng cho phép gửi tin nhắn miễn phí

một cách đáng tin cậy.

Với Firebase Cloud Messaging(FCM) hệ thống có thê tương tác với

người dùng theo một khoảng thời gian chỉ định, gửi thông báo những

thay đôi đã xảy ra, chạy quảng cáo, khuyên mãi, miễn là nó dưới 4KB

Cloud Storage:

Cloud Storage là dịch vụ lưu trữ đối tượng mạnh mẽ, đơn giản và tiết

kiệm chi phí được xây dựng cho quy mô của Google SDK Firebase

cho bộ nhớ đám mây bồ sung tính năng bao mật của Google cho các

17

Trang 34

tệp tải lên và tải xuống cho các ứng dụng Firebase, bất kế chất lượng

mạng như thé nào

e Đây là nơi dé lưu trữ hình ảnh, âm thanh Trên máy chủ có thé sử dụng

Google Cloud Storage đề truy cập các tệp giống nhau

3.3.3 Ưu điểm và nhược điểm

- Ưuđiểm:

e _ Triển khai ứng dụng nhanh chóng: Firebase tiết kiệm rất nhiều thời gian

quản lý và đồng bộ tất cả dữ liệu cho người dùng Đó là nhờ vào cácAPI tốt, hỗ trợ đa nên tảng

e Bảo mật cao: Firebase sử dụng nền tảng đám mây, kết nối thông qua

SSL, dùng JavaScript phân quyền người dùng cơ sở dữ liệu

e Su én định: Được viết dựa trên nền tảng đám mây cung cấp bởi Google,

các công cụ luôn đảm bảo độ ôn định tối đa Bên cạnh đó, quá trìnhnâng cấp hay bảo trì server cũng diễn ra nhanh và đơn giản hơn

- Nhược điểm: qua sử dụng hầu hết mọi người khá hài lòng về Firebase, nhưng

với những ai chỉ sử dụng cơ sở dữ liệu SQL với kiêu bảng truyền thống thì khi

làm việc với Firebase sẽ gặp nhiều bỡ ngỡ Do cơ sở dit liệu của Firebase được

tổ chức theo kiểu trees, parent-children Dé đánh giá khách quan đây chỉ như

là một khó khăn dé tìm hiểu điều mới chứ không hắn là nhược điểm của

Firebase.

Qua tìm hiểu và nhận thấy những ưu điểm, tính mới của Flutter’, Dart, Firebase bên

cạnh những ưu điểm đó thì cũng có một số nhược điểm nhưng không đáng kể Đó

cũng là lý do mà nhóm lựa chọn Flutter, Dart, Firebase để xây dựng ứng dụng cho đề tài khóa luận.

18

Trang 35

3.4 Python

3.4.1 Định nghĩa

- Python? là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa

năng, do Guido van Rossum tao ra va lần đầu ra mắt vào năm 1991 Pythonđược thiết kế với ưu điểm mạnh là dé doc, dé học và dé nhớ Python là ngônngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học

lập trình Cau trúc của Python còn cho phép người sử dụng viết mã lệnh với

số lần gõ phím tối thiểu

- _ Vào tháng 7 năm 2018, Van Rossum đã từ chức Leader trong cộng đồng

ngôn ngữ Python sau 30 năm lãnh đạo.

- Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do

vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl Python được

phát triển trong một dự án mã mở, do tô chức phi lợi nhuận Python Software

Foundation quan ly 3.4.2 Uu diém va nhuge diém

- Uudiém:

e Là một ngôn ngữ có hình thức sáng sủa, cau trúc rõ rang, cú pháp

ngắn gọn

e C6 trên tất cả các nền tảng hệ điều hành từ UNIX, MS — DOS, Mac

OS, Windows và Linix và các OS khác thuộc ho Unix.

e Tuong thích mạnh mẽ với Unix, hardware, thirt-party software với số

lượng thư viện không lồ (400 triệu người sử dụng)

e Python với tốc độ xử lý cực nhanh, python có thé tạo ra những

chương trình từ những script siêu nhỏ tới những phần mềm cực lớn

như Biender 3D.

- Nhược điểm:

20 https://www.python.org/

19

Trang 36

e Python không có các thuộc tính như: protected,private hay public,

không có vòng lặp do while và switch case.

© Mặc dù tốc độ xử lý của Python nhanh hơn PHP nhưng không bằng

JAVA và C++.

3.5 Keras và một số ham dùng trong bài toán

3.5.1 Keras

- _ Keras?! được coi là một thư viện ‘high-level’ với phần ‘low-level’ (còn được

gọi là backend) có thể là TensorFlow, CNTK, hoặc Theano (sắp tới Theano

sẽ không được duy trì nâng cấp nữa) Keras có cú pháp đơn giản hơnTensorFlow rất nhiều Với mục đích giới thiệu về các mô hình nhiều hơn là

các sử dụng các thư viện deep learning, tôi sẽ chọn Keras với TensorFlow là

‘backend’.

- Ly do su dung Keras:

e Keras ưu tiên trải nghiệm cua người lập trình

e Keras đã được sử dụng rộng rãi trong doanh nghiệp và cộng đồng

nghiên cứu

e Keras giúp dé dàng biến các thiết kế thành sản pham

e Keras hỗ trợ huấn luyện trên nhiều GPU phân tán

e Keras hỗ trợ đa backend engines và không giới hạn ban vào một hệ

sinh thái

3.5.2 Các API trong Keras

- Model: dùng dé khởi tạo Model

- Layer: chứa các layer cần thiết dé build các mang neural network khác nhau

- Embedding layer : Embedding dùng trong nhiều trong Neuro — Linguistic —

Programming mục đích embbding sang một không gian mới có chiều nhỏ

hơn, và được learning from data thay cho one-hot lad hard code.

?! https://keras.io/

20

Trang 37

- Optimizers dùng dé chọn thuật toán training.

e SGD Stochastic gradient descent optimizer

e RMSprop RMSProp optimizer

e Adam Adam optimizer

21

Trang 38

Chương 4 HE THONG GOI Ý SAN PHAM

Trong chương này nhóm sé trình bày về thuật toán dùng trong hệ thống gợi ý sanphẩm của ứng dụng là Neural Collaborative Filtering (NCF): quy trình xử lý, ưu

nhược điểm của thuật toán, cài đặt thử nghiệm, đánh giá, so sánh kết quả với thuật

toán lọc cộng tác (Collaborative Filtering) và ứng dụng thuật toán NCF trong bài toán

của đề tài khóa luận

4.1 Định nghĩa

- Trước khi đi vào khái niệm Neural Collaborative Filtering”? (Lọc công tác

bang mang no-ron), nhóm tác giả sẽ khái quát về khái niệm Collaborative

Filtering”? (CF) — Lọc cộng tác Lọc cộng tác là quá trình lọc thông tin hoặc

mẫu bằng cách sử dụng các kỹ thuật liên quan đến sự cộng tác giữa nhiều tácnhân, quan điểm, nguồn dữ liệu Lọc cộng tác bao gồm các kỹ thuật đề so sánhnhững người có cùng sở thích và đưa ra các đề xuất trên cơ sở người dùngthường nhận được các dé xuất tốt từ một người có thị hiéu tương tự như họhoặc đề xuất những sản phẩm tương đồng với sản phẩm mà người dùng đãtương tác Giả thiết cơ bản của phương pháp lọc cộng tác là nếu một người A

có cùng quan điểm với người B về một van dé, thì A có nhiều khả năng cócùng ý kiến với B về một van đề khác, hơn là ý kiến của một người được chọn

ngẫu nhiên Phần quan trọng của thuật toán là tính toán mức độ tương tự giữangười dùng hoặc mặt hàng Có nhiều phương pháp như: cosine-based

similarity, adjusted cosine similarity, Pearson correlation coefficient, Jaccard

coefficient Kỹ thuật lọc cộng tác đã và dang duoc áp dung rộng rai cho hệ

khuyến nghị của các website và ứng dụng về thương mại điện tử

- Tuy nhiên, ham tính toán tương đồng trên còn hạn chế trong việc khám phá

các tương tác phức tạp giữa người dùng và mặt hàng trong không gian tiềm ân

và sự thưa thớt dữ liệu Vấn đề trên được giải quyết băng cách sử dụng Deep

2 https://dl.acm.org/doi/abs/10.1145/3038912.3052569

?3 https://www.researchgate.net/publication/200121027_Collaborative_Filtering_Recommender_Systems

22

Trang 39

Neural Networks (mang thần kinh học sâu) dé tìm hiểu chức năng tương tác

từ dữ liệu Đây chính là điểm mới và tối ưu của NCE so với CF

- NCF lần đầu tiên được giới thiệu vào năm 2017, đây là công trình nghiên cứu

Embedding Layer | j6, Latent Vector | Item Latent Vector

oP yak = {Pus} TS One = {dạ}

Input Layer (Sparse) foo] 0 n o|0 |olololo nn 0

User [ø} Item (i)

Hình 4.1: Framework chung của NCF

- Tang Input gồm 2 thuộc tinh vector của người dùng (user) và mặt hàng (item),

dùng dé biêu diễn định danh của user (userID) và item (itemID)

- Phía trên tang Input là tang Embedding: là tầng kết nối day đủ với tang Input

Qua tầng Embedding, biểu diễn one-hot (dạng thưa) cua user và item đượcbiểu diễn thành vector dày đặc (dense vector) Biểu diễn này có thể xem làbiểu diễn người dùng và mặt hàng bằng các thuộc tính an Việc nhúng

user/item thu được có thé được xem như là vectơ tiềm ân cho user/item trong

mô hình yếu tố tiềm ân ngữ cảnh Sau đó, user embedding và item embeddingđược đưa vào kiến trúc nơ-ron nhiều lớp (NCF layers), dé ánh xa các vectorembedding đến vector đầu vào của tang Output

- Tầng Output: tầng chứa điểm số dự đoán

ur = ƒ(P“vụ,Q”vị |P, Q, 9y )

23

Trang 40

Gọi M và N lần lượt là số user và số item, K biểu thị số chiều của không gian tiềm

an Trong đó P€RM*xK và Q€R*K lần lượt biểu thị ma trận yếu tổ tiềm ấn cho user

và item; ©f biểu thị các tham số mô hình của hàm tương tác f Vì hàm f được địnhnghĩa là một mạng nơ-ron nhiều lớp, nó có thể được xây dựng như sau:

FP, QTV) = Hour (x b2(b1(P? ry’, QTvị)) ))

trong đó @„„¿ và by tương ứng biểu thị ham ánh xa (mapping function) cho lớp

Output và lớp NCF thứ X và tổng cộng có X lớp NCE

- _ Mô hình chỉ tiết của NCF được mô tả như sau:

Score | f~—— ng — Vi) Target

Log loss

4

MLP Layer 2 |

+ ReLU MLP Layer 1

MLP Item Vector

User (x) Item (i)

Hình 4.2: Mô hình Neural matrix factorization (thừa số hóa ma trận nơ-ron)

- Hàm mục tiêu yui

p§,y|P, Q,9;) = I] Tui I] (— Yay)

(u,i)€y (u,j)€y~

Trong đó: Y là tập các tương tác xảy ra và quan sát được, Y là tập các tương tác

không quan sát được hay chính là các tương tác không xảy ra trong thực tế

Lấy logarithm của hàm và đổi dấu, ta được:

24

Ngày đăng: 02/10/2024, 03:27

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

TÀI LIỆU LIÊN QUAN