Nội dung thực hiện - Tìm kiếm về bài toán chia sẻ kiến thức nau ăn - Khảo sát các nghiên cứu và hệ thống liên quan - Xác định và phân tích yêu cầu hệ thống - Thu thập và xử lý dữ liệu về
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA CONG NGHE PHAN MEM
LE NHI KHANG
VO DOAN MINH HIEU
KHOA LUAN TOT NGHIEP
Building a food recipe sharing application with a built-in chatbot
KY SU NGANH CONG NGHE PHAN MEM
TP HO CHi MINH, 2022
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHAN MEM
LE NHI KHANG - 18520888
VO DOAN MINH HIEU - 18520757
KHOA LUAN TOT NGHIEP
Building a food recipe sharing application with a built-in chatbot
KY SU NGANH CONG NGHE PHAN MEM
GIANG VIEN HUONG DAN
TS HUYNH NGỌC TÍN
TP HO CHI MINH, 2022
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
-TigầYy của Hiệu trưởng Trường Dai học Công nghệ Thông tin.
— Chủ tịch.
°M — Thư ký.
— Ủy viên
1ä — Ủy viên
Trang 4ĐẠI HOC QUOC GIA TP HO CHI MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh PhúcCÔNG NGHỆ THÔNG TIN
TP HCM, ngày tháng năm 2022
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CAN BO HUONG DAN)
Tên khóa luận:
XÂY DUNG UNG DỤNG CHIA SE CÔNG THỨC NAU AN
TÍCH HỢP CHATBOT
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Lê Nhị Khang 18520888 TS Huynh Ngọc Tín
Võ Đoàn Minh Hiếu 18520757
Đánh gia Khóa luận
1 Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản pham
Một sô nhận xét về hình thức cuôn báo cáo:
2 Về nội dung nghiên cứu:
Trang 5Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 6ĐẠI HOC QUOC GIA TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh PhúcCÔNG NGHỆ THÔNG TIN
TP HCM, ngày tháng năm 2022
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CỦA CÁN BỘ PHẢN BIỆN)
Tên khóa luận:
XÂY DUNG UNG DỤNG CHIA SE CÔNG THỨC NAU AN
TÍCH HỢP CHATBOT
Nhóm SV thực hiện: Cán bô phản biện:
Lê Nhị Khang 18520888
Võ Đoàn Minh Hiếu 18520757
Đánh gia Khóa luận
1 Về cuốn báo cáo:
Số trang Số chương
Số bảng số liệu Số hình vẽ
Số tài liệu tham khảo Sản pham
Một sô nhận xét về hình thức cuôn báo cáo:
2 Về nội dung nghiên cứu:
Trang 7Người nhận xét
(Ký tên và ghi rõ họ tên)
Trang 8LỜI CẢM ƠN
Trong suốt những năm theo học tại khoa Công nghệ phần mềm trường Đạihọc Công nghệ Thông tin Chúng em đã tìm tòi và được trang bị rất nhiều cáckiến thức cơ bản việc sử dụng công nghệ và cốt lõi trong lập trình cũng như những
kỹ năng thực tế dé có thé hoàn thành Khóa luận tốt nghiệp của mình
Em xin gửi lời cảm ơn chân thành đến quý thầy cô, đặc biệt là thầy HuỳnhNgọc Tín đã hướng dẫn tận tình, và đóng góp ý kiến để chúng em có thể hoànthành khóa luận tốt nghiệp một cách tốt nhất
Trong quá trình làm khóa luận này nhóm không tránh khỏi được những sai
sót, rất mong quý thầy cô sẽ chỉ ra những lỗi sai để nhóm có thể rút được kinh
nghiệm cho chính bản thân mình và hoàn thiện hơn trong những dự án sau này.
Em xin chân thành cảm ơn Xin gửi tới mọi người lời chúc sức khỏe tốt đẹpnhất và có được nhiều niềm vui cũng như hạnh phúc trong cuộc sống về mặt sựnghiệp, gia đình và trong các mối quan hệ
TP Hồ Chí Minh, 15 tháng 6 năm 2022
LÊ NHỊ KHANG
VÕ ĐOÀN MINH HIẾU
Trang 9MỤC LỤC
Chương 1 TỐNG QUAN DE TAL - 2-2 ©5£+E£+EE+EE£EEE2EEEEEEEErErrkrrkervee 2
1.1 Darn nhập SE S2 SE SE 121E21212121 21211111111 1111 11111111111 re 2
2.4 COOKY RBM cues Ms ae GhH:G L2 C0Ó0Q0 100 HH tà 7
2.5 Kết chương c 222 2c 2t E2 2E12212212112112111121111 011111 8
Chương 3 PHÂN TÍCH VA THIET KE HE THÓNG -: - 9
3.1 Mở Gaus ecceeecessssecessnecessnscessnsecessncessnscessuseesnnseesninscesnncesnnecesnueeeenineeesnneeestes 93.2 SO d6 USe CASC e.ceecsessessesssessessesssesssssessecsusssessessscsusssessessecsessussuessessecsuessesseeses 9
3.2.1 Sơ đồ use case tổng QUAN ccesccessessessesssessessesseessessessessuessessessesssesseeees 9
3.2.2 Danh sách aCfOTs Ghế 10 3.2.3 Danh sách US€ CaS€ G9 HnHnngHnggnệt 10 3.2.4 Đặc tả USC CASE 00000 HH ng xe 11
3.2.4.1 Use case đăng nhậtp - - St ng HH ng Hết 11
3.2.4.2 Use case đăng ky - Ăn HH TH ng HH nư 11
Trang 103.2.4.3 Use case quản lý bài ViẾt 2¿-55c2cx2ctezEerkrsrkrrrrerkervee 12
3.2.4.4 Use case tương tác bài ViẾC ¿-55¿©2+2ccccxterkrsrkerrrerkrerkee 14
3.2.4.5 Use case theo dõi người dùng khác - «+ +-«<++s++sss+ 16
3.2.4.7 Use case chat với chatoOI c- 5 s1 ng nến 19 3.2.4.8 Use case cập nhật thơng tin cá nhân - «+5 «<++<s++s++ 19
3.3 Thiết kế dữ liệu -c:-+c2rkrtrtrtrhthHH Hee 20
3.3.1 So đồ lớp tổng quát -¿©-¿+ck+EEeEEEEESEEEEEEEEErrrkerkerree 20
3.3.2.1 Mơ tả Users COlÏ€CfIOI c5 SE SE Eiksereekreke 22 3.3.2.2 Mơ tả Recipes COlÏ€CfIOT 255 35 3E kseeereeeeeeerereere 23
3.3.2.3 Mơ tả Posts CỌÏeCIOH c1 13111331119 1 re 25
3.3.2.4 Mơ ta Comments CoÏÏ€CfIOn - 55525 S33 +svEsseeseseees 26 3.3.2.5 Mơ tả Products CollectiOn -.- Sc St seEsersererrreeeeree 26
3.3.2.6 Mơ tả RecipeLikes ColleCfIOn 255555 + +svessseesssrs 27
3.3.2.7 Mơ tả RecipeCooks ColÏeCfIOH - - 55s s + +seksseeeeeeesesere 28 3.3.2.8 Mơ tả Ratings ColleCtIOT - Ăn ngư 28 3.3.2.9 Mơ tả PostReactions COlleCfIOI1 - s5 55s + eesessses 29 3.3.2.10 Mơ tả CommentReactions ColleCfIOn «555 x++sx+++2 29 3.3.2.11 M6 tả ProductTypes CollecfIon 52c ccS<ssssssssesssrs 30 3.3.2.12 Mơ tả Units COlleCfIOH - 25 5 S1 ng yến 30 3.3.2.13 M6 tả Ingredients ColleCfION 4 xe seessersrseree 30 3.3.2.14 Mơ tả SpecialGoals ColleCtIon 5555 k++svesssessses 30 3.3.2.15 M6 tả MenuTypes ColleCfIOn c5 SScs+kseeeeeeeesre 31
Trang 113.3.2.16 Mô tả Cuisines Collecfion - - << - << << << xxx kkkkkEEEeeeeeeeeeees 31 3.3.2.17 Mô tả DishType ColleCtIONn se server 31 3.3.2.18 M6 tả CookMethod cccccccescccccessssseeecceeessseeeccessssseeeeeeseenas 31
3.4 Kết ChUONG oesecececccccsccscessessesecscssessessessessesscsvcsscsessesssssessessesesssseestssesseseeeess 32
Chuong 4 HIỆN THUC HE THONG oo eececcssssscssessessessessessessesscsscsessesseeseeneese 33
AD MG Ga ececccccccscsscsssessesssesssssessecsusssscsscsessussusssecsessussusssessessusssssseesessussseesesseess 334.2 Kiến trúc hệ thong o.cc.ccceccccscsssesssesssessssssesssesssessscssecssecssscssessecssessuseseessecsneess 33
4.3 Xây dựng S€TV€T HH HH HH HH kh 34
4.3.1 Mô hình ba lớp - + ©+2E+EE+EEEEEEEEEEEEEEEEEEEEEEEEEerkerreee 34
4.3.2 Cấu trúc thư mục -c©E©E£+E+EEeEErErrrrkerkerreee 35
4.4 Xây dung ứng dụng ImObIÏe - óc eee 1E vn ng ưy 39
4.4.2 Cấu trúc thư mục -+-+++++E++EE+EEeEErErrerrkerkerreee 40
4.4.3.1 Man hình đăng nhập - c3 32 3S EEveiresirssrrrrrrrree 42
4.4.3.2 Màn hình chính -¿- 2 + +£+E£+EE£EE£EE£EEEEEEEEerEerrerrxrrkerxee 43
4.4.3.5 Màn hình công thức nấu ăn 2-22 ©52+£+£kerEezErrkerxerxee 41
4.4.3.7 Màn hình thêm và chỉnh sửa công thức -« <c<+ 49 4.4.3.8 Man hinh chat ncaẽaả.Ả 50
4.4.3.9 Màn hình sản pham.o cecceccccccccccssessesessessessessessessessessesessesseeeeseeaee 51
Trang 124.5.1 Xây dựng tập dữ liệu huấn luyện -¿© ¿©++cs++zxcszeees 57
4.5.2 _ Xây dựng CAC ActiOns eceescessecssceceneeceneceseecececsaeeesaeceseeseeessaeeeee 63
5.2 Kết quả dat được -¿22¿22++22x2EE2E 2212212112211 xe 65
5.3 Hướng phát triển -¿- 2: 5£+2++EE£EEEEE2E12112712112112117171.211 11x, 66
PHU LUC 1: FLUTTER 07 - ,Ô 68 PHU LUC 2: MONGODB - HH HH TT HH HH HH HH gà 72 IsI0806/9)49./.009017 75
PHU LUC 4: RASA FRAMEWORK Ăn HH HH HH HH hưệt 90
Trang 13DANH MỤC HÌNH
Hình 2.1: Giao diện ứng dụng Cookpad G0 2211121111931 1911 1911 vn re, 7 Hình 2.2: Giao diện ứng dụng COOKV - - Ác 11v HH ng 8
Hình 3.3: Sơ đồ use case “Tương tác bài ViẾt” 2¿- sc2cxccxerkeerxerrrerrecree 14Hình 3.4: Sơ dé use case “Quan lý công thức nấu ăn” -: c+sz+s+cx+zxczsz 17
Hình 3.6: Mô tả CookMethord - - < x 1191 2111911 911101 HH ng Hy 32
Hình 4.2: Mô hình 3 lỚp - G1 HH TH TH Hà HH Hà HH nh 34
Hình 4.3: Cau trúc thư mục của Server ssssscssssscssssecessseeessneeessneeeesneeesnneeesnneeeennesees 35
Hình 4.5: BLOC pattern cho ẨÏUfẨ€T- - - < +22 E333 E + EE+EEEESeereeeeereeeereere 40
Hình 4.7: Man hình đăng nhập eeeecsceseeeeseeseeeesessecsessesseseaeseseseeaeeaeeas 43
Hình 4.8: Màn hình chính: - - - - c6 s1 1 1301113111191 1 910 199 vn HH ng 44
Hình 4.9: Màn hình tạo và chỉnh sửa bài viẾt - ¿+ se +x+k+EvE+keEerrxererreexee 45
Hình 4.10: Màn hình chỉ tiết bài viẾt cc:-ccvttrrktritrrtrrrrrirrrrrirrrrririio 46
Hình 4.11: Màn hình công thức nấu ăn ¿2-2 E+EE+EE+E£+E£E£EerEerxerxrrsrree 47
Hình 4.13: Màn hình thêm và chỉnh sửa công thức - - «c+«c+ecese+sessessee 49
Hinh S080 1 50
Hình 4.18: Màn hình thông tin cá nhân - <5 25 2+ +**E+veeeeeeeeerereers 54 Hình 4.19: Màn hình thông tin người dùng khác 5: «=+«£+c+se+sessesses 55
Hình 4.20: Màn hình follow ccccccccsssssssssscsccceeeeescececceeeeeeseeeseesesessseneeaees 56
Trang 14Hình 4.21: Từ đồng nghĩa 2-22 5¿©SS+2EE£EE+SEE2EEE2E127112212112211271 2112 crk 58
Hình 4.22: Bảng tra CỨU G0 TH HH nh 58
Hình 4.23: So đồ kịch ban chatbot c.ccccccccssssssssssscsssessssessesessesessesevsesersessvsassesesseseees 59Hình 4.24: Nlu.yml dé xác định intent c.cccccccsscssessessesssessessessessessesseeseseeseeseees 60
Hình 4.25: Tương tác giữa các thành phan trong NLU pipeline -. 61
Hình 4.26: Cách hoạt động của 'TOK€TI1Z€T - - c S311 1 3911 ESEsrrerrrereere 61 Hình 4.27: Cách hoạt động của Featurizer ((Í) - - 5 + + k*vkskseeskesekrsee 62 Hình 4.28: Cách hoạt động của Featurizer (2) - 5 tk re 62 Hình 4.29: Cách hoạt động của Intent CaSSIÍI€T - S5 * + s+sssexeersserrss 63 Hình 4.30: Cách hoạt động của Entity EXfraCfION - St ssessererrree 63 Hình 4.31: Các action cho ChafOI -. s11 9 90 9v ng nh ng ngư 64
Hình 6.5: Cấu trúc của chatbot sử dụng NLP và Machine learning - 79
Hình 6.6: Hệ thống chatbot sử dụng phương pháp NLU 5-5 5552552 80
Hình 6.8: Minh họa về quản lý hội thoại theo mô hình FSA -+-«<- 87Hình 6.9: Frame đối thoại thông tin khách hang (tinh huống mang cham) 88Hình 6.10: Kiến trúc hệ thống chatbot Rasa ccscccccsscsssessesssessessessessessesseeseessesseeseees 91
Trang 15DANH MỤC BANG
Bảng 3.1: Danh sách các aCẨOTS - < ++ + k1 k1 kg 10 Bang 3.2: Danh sách các US€ CS© - - 5 s1 HH 11
Bang 3.3: Đặc ta use case “Đăng nhap” eee eeeeeeseeseeseeseeseesecseeseeesseeesesceseeaeens 11
Bảng 3.4: Đặc ta use case “Đăng Ky” 0 ee ecceeseeecceseeeeeeeeeeeeseeeseceeeeeeeseeseeeseeeseens 12
Bang 3.5: Đặc ta use case “Quản lý bài Viét? ceceecceeecessessessessessesesessessessessessesseaee 14Bang 3.6: Đặc ta use case “Tương tác bai Vidt? ccscccccecsessesssessessesseessesseesessseeseeseess 16
Bang 3.7: Đặc ta use case “Theo dõi người dùng khác” - - - «<< x+s<+s++ 16
Bang 3.8: Đặc tả use case “Quản lý cơng thức nấu ăn” - 2: + ©sz+ss+cs+zxzsz 18
Bang 3.9: Đặc ta use case “Chat với Chatbot? ee eeeeescesessesseeseceeceeceseeeeeseeneeseens 19
Bang 3.10: Đặc ta use case “Cập nhật thơng tin cá nhân” -+++s++<<++++ 20 Bang 3.11: Mơ ta Users COlÏ€CfIONI 2.6 2118331119111 111 1 9 119 1 ng 23 Bang 3.12: Mơ ta Recipes COlÏ€CtIOTI 2c c1 2221133111111 EEEEErrrersvre 25 Bang 3.13: Mơ ta Post ColÏeCfIOI1 25 c1 11H HH ng giết 26
Bảng 3.14: Mơ ta Comments CoÏÏ€CfIOT 5 5 2 1E E <2 E£sEEreesskerskeree 26
Bang 3.15: Mơ tả Products CỌÏ€CtIOT - c5 + E332 E**E+EEESrereeeeeererereere 27 Bảng 3.16: Mơ tả ProductTypes ColÏeCfIOT - <5 3< + ++*E+veeeeeeeeereeeers 30 Bảng 3.17: Mơ tả Units Collection - 5 c1 2210118311111 1 1191 11v re 30 Bang 3.18: Mơ tả Ingredients CỌÏ€CtIOTI S5 c5 32211323 EESEsereeerreerereere 30 Bang 3.19: Mơ tả SpecialGoals ColleCf1ON - s5 + 1n net 31
Bảng 3.20: Mơ tả Menu T'ypes CoÏÏeCfiOTn - G5 2 1n ngư 31
Bang 3.21: Mơ ta Cuisines Collection ccceccessccesseeeseeeeeceseeceseeeeeeesaeeeseeeenesaes 31 Bang 3.22: Mơ tả DishType ColÏeCfIOTI - c5 c5 32+ **3*E+ESeeereeeereerereere 31 Bang 6.1: Bảng so sánh RDBMS và MongoIDB - - cv re 72
Trang 17DANH MỤC TỪ VIET TAT
RDBMS Relational database management Hệ thống quan ly cơ sở dữ
system liệu
CSDL
API Application Programming Giao diện lập trình ứng dụng
Interface
UI User Interface Giao diện người dùng
JSON JavaScript Object Notation Là một kiểu định dang dữ
liệu
NLU Natural Language Processing Hiéu ngôn ngữ tự nhiên
Trang 18TÓM TẮT KHÓA LUẬN
Hiện nay sau thời điểm dịch covid-19 giản cách xã hội nên nhiều người tự học nấu
ăn và cộng đồng người yêu thích nau ăn gia tăng đáng ké Do đó, một hệ thống mạng
xã hội kết nối những người cùng sở thích này là cực kì quan trọng Nó giúp duy trì
sở thích ở mọi người và mở rộng cộng đồng Đề xây dựng hệ thống như vậy nhóm
xây dựng một ứng dụng mobile với lựa chọn công nghệ là một framework đa nềntang Flutter Và để nâng cao trải nghiệm và tư tiện lợi cho những người mới, những
người có ít kinh nghiệm và nhiều băn khoăn, nhóm xây dựng chatbot với khả năng
hỗ trợ các câu hỏi cơ bản về tìm công thức nấu ăn, đinh dưỡng của món ăn, dé xuấtthực đơn và các khái niệm xoay quanh chủ đề này Tuy chủ đề này không quá mới lạ
và các mạng xã hội khác như facebook hay youtube cũng đã có tuy nhiên một cộng
đồng lớn có quá nhiều chủ đề dễ dàng làm người dùng phân tâm và một cộng động
chỉ hướng tới chia sẻ những kiến thức về nấu ăn sẽ đem lại hiệu quả tốt hơn và đem
lại nhiều kiến thức thú vị hơn Kết quả đề tài nhóm đã đạt được các kết quả như sau:
e©_ Học hỏi được kiến thức xây dựng chatbot
e_ Củng cô và có thêm kinh nghiệm trong xây dựng ứng dụng với Flutter
e Có thêm kinh nghiệm sử MongoDb để lưu trữ dữ liệu mạng xã hội
e Xây dựng ứng dung mạng xã hội kết nối người yêu thích nau ăn
e Xây dựng chatbot tư van về nau ăn
e Có nhiêu kiên thức về chủ đê này và vân đê dinh dưỡng
Trang 19Chương 1 TONG QUAN ĐÈ TÀI
1.1 Dẫn nhập
Trong xã hội hiện đại ngày nay, nhiều người không quan tâm đến chất lượng
bữa ăn và van đề dinh dưỡng nên có nhiều người mắc các bệnh về da dày Trong
lĩnh vực 4m thực, những người có sở thích về nấu ăn là một điều rất tuyệt vời khi
họ có thể thoải mái nấu các món mình thích và quan tâm đến sức khỏe của chínhmình và những người xung quanh Bởi vậy, nếu cộng những người thích nấu ănphát triển mạnh thì chất lượng cuộc sống và bữa ăn của nhiều nhiều người sẽ được
cải thiện Nhưng trong cuộc sống bộn bề không dé gì dé duy trì sở thích này, khi
việc nau ăn cũng tốn không ích thời gian Tuy nhiên nếu có một cộng đồng cùng
sở thích cùng nhau chia sẻ kiến thức, kinh nghiệm và trải nghiệm với nhau, kếtnối và truyền cảm hứng cho nhiều người mới thì mọi chuyện sẽ dễ hơn rất nhiều.Bởi vậy việc xây dựng một mạng xã hội kết nối những người yêu thích nấu ăn là
một điều rất cần thiết
Bên cạnh đó trước mỗi bữa ăn nhiều người trong chúng ta, đặc biệt là giới trẻthường đặt ra câu hỏi là hôm nay ăn gì, hay nấu gì giờ ta Một trong những lý docủa câu hỏi này là do chúng ta thiếu sự tham khảo Bởi vậy mạng xã hội khôngchỉ là nơi kết nối và chia sẻ kiến thức, nó còn có thể đưa ra cho người dùng nhiều
sự lựa chọn và câu trả lời cho các van dé của người dùng Một trong những công
cu phù hợp nhất dé hỗ trợ điều này là chatbot vì nó có thé trả lời các câu hỏi củangười dùng bat cứ lúc nào
Bởi vậy, trong luận văn này chúng tôi hướng đến xây dựng ứng dụng mạng
xã hội kết nối những người yêu thích nau ăn dé xây dựng và mở rộng cộng đồng,đem lại những kiến thức hữu ích về âm thực và dinh dưỡng đồng thời tích hợpchatbot dé trả lời được những van đề thường gặp khi nấu ăn
Trang 201.2 Mục tiêu
Kêt nôi những người yêu thích nâu ăn
- Gitp trả lời cho câu hỏi "ăn gi giờ day"
- Khoi dậy sở thích vê nâu ăn cho nhiêu người hon
- Tao sự quan tâm về âm thực và dinh dưỡng cho nhiêu người.
1.3 Phạm vi nghiên cứu
Nguồn dit liệu: Edamam, Cooky
Đôi tượng sử dụng: người quan tâm về nâu ăn và âm thực.
1.4 Nội dung thực hiện
- Tìm kiếm về bài toán chia sẻ kiến thức nau ăn
- Khảo sát các nghiên cứu và hệ thống liên quan
- Xác định và phân tích yêu cầu hệ thống
- Thu thập và xử lý dữ liệu về nau ăn
- _ Xây dựng kiến trúc hệ thống
- Thiết kế chức năng, cơ sở dữ liệu và giao diện hệ thong
- Xay dung cơ sở dữ liệu
- _ Xây dựng giao diện người dùng, chatbot
- Kiểm thử hệ thống
1.5 Kết quả mong đợi
- Ứng dụng mobile cung cap các chức năng tạo bài viết như một mạng xã hội
- Ung dung mobile cung cấp chức năng giúp chia sẻ các công thức nấu ăn và
sản phẩm hỗ trợ bếp
- Xây dựng chatbot có khả năng nhận diện ý định tốt, hỗ trợ tìm công thức nau
ăn, va trả lời được các câu hỏi xoay quanh chủ đê nâu ăn
1.6 BO cục báo cáo
Bô cục báo cáo gôm có 4 chương:
Trang 21e Chương 1: Tổng quan đề tài Trinh bày lý do chọn dé tài, mục tiêu, phạm vi
nghiên cứu và kết quả mong đợi.
e_ Chương 2: Một số nghiên cứu và ứng dụng liên quan Mô tả các nghiên cứu
và ứng dụng liên quan, các ưu nhược điểm của chúng
e Chương 3: Phân tích và thiết kế hệ thong Trình bày các thiết kế chức năng, sơ
đồ lớp và đặc tả chi tiết chúng
e Chương 4: Hiện thực hệ thống Trình bày kiến trúc hệ thống, phân tích các
công nghệ sử dụng Trình bày chỉ tiết các bước xây dựng hệ thống
e_ Chương 5: Kết luận và hướng phát triển Tổng kết lại các kết qua đã đạt được
và đề ra hướng phát triển
1.7 Kết chương
Trong chương này, chúng tôi tập trung mô tả tổng quan bài toán, phạm vi vàcách thức thực triển khai bài toán
Trong chương sau, chúng tôi sẽ mô tả về các khảo sát về những ứng dụng liên
quan, các ưu nhược diém của chúng.
Trang 22Chương2 MỘT SÓ NGHIÊN CỨU VÀ ỨNG DỤNG LIÊN QUAN
2.1 Mớ đầu
Vân đê vê học nâu ăn đã tôn tai rat lâu và có nhiêu ứng dụng đã hiện thực bai
toán nay, đê phân tích và tìm ra hướng tiép cận cho bài toán nhóm sẽ phân tích
và nghiên cứu một sô ứng dụng nôi bật trong chủ đê này.
2.2 Tông quan
Vân đê học nâu ăn không phải là một chủ đê mới, nó đã tôn tài lâu đời và đó
đã có rât nhiêu nghiên cứu và ứng dụng về chủ đê này Phân lớn các nghiên cứu
và ứng dụng cho đên nay là các website, ứng dụng điện thoại và các nhóm trên
mạng xã hội:
Có rất nhiều các website chia sẻ nấu ăn và trong đó có nhiều trang web do cácchuyên gia trong lĩnh vực ẩm thực lập ra Với lượng thông tin rất đa dạng Tuynhiêu những trang web này thiếu tính chất mạng xã hội và nó tương tác một chiều,
đa phần người dùng chỉ sử dụng để tìm kiếm các công thức nấu ăn nên chúng
không thê kêt nôi được nhiêu người yêu thích nâu ăn với nhau được.
Các mạng xã hội như Facebook, youtube đã có nhiêu nhóm và nội dung về
nấu ăn Tuy nhiên với lượng chủ đề và thông tin không lô dẫn đến việc theo dõi,
tiêp cận và xem được nhiêu nội dung hay vê nâu ăn không đạt được nhiêu hiệu
quả Đồng thời việc hỗ trợ nhiều chức năng cũng bị giới hạn
Ứng dụng mobile tập trung về nấu ăn là hướng tiếp cận tốt để khắc phục
nhược điểm đó và nổi bật nhất trong cộng đồng nau ăn ở việt nam là hai ứng dụng
Cooky và Cookpad chúng đều phát triển tập trung vào chủ đề nấu ăn và cho phép
người dùng tương tác với các công thức bởi vậy người dùng dễ dàng sử dụng và
tìm hiêu về nâu ăn hơn.
Trang 232.3 Cookpad
Cookpad đây là nơi chia sẻ hàng ngàn công thức nấu ăn ngon, đơn giản và dễ
làm đên từ cộng đông Với các món ăn đây đủ như món nước, món mặn, ngọt
khác nhau và các món ăn giải nhiệt, giải khát mùa hè, và còn nhiêu món ăn hâp
dẫn khác.
Ưu điểm e_ Kho công thức nấu ăn phong phú
e Người dùng có thé thoải mái chia sẻ các công thức nau ăn
của mình và tương tác như mạng xã hội
Nhược điểm e Giao diện ứng dụng chưa hấp dan
e Ứng dụng chưa có nhiều chức năng, chi tập trung vào công
thức món ăn.
e Chưa có hỗ trợ chatbot
Bảng 2.1: Ưu và nhược điểm của ứng dụng Cookpad
Trang 24© Tìm tên món hay các nguyên liệu cùng lúc
Cooky đây là một ứng dụng ra đời với sứ mệnh lan tỏa sở thích yêu bếp và
am thực của người việt nam Với hon 31000 công thức món ngon với mọi chế độ
dinh dưỡng, phần lớp các công thức đến từ các đầu bếp và nhãn hàng thực phẩm
Ưu điểm e_ Kho dữ liệu về nấu ăn phong phú, hình anh chất lượng
e Dữ liệu được chia sẻ từ các dầu bếp
e Hỗ trợ nhiều chức năng giúp dé dàng tìm kiếm
Nhược điểm e Chưa hỗ trợ tương tac như một mạng xã hội
e Chưa có hỗ trợ chatbot
Trang 25Bảng 2.2: Ưu và nhược điểm của ứng dụng Cooky
Sữa Gia VỊ Nhà Cửa Đố Uống
Banh Keo Công Thức Video Chuyên Để
Trang 26Chương 3 PHAN TÍCH VÀ THIẾT KE HỆ THONG
3.2 Sơ đồ use case
3.2.1 So đồ use case tổng quan
ae Dang nhap
<<ex[eridke> 7 “
Xác thực người dùng
`*x<exlend>>
Quản lý bải viết
Tương tác bải viết
Theo dõi người dùng
khác
Quản lý công thức
nau ăn
Chat với chatbot
Cap nhật thông tin
cả nhân
Hình 3.1: Use case tổng quát của hệ thống
Trang 273.2.2 Danh sách actors
Bảng 3.1: Danh sách các actors
3.2.3 Danh sách use case
STT Tên use case Ý nghĩa
1 | Đăng nhập Yêu cầu nhập tài khoản và mật khẩu dé xác thực trên
hệ thống của ứng dụng
2 | Đăng ký Người dùng nhập thông tin tài khoản chưa tổn tại
trước đó sau đó hệ thống tạo và đăng nhập tài khoản
3 | Quản lý bài viết Các chức năng cho phép người dùng quản lý bài viết
của mình (Thêm, xóa, sửa, tìm kiếm)
4 | Tương tác bài viết | Các chức năng cho phép tương tác lên bài viết (Phan
ứng, bình luận, chia sẻ)
5_ | Theo dõi người Người dùng có thé theo dõi hoặc hủy theo déi người
dùng khác dùng khác, nhận được thông báo khi người dùng
đang theo dõi có bài viết mới
6 | Quản lý công thúc | Các chức năng cho phép người dùng quan lý các
nấu ăn công thức nấu ăn của mình (Thêm, xóa sửa, tìm
kiếm)
7 | Chat với chatbot Người dùng có thé nhắn tin với chatbot dé hỏi về các
kiên thức về nâu ăn.
10
Trang 288 | Cập nhật thông tin
cá nhân hệ thong cap nhat lai
Bang 3.2: Danh sách các Use case
3.2.4 Dic ta use case
3.2.4.1 Use case đăng nhập
Tén Use Case Dang nhap
M6 ta Đăng nhập tài khoản vào hệ thống
Tiên điêu kiện Người dùng chưa đăng nhập vào hệ thống
Hậu điêu kiện Đăng nhập thành công, người dùng có thể sử dụng
các chức năng của hệ thông
Dòng sự kiện chính 1 Nhập email và mật khẩu.
2 Nhắn nút “Đăng nhập”
3 Hệ thống thông báo đăng nhập thành công, chuyên
đên màn hình các bài viêt Dòng sự kiện phụ Không có
Dòng sự kiện lỗi 4a Hệ thống thông báo đăng nhập không thành công
Bảng 3.3: Đặc tả use case “Đăng nhập”
3.2.4.2 Use case dang ký
Tén Use Case Dang ky
M6 ta Đăng ky một tài khoản trên hệ thống
lãi Người dùng cung câp các thông tin cá nhân mới cho
Trang 29Tiền điều kiện Người dùng chưa đăng nhập hệ thống
Hậu điều kiện Tài khoản được tạo và đăng nhập thành công, người
dùng có thể sử dụng hệ thống
Dòng sự kiện chính | 1 Truy cập màn hình đăng ký
2 Nhập thông tin tai khoản
3 Nhắn nút “Đăng ký”
4 Hệ thống thông báo đăng ký thành công, chuyền
đên màn hình các bài viêt Dòng sự kiện phụ | Không có
Dòng sự kiện lỗi 4a Hệ thong thông báo đăng ký không thành công.
Bảng 3.4: Đặc tả use case “Đăng ký”
3.2.4.3 Use case quản lý bài viết
Trang 30Tên Use Case Quan ly bài viết
Mô ta Quản ly thông tin các bài viết
Tiên điêu kiện Người dùng đã đăng nhập vào hệ thống và đang ở tab
“Bài việt”
Hậu điêu kiện Use case thành công và dữ liệu được cập nhật
Dòng sự kiện chính - Thêm bài viết:
1 Nhắn nút “Thêm bài viết”
2 Nhập thông tin bài viết
3 Nhắn nut “Đăng”
4 Hệ thống thông báo đăng bài thành công và cập
nhật lại dữ liệu
- Chỉnh sửa bài viết:
1 Chọn bài viết của mình
- Chỉnh sửa bài viết:
1 Chọn bài viết của mình
2 Nhắn nút “Xóa”
13
Trang 313 Hệ thống thông báo xóa thành công và cập nhật lại
đữ liệu
- Tìm kiếm bài viết:
1 Chọn vảo thanh tìm kiếm
2 Nhập văn bản tìm kiếm
3 Hệ thống tìm kiếm và hiển thị màn hình kết quả
tìm kiêm Dòng sự kiệnphụ | Không có
Dòng sự kiện lỗi Không có
Bảng 3.5: Đặc tả use case “Quản lý bài viết”
3.2.4.4 Use case tương tác bài viết
Hinh 3.3: So do use case “Tuong tac bai viet”
Tén Use Case Tương tac bai việt
M6 ta Các hành động như phan ứng, bình luận và chia sẻ
lên bai việt
14
Trang 321 Chọn loại phản ứng ở bài viết
2 Cập nhật lại dữ liệu của bài viết
- Bình luận:
1 Nhắn vào nút bình luận ở bài viết
2 Hiền thị màn hình bình luận
3 Nhập đữ liệu bình luận và nhắn nút “send”
4 Thông báo bình luận thành công và cập nhật lại dữ liệu
- Phản ứng vào bình luận:
1 Nhắn vào nút bình luận ở bài viết
2 Hiền thị màn hình bình luận
3 Chon lai phan ứng vao các bình luận khác
- Xóa bài viết:
1 Nhân nút “chia sẻ”
2 Hiển thị các lựa chọn dé chia sẻ
3 Hệ thống thông báo chia sẻ thành công
Dòng sự kiện phụ Không có
Dòng sự kiện lỗi Không có
15
Trang 33Bảng 3.6: Đặc tả use case “Tương tác bài viết”
3.2.4.5 Use case theo dõi người dùng khác
Tên Use Case Theo dõi người dùng khác
Mô tả Theo dõi hoặc hủy theo dõi hoạt động của một người
dùng khác Actor Người dùng
Tiên điêu kiện Người dùng đã đăng nhập vào hệ thống
Hậu điêu kiện Cập nhật lại dữ liệu của người dùng
Dòng sự kiện chính 1 Nhắn vào trang cá nhân của người dùng khác hoặc
nhân nút 3 cham ở bài viết của người đó
2 Nhân vào nút theo dõi “Follow” hoặc “Unfollow”
3 Thông báo thành công và cập nhật lại dữ liệu
người dùng Dòng sự kiện phụ | Không có
Dòng sự kiện lỗi Không có
Bảng 3.7: Đặc tả use case “Theo dõi người dùng khác”
16
Trang 343.2.4.6 Use case quan lý công thức nấu ăn
Hình 3.4: Sơ đô use case “Quản lý công thức nâu ăn”
Tên Use Case Quản lý công thức nâu ăn
Mô tả Quản lý thông tin các công thức nấu ăn
Actor Người dùng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống và ở tab
“Công thức nâu ăn”
Hậu điêu kiện Use case thành công va dir liệu được cập nhật
Dòng sự kiện chính | - Thêm công thức:
1 Nhắn nút “Thêm công thức”
2 Nhập thông tin của công thức
3 Nhắn nút “Đăng”
17
Trang 354 Hệ thống thông báo đăng công thức thành công và
Dòng sự kiện lỗi | Không có
Bảng 3.8: Đặc tả use case “Quản lý công thức nâu ăn”
18
Trang 363.2.4.7 Use case chat với chatbot
Tên Use Case Chat với chatbot
Mô ta Nhắn tin với chatbot của hệ thống
Tiên điêu kiện Người dùng đã đăng nhập vào hệ thống
Hậu điêu kiện Không có
Dòng sự kiện chính 1 Chọn vào nút “Chatbot”
2 Hiền thi màn hình chatbot
3 Nhập tin nhắn
4 Chatbot trả lời tin nhắn
Dòng sự kiện phụ Không có
Dong sự kiện lỗi Không có
Bảng 3.9: Đặc tả use case “Chat với chatbot”
3.2.4.8 Use case cập nhật thông tin cá nhân
Tên Use Case Cap nhat thong tin ca nhan
M6 ta Cập nhật thông tin cá nhân
Tiên điêu kiện Người dùng đã đăng nhập vào hệ thống và ở trang cá
nhân
Hậu điêu kiện Không có
Dòng sự kiện chính 1 Chọn vào nút “Cập nhật thông tin”
2 Hiền thị màn hình cập nhật thông cá nhân
19
Trang 373 Nhập thông tin mới
4 Nhắn nút “Cập nhật”
liệu và đóng màn hình cập nhật
5 Hệ thống thông báo thành công, cập nhật lại dữ
Dòng sự kiện phụ Không có
Dòng sự kiện lỗi Không có
Bảng 3.10: Đặc tả use case “Cập nhật thông tin cá nhân”
+ ingredients typeld: Odjectid
+ ingredients unitid: Objectid
+ id: Objectid + Id: Objectld
+ recipeld: Objectié + followingUsers: ObjectIdJ]
+ userid: Objectid + followerUsers: Objectid{]
+ crealedAt: Date + name: String
+ updatedAt Date + email: String
+ bio: String
RecipeCooks + avalarUL String
+ id: Objectia + phone: String
+ recipeld: Objectld + gender: String
+ userid: Objectid + status: String + createdat: Date + hashPassword: String
+ updatedAt Date + role: String
+ createdat: Date Ratings + updatedAt: Date
+ id: Objectld + deletedat Date
\ IngredientTypes
~
+ id: Objectid + name: String
* postid: Objectid + userid: Objectid
+ type: String
+ createdat: Date + updatedAt: Date
Products + id: Objectid + creatorid: Objectid + productTypeld: Objectid
+ photoUrts: Stringl)
+ viđeoUrt String
+ viđeoThumbnaf: String + description: String + name: String
+ parentid: Objectid
+ postid: Objectld
+ photoUrls: Sring[]
+ videoUrL String + content: String
+ createdAt Date
+ updatedat: Date
+ deletedat Date
Posts + creatorid: Objectia
+ id: Objectid
+ photoUris: String]
+ videoUrt: String
+ viewRange: String + backgroundColor: String
20
Trang 383.3.2 Mô tả sơ đồ lớp
STT Tên lớp Mô tả
1 Users Lớp lưu trữ thông tin của người dùng
2 Posts Lớp lưu trữ các bài viết của người dùng
3 Comments Lớp lưu trữ các bình luận của bài viết
4 Recipes Lop lưu trữ các công thức nau ăn
5 Products Lớp lưu trữ các sản phẩm liên quan đến nấu ăn
6 RecipeLikes Lớp lưu trữ những người dùng thích công thức
7 RecipeCook Lớp lưu trữ những người dùng đã nấu công thức
8 Ratings Lớp lưu trữ những đánh giá của công thức
9 PostReactions Lớp lưu trữ những phản ứng của với bài viết
10 | CommentReactions Lớp lưu trữ những phản ứng với bình luận
11 Ingredients Lớp lưu trữ thông tin về các nguyên liệu nấu ăn
12 SpecialGoals Lớp lưu trữ các loại mục đích đặc biệt của món ăn
13 MenuTypes Lớp lưu trữ loại thực đơn của mon ăn
14 Cuisines Lớp lưu trữ các nên âm thực (N én âm thực là một
hệ thông đặc biệt về quan điểm truyền thống và
thực hành nấu ăn, nghệ thuật bếp núc, nghệ thuật
chế biến thức ăn, thường gắn liền với một nền văn
21
Trang 39hóa cụ thé Nó thường được đặt tên theo vùng
hoặc nên văn hóa hiện hành )
15 ProductTypes Lớp lưu trữ tên các loại sản phẩm
16 DishType Lớp lưu trữ các loại món ăn
17 Units Lớp lưu trữ các đơn vị
18 CookMethods Lớp lưu trữ các phương pháp nấu ăn
3.3.2.1 Mô tả Users Collection
STT Tén Kiéu Rang buộc Y nghia
1 | id Objectld Mã nhận dạng
2 | followingUsers | Array[String] Danh sách mã những người
đang được mình theo dõi
3 | followerUsers Array[String] Danh sách mã những người
đang theo dõi mình
4 | name String Tên người dùng
5 | email String Unique Dia chi email
6 | bio String Tiểu sử người dùng
7 | avatarUrl String Duong dan téi anh dai dién
8 | phone String Số điện thoại
22
Trang 409 | gender String Giới tinh
10 | status String Trang thai cua tai khoan
11 | hashPassword String Mật khâu đã được mã hóa
12 | createdAt Date Ngày tao
13 | updatedAt Date Ngày cập nhật
14 | deletedAt Date Ngày xóa
Bang 3.11: Mô tả Users Collection
3.3.2.2 Mô ta Recipes Collection
STT Tén Kiéu Rang buộc Y nghia
1 | id ObJectld Mã nhận dạng
2 | creatorld ObJectId Mã người tạo
3 | createdAt Date Ngày tạo
4 | updatedAt Date Ngày cap nhật
5 | deletedAt Date Ngày xóa
6_ | description String Mô tả
7 | name String Tên công thức
8 | photoUrls Array[String] Danh sách đường dan
của các ảnh
9 | servings Number Khau phan
23