Tải bản đầy đủ (.pdf) (79 trang)

Đồ án xây dựng ứng dụng mạng xã hội chia sẽ văn hóa ẩm thực

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.11 MB, 79 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

ĐỒ ÁN 2

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI
CHIA SẼ VĂN HÓA ẨM THỰC
BUILDING A SOCIAL APP TO SHARE CUISINE

SVTH

: ĐẶNG DUY BẰNG
NGUYỄN NHỰT TÂN

GVHD : ThS. THÁI THỤY HÀN UYỂN

TP. Hồ Chí Minh, tháng 12 năm 2022


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

ĐỒ ÁN 2

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI
CHIA SẼ VĂN HÓA ẨM THỰC
BUILDING A SOCIAL APP TO SHARE CUISINE



SVTH

: ĐẶNG DUY BẰNG
NGUYỄN NHỰT TÂN

GVHD

: ThS. THÁI THỤY HÀN UYỂN

NGÀNH : KỸ THUẬT PHẦN MỀM

TP. Hồ Chí Minh, 2022

- 19521234
- 19520923


THÔNG TIN HỘI ĐỒNG CHẤM ĐỒ ÁN 2
Hội đồng chấm đồ án 2, thành lập theo Quyết định số …………………… ngày
…………………... của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
1. ………………………………. – Chủ tịch.
2. …………………….………… – Thư ký.
3. ……………………………… – Ủy viên.
4. …………………….………… – Ủy viên.


ĐHQG TP. HỒ 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úc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày…tháng…năm 2022
NHẬN XÉT ĐỒ ÁN 2
(Của cán bộ hướng dẫn)

Tên đề tài:
XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẼ VĂN HĨA ẨM THỰC

Nhóm sinh viên thực hiện:
Họ và Tên: Đặng Duy Bằng

MSSV: 19521234

Họ và Tên: Nguyễn Nhựt Tân

MSSV: 19520923

Đánh giá Đồ á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 phẩm

:

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:
……………………………………………………………………………………………...
……………………………………………………………………………………………...
……………………………………………………………………………………………...
……………………………………………………………………………………………...
3. Về chương trình ứng dụng
……………………………………………………………………………………………...



……………………………………………………………………………………………...
……………………………………………………………………………………………...
……………………………………………………………………………………………...
4. Về thái độ làm việc của sinh viên
……………………………………………………………………………………………...
……………………………………………………………………………………………...
……………………………………………………………………………………………...
Điểm từng sinh viên:
Đặng Duy Bằng

: ………. /10

Nguyễn Nhựt Tân : ………. /10
Người nhận xét
(Ký tên và ghi rõ họ tên)


ĐHQG TP. HỒ 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úc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày…tháng…năm 2022

NHẬN XÉT ĐỒ ÁN 2
(Của cán bộ phản biện)

Tên đề tài:
XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẼ VĂN HĨA ẨM THỰC

Nhóm sinh viên thực hiện:
Họ và Tên: Đặng Duy Bằng

MSSV: 19521234

Họ và Tên: Nguyễn Nhựt Tân

MSSV: 19520923

Đánh giá Đồ án:
1. Về cuốn báo cáo:
Số trang

:

Số chương

:

Số bảng

:

Số hình vẽ


:

Số tài liệu tham khảo

:

Sản phẩm

:

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:
……………………………………………………………………………………………...
……………………………………………………………………………………………...
……………………………………………………………………………………………...
……………………………………………………………………………………………...
3. Về chương trình ứng dụng
……………………………………………………………………………………………...


……………………………………………………………………………………………...
……………………………………………………………………………………………...
……………………………………………………………………………………………...
4. Về thái độ làm việc của sinh viên
……………………………………………………………………………………………...
……………………………………………………………………………………………...

……………………………………………………………………………………………...
Điểm từng sinh viên:
Đặng Duy Bằng

: ………. /10

Nguyễn Nhựt Tân : ………. /10
Người nhận xét
(Ký tên và ghi rõ họ tên)


LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và phát triền đề tài “Ứng dụng mạng xã hội
chia sẽ văn hóa ẩm thực” chúng em đã nhận được sự giúp đỡ, chỉ bảo nhiệt tình của Cơ để
hồn thành đồ án này.
Chúng em xin bày tỏ sự biết ơn đặc biệt đến Cô Thái Thụy Hàn Uyển người đã trực
tiếp hướng dẫn, giúp đỡ về kiến thức, tài liệu và phương pháp để chúng em hoàn thành đề
tài này.
Chúng em xin chân thành cảm ơn vì những thời gian quý báu Cô đã dành ra để kiểm
tra, đưa ra các ý kiến nhận xét và đóng góp rất nhiều vào những tính năng, hướng phát triển
mới hơn cho đề tài.
Hi vọng với sự chỉ báo và góp ý từ Cơ, nhóm đề tài có thể tiếp tục phát triển để ứng
dụng ngày càng được mở rộng và phục vụ được tốt hơn cho người dùng.
Mặc dù đã có nhiều cố gắng trong suốt quá trình thực hiện đề tài, song có thể cịn
có những mặt hạn chế, thiếu sót. Chúng em rất mong nhận được ý kiến đóng góp và sự chỉ
dẫn của Cô và các bạn để đề tài của chúng em được hoàn thiện hơn.
Chúng em xin trân trọng cảm ơn!

TP. Hồ Chí Minh, Tháng 12 năm 2022


i


ĐHQG TP. HỒ 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úc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày…tháng…năm 2022

ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI:
XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẼ VĂN HÓA ẨM THỰC
Cán bộ hướng dẫn: ThS. Thái Thụy Hàn Uyển
Thời gian thực hiện: Từ ngày 20/09/2022 đến ngày 30/12/2022
Nhóm sinh viên thực hiện:
Đặng Duy Bằng

- 19521234

Nguyễn Nhựt Tân - 19520923
Nội dung đề tài:
Mục tiêu:
 Ứng dụng được xây dựng với mục đích kết nối những người yêu ăn uống và nấu ăn,

tạo môi trường chia sẻ, học hỏi về văn hóa món ăn như chia sẻ địa điểm, hàng quán
với các món ăn ngon, chia sẻ, hướng dẫn nấu ăn.
 Thông qua chức năng chia sẻ và hướng dẫn nấu ăn, khuyến khích việc nấu ăn tại
nhà, hạn chế tiếp xúc nơi hàng quán đông người trong thời kỳ dịch bệnh.
 Bên cạnh đó, đề tài cũng tạo ra cơ hội để nghiên cứu, học hỏi để nâng cao chuyên
môn trong lĩnh vực phát triển phần mềm. Năm bắt các công nghệ mới và xu hướng
phát triển ứng dụng trên thị trường
Phạm vi:
Đề tài tập trung vào xây dứng ứng dụng trên di động trên nền tảng Android với các
chức năng chính:
 Khởi tạo tài khoản: Khơng cần đăng ký, tích hợp đăng nhập qua tài khoản Google,
Facebook.
 Mạng xã hội: Chia sẻ, bình luận và thể hiện cảm xúc thời gian thực về món ăn/hàng
quán/địa điểm...
 Nhận xét, đánh gía: Bất kỳ người dùng nào cũng có thể để lại đánh giá và nhận xét
trên những tiêu chí, giúp người dùng khác chọn được món ăn/hàng qn/địa điểm
phù hợp.
ii


 Trò chuyện: Nhắn tin với bạn bè hỗ trợ các định dạng văn bản, biểu tượng cảm xúc,

nhãn dán, hình ảnh.
 Thơng báo: Ln nhận được thơng báo thời gian thực kể cả khi không mở ứng dụng.
 Feedback/Report: Tiếp nhận Feedback, report từ người dùng để cải thiện môi trường

mạng xã hội và ứng dụng.
Đối tượng sử dụng:
Là những người sử dụng thiết bị di động (Android) có các nhu cầu như:
 Người có sở thích nấu ăn và ăn uống.

 Người có nhu cầu tìm hiểu về đồ ăn, đồ uống cùng như về sự đa dạng của ẩm thực.
 Người muốn chia sẽ bí quyết cùng nhiệt quyết đam mê cùng mình với những người
cùng sở thích
Phương pháp thực hiện:
 Tìm hiểu và đánh giá các giải pháp đã có.
 Đề xuất, cải thiện các tính năng cần thiết.
 Áp dụng mơ hình thác nước vào xây dựng ứng dụng
Kết quả mong đợi:
 Hiểu rõ các framework, công nghệ cũng như các công cụ liên quan (Figma, React
Native, Websocket, Nodejs, Mongodb, heroku, Postman …) để có thể ứng dụng vào
xây dựng ứng dụng mạng xã hội chia sẽ văn hóa ẩm thực.
 Hồn thành ứng dụng chạy trên nền tảng Android với đầy đủ các yêu cầu chức năng
đề ra.
 Ứng dụng có độ hồn thiện cao, có khả năng đưa vào thực tiễn
Kế hoạch thực hiện:
Đồ án 2 được thực hiện trong 15 tuần, thời gian và mô tả nội dung công việc được thể hiện ở
bảng bên dưới:
Giai đoạn

Công việc thực hiện





Khảo sát các ứng dụng tương tự
Phát biểu bài tốn
Phân tích, xác định chức năng
Tìm hiểu các cơng nghệ cơng cụ được
sử dụng trong đồ án (React Native,

Nodejs, Figma, mongodb WebSocket,
…)
 Tìm hiểu thuật tốn

Phân tích u cầu, nghiên cứu kỹ thuật
(09/2022)

 Đọc tài liệu về ngôn ngữ
 Cài đặt môi trường và cơng cụ

Tìm hiểu và học ngơn ngữ
(09/2022 – 10/2022)
iii


 Thiết kế kiến trúc phần mềm
 Thiết kế cơ sỡ dữ liệu
 Dựa vào mô tả chức năng vẽ các màn
hình tương ứng
 Tham khảo các ứng dụng tương tự để
mô phỏng ứng dụng
 Sử dụng công cụ figma để thiết kế
giao diện

Thiết kế hệ thống
(10/2022 – 11/2022)

 Chia cơng việc cho từng thành viên
 Hiển thực hóa ứng dụng được thiết kế
 Triển khai server ứng dụng lên Cloud

(Heroku + Render)

Chia công việc và triển khai
(10/2022 – 12/2022)

 Hoàn thiện ứng dụng
 Chỉnh sửa và viết báo cáo
 Quay video demo

Tổng hợp và hoàn tất báo cáo
(12/2022)

iv


MỤC LỤC
LỜI CẢM ƠN ................................................................................................................... i
MỤC LỤC ....................................................................................................................... v
DANH MỤC HÌNH ....................................................................................................... vii
DANH MỤC BẢNG .....................................................................................................viii
DANH MỤC TỪ VIẾT TẮT .......................................................................................... ix
TÓM TẮT ĐỒ ÁN 2 ....................................................................................................... x
CHƯƠNG 1

MỞ ĐẦU ............................................................................................... 1

1.1

Giới thiệu đề tài ........................................................................................ 1


1.2

Lý do chọn đề tài ...................................................................................... 1

CHƯƠNG 2

TỔNG QUAN ĐỀ TÀI .......................................................................... 2

2.1

Mục tiêu .................................................................................................... 2

2.2

Phạm vi ..................................................................................................... 2

2.3

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

2.4

Kết quả dự kiến ......................................................................................... 2

2.5

Hiện trạng bài toán .................................................................................... 3

2.5.1 Các ứng dụng liên quan ........................................................................ 4
2.5.2 Đánh giá hiện trạng và hướng giải quyết ............................................... 6

CHƯƠNG 3
3.1

KIẾN THỨC NỀN TẢNG ..................................................................... 7
Công cụ quản lý và trao đổi....................................................................... 7

3.1.1 Visual Code .......................................................................................... 7
3.1.2 Figma ................................................................................................... 7
3.1.3 Draw.io ................................................................................................. 8
3.1.4 Trello .................................................................................................... 8
3.1.5 Postman ................................................................................................ 9
3.2

Cơng thức và thuật tốn sử dụng ............................................................... 9

3.2.1 Mơ hình dự đốn và đề xuất nguyên liệu phù hợp ................................. 9
3.2.2 Siamese Neural Network .................................................................... 10
3.3

Công nghệ sử dụng ................................................................................. 11

3.3.1 React Native ....................................................................................... 11
3.3.2 NodeJS ............................................................................................... 12
v


3.3.3 Websocket .......................................................................................... 13
3.3.4 NoSql ................................................................................................. 15
3.3.5 MongoDB ........................................................................................... 16
3.3.6 Heroku ................................................................................................ 16

CHƯƠNG 4
4.1

XÂY DỰNG ỨNG DỤNG .................................................................. 18
Phân tích yêu cầu hệ thống ...................................................................... 18

4.1.1 Phân tích yêu cầu chức năng ............................................................... 18
4.1.2 Phân tích yêu cầu phi chức năng ......................................................... 18
4.1.3 Phân tích yêu cầu người dùng ............................................................. 19
4.2

Phân tích thiết kế hệ thống ...................................................................... 39

4.2.1 Thiết kế xử lý ..................................................................................... 39
4.2.2 Thiết kế cơ sỡ dữ liệu ......................................................................... 49
4.2.3 Thiết kế kiến trúc hệ thống ................................................................. 54
4.2.4 Thiết kế giao diện ............................................................................... 55
4.3

Triển khai hệ thống ................................................................................. 58

4.3.1 Máy chủ.............................................................................................. 58
4.3.2 Ứng dụng di động ............................................................................... 59
CHƯƠNG 5

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................ 60

5.1

Kết quả đạt được ..................................................................................... 60


5.2

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

5.2.1 Thuận lợi ............................................................................................ 60
5.2.2 Khó khăn ............................................................................................ 60
5.3

Hướng phát triển ..................................................................................... 60

TÀI LIỆU THAM KHẢO .............................................................................................. 61

vi


DANH MỤC HÌNH
Hình 3-1 Tổng quan mơ hình KitcheNettee ............................................................. 9
Hình 3-2 Sơ đồ hoạt động của thuật tốn Siamese Neural Network ....................... 11
Hình 3-3 Sơ đồ Use case tồn hệ thống.................................................................. 19
Hình 3-4 Sơ đồ tuần tự thao tác Đăng ký ............................................................... 39
Hình 3-5 Sơ đồ tuần tự thao tác Đăng nhập ........................................................... 40
Hình 3-6 Sơ đồ tuần tự thao tác Đăng nhập Google ............................................... 40
Hình 3-7 Sơ đồ tuần tự thao tác Quên mật khẩu ..................................................... 41
Hình 3-8 Sơ đồ tuần tự thao tác Đổi mật khẩu ....................................................... 41
Hình 3-9 Sơ đồ tuần tự thao tác Vơ hiệu hóa tài khoản .......................................... 42
Hình 3-10 Sơ đồ tuần tự thao tác Tạo bài viết ........................................................ 42
Hình 3-11 Sơ đồ tuần tự thao tác Xóa bài viết ....................................................... 43
Hình 3-12 Sơ đồ tuần tự thao tác Check in............................................................. 43
Hình 3-13 Sơ đồ tuần tự thao tác Thể hiện cảm xúc ............................................... 44

Hình 3-14 Sơ đồ tuần tự thao tác Bình luận bài viết ............................................... 44
Hình 3-15 Sơ đồ tuần tự thao tác Chia sẽ bài viết .................................................. 44
Hình 3-16 Sơ đồ tuần tự thao tác Tìm kiếm bài viết ............................................... 45
Hình 3-17 Sơ đồ tuần tự thao tác Cập nhật thơng tin cá nhân ................................. 45
Hình 3-18 Sơ đồ tuần tự thao tác Tìm kiếm người dùng ........................................ 46
Hình 3-19 Sơ đồ tuần tự thao tác Theo dõi người dùng .......................................... 46
Hình 3-20 Sơ đồ tuần tự thao tác Tạo cơng thức món ăn ........................................ 46
Hình 3-21 Sơ đồ tuần tự thao tác Tìm kiếm cơng thức món ăn .............................. 47
Hình 3-22 Sơ đồ tuần tự thao tác Đánh giá cơng thức ............................................ 47
Hình 3-23 Sơ đồ tuần tự thao tác Tìm kiếm cơng thức món ăn .............................. 47
Hình 3-24 Sơ đồ tuần tự Tìm quán ăn gần đây ....................................................... 48
Hình 3-25 Sơ đồ tuần tự thao tác Nhắn tin ............................................................. 48
Hình 3-26 Sơ đồ thiết kế cơ sỡ dữ liệu ................................................................... 49
Hình 3-27 Sơ đồ kiến trúc tổng thể hệ thống .......................................................... 54
Hình 3-28 Sơ đồ kiến trúc ứng dụng di động ......................................................... 55

vii


DANH MỤC BẢNG
Bảng 4-1 Danh sách các Actors ............................................................................. 20
Bảng 4-2 Danh sách các Use case .......................................................................... 20
Bảng 4-3 Bảng đặc tả chi tiết use case cho chức năng Đăng ký ............................. 21
Bảng 4-4 Bảng đặc tả chi tiết use case cho chức năng Đăng nhập ......................... 22
Bảng 4-5 Bảng đặc tả chi tiết use case cho chức năng Đăng nhập với Google....... 22
Bảng 4-6 Bảng đặc tả chi tiết use case cho chức năng Quên mật khẩu .................. 23
Bảng 4-7 Bảng đặc tả chi tiết use case cho chức năng Đổi mật khẩu ..................... 24
Bảng 4-8 Bảng đặc tả chi tiết use case cho chức năng Vơ hiệu hóa tài khoản ........ 24
Bảng 4-9 Bảng đặc tả chi tiết use case cho chức năng Tạo bài viết ....................... 25
Bảng 4-10 Bảng đặc tả chi tiết use case cho chức năng Xóa bài viết ..................... 26

Bảng 4-11 Bảng đặc tả chi tiết use case cho chức năng Check in .......................... 27
Bảng 4-12 Bảng đặc tả chi tiết use case cho chức năng Thể hiện cảm xúc bài viết 27
Bảng 4-13 Bảng đặc tả chi tiết use case cho chức năng Bình luận bài viết ............ 28
Bảng 4-14 Bảng đặc tả chi tiết use case cho chức năng Chia sẽ bài viết ................ 29
Bảng 4-15 Bảng đặc tả chi tiết use case cho chức năng Tìm kiếm bài viết ............ 29
Bảng 4-16 Bảng đặc tả chi tiết use case cho chức năng Cập nhật thông tin ........... 30
Bảng 4-17 Bảng đặc tả chi tiết use case cho chức năng Tìm kiếm người dùng ...... 31
Bảng 4-18 Bảng đặc tả chi tiết use case cho chức năng Theo dõi người dùng ....... 31
Bảng 4-19 Bảng đặc tả chi tiết use case cho chức năng Tạo cơng thức món ăn ..... 32
Bảng 4-20 Bảng đặc tả chi tiết use case cho chức năng Xóa cơng thức món ăn ..... 33
Bảng 4-21 Bảng đặc tả chi tiết use case cho chức năng Đánh giá công thức ......... 34
Bảng 4-22 Bảng đặc tả chi tiết use case cho chức năng Tìm cơng thức món ăn ..... 34
Bảng 4-23 Bảng đặc tả chi tiết use case cho chức năng Tìm quán ăn gần đây ....... 35
Bảng 4-24 Bảng đặc tả chi tiết use case cho chức năng Nhắn tin văn bản ............. 36
Bảng 4-25 Bảng đặc tả chi tiết use case cho chức năng Nhắn tin hình ảnh ............ 36
Bảng 4-26 Bảng đặc tả chi tiết use case cho chức năng Phản hồi hệ thống ............ 37
Bảng 4-27 Bảng đặc tả chi tiết use case cho chức năng Thông báo hoạt động ....... 38

viii


DANH MỤC TỪ VIẾT TẮT

STT

Từ viết tắt

1

STT


2

Tên đầy đủ

Diễn giải

Số thứ tự

Số thứ tự trong bảng

CSDL

Cơ sỡ dữ liệu

Là nơi lưu trữ dữ liệu, thông tin
của các vấn đề liên quan đến ứng
dụng

3

UI

User Interface

Là những gì chúng ta nhìn thấy và
giao tiếp với ứng dụng

4


SDK

Software Development Kit

Là các công cụ và phần mềm
dùng để phát triển ứng dụng thông
qua một nền tảng nhất định

5

API

Application Programming
Interface

Giao diện lập trình ứng dụng. Sử
dụng để truy cập 1 số phương
thức của hệ thống, từ đó có thể
trao đổi dữ liệu từ các ứng dụng

6

REST

Representational State
Transfer

Một kiểu kiến trúc lập trình, định
nghĩa các quy tắc để thiết kế web
service.


7

SNN

Siamese Neural Network

Là một kiến trúc mạng nơ-ron xử
lý, phân tích và tìm sự giống nhau
của 2 hoặc nhiều vec-tơ đầu vào

ix


TÓM TẮT ĐỒ ÁN 2
Đồ án 2 với đề tài “Xây dựng ứng dụng mạng xã hội chia sẽ văn hóa ẩm thực” tập
trung vào nghiên cứu, phân tích thực trạng và ứng dụng các công nghệ mới để từ đó xây
dựng thành một ứng dụng di động hồn chỉnh. Đáp ứng nhu cầu tìm kiếm, chia sẻ đam mê
ăn uống và nấu ăn đến mọi người.
Đề tài được bắt đầu từ việc tìm hiểu thực trạng, đưa ra các vấn đề cịn tồn đọng hoặc
có thể cải thiện. Xác định mục tiêu, phạm vi của đề tài cũng như các chức năng cần có của
hệ thống. Ngồi việc xử lý các nghiệp vụ cho hệ thống, chúng em cũng đã tìm hiểu, so sánh
và lựa chọn được các cơng nghệ mới và phù hợp giúp nâng cao trải nghiệm người dùng,
tối ưu chi phí phát triển và triển khai.
Nhờ việc phân tích các yêu cầu rõ ràng, thời gian phát triển ngắn và các yêu cầu, tính
năng ít thay đổi, trong quá trình phát triển đề tài đã sử dụng mơ hình thác nước cho việc
xây dựng hệ thống. Kết quả thu được trong giai đoạn thiết kế như kiến trúc hệ thống, cơ sở
dữ liệu, giao diện được thể hiện bằng sơ đồ người dùng, sơ đồ tuần tự và bản thiết kế sử
dụng công cụ Figma và Draw.io. Trong giai đoạn thực hiện, front end sử dụng framework
React native - công nghệ được tạo bởi Facebook, cho phép các developer sử dụng

JavaScript để làm mobile apps trên cả Android và iOS với mượt mà như native và back
end sử dụng Nodejs - một nền tảng (Platform) được xây dựng trên V8 JavaScript Engine –
trình thơng dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn
giản và dễ dàng mở rộng. Trong giai đoạn vận hành, server đã được triển khai lên máy chủ
Heroku, hồn tồn có thể truy cập dữ liệu thơng qua api từ bất cứ thiết bị nào gửi yêu cầu
có chứa trường xác thực dữ liệu hợp lệ.
Phần cuối cùng của khố luận là trình bày kết quả đã thực hiện lên cuốn báo cáo, đưa
ra kết luận và hướng phát triển cho hệ thống trong tương lai.
LINK DRIVE ĐỒ ÁN 2:

x


Nội dung đồ án 2 được trình bày trong 5 chương:
 Chương 01: Mở đầu
Trình bày sơ bộ về đề tài và lý do thực hiện
 Chương 02: Tổng quan đề tài
Xác định mục tiêu, phạm vi đề tài. Nêu lên hiện trạng và hướng giải quyết.
 Chương 03: Kiến thức nền tảng
Giới thiệu các công thực, giải thuật cũng như những cơng nghệ được đưa vào khố
luận.
 Chương 04: Xây dựng ứng dụng mạng xã hội chia sẽ văn hóa ẩm thực
Phân tích u cầu, thiết kế, hiện thực và triển khai ứng dụng.
 Chương 05: Kết luận và hướng phát triển
Những thuận lợi, khó khăn trong q trình phát triển đề tài và nêu ra hướng phát triển
trong tương lai.

xi



CHƯƠNG 1
1.1

MỞ ĐẦU

Giới thiệu đề tài

Ẩm thực là chiếc gương soi chân thực cho nền văn hóa của mỗi quốc gia. Ẩm
thực cũng là một cách để mỗi đất nước quảng bá nền văn hóa của họ. Mỗi nền văn hóa ẩm
thực của mỗi quốc gia đều lớn lên và đi cùng với mỗi bước phát triển của đất nước đó, là
một khía cạnh để đánh giá quốc gia đó có được một nền văn hóa phát triển rực rỡ, có sát
cánh với nền ẩm thực đa dạng, phong phú, mn hình, mn vẻ của thế giới đang phát
triển từng ngày. Bên cạnh những món ăn hiện đại là cả một kho tàng phong phú về những
món ăn cổ truyền hấp dẫn mn vàn thế hệ.
Qua đó ta thấy được được sự quan trọng của nền văn hóa ẩm thực cũng góp phần xây
dựng phát triển đất nước. Thơng thường mọi người sẽ cũng sẽ thường ấn tượng với mỗi
quốc gia trên thế giới sẽ có các món ăn đặc trưng riêng cho đất nước của họ.
Vì vậy, để góp phần phát triển nền văn hóa ẩm thực nước nhà và kết nối các niềm
đam mê nấu ăn, chia sẽ đến tất cả mọi người, đồ án này đã được chúng em lên ý tưởng và
thực hiện.
1.2

Lý do chọn đề tài

Hiện nay, càng ngày càng có nhiều các món ăn ngon, mới lạ được tạo ra từ những cá
nhân có kiến thức hoặc từ các đầu bếp trên toàn thế giới. Nhưng chúng không thể tiếp cận
được hết với tất cả mọi người vì khơng phải ai cũng có thời gian, có điều kiện để đến tận
nơi mà thưởng thức.
Ngồi ra, với những lúc như hiện nay, tình trạng dịch bệnh kéo dài, con người rất hạn
chế tiếp xúc, đây cũng là một phần lý do nhiều người muốn chọn nấu ăn ở nhà để đảm bảo

an toàn sức khỏe cũng như tuân thủ các biện pháp cách ly của xã hội. Nhưng khơng phải
ai cũng có đủ kinh nghiệm đủ kiến thức để trở thành một đầu bếp tại nhà.
Từ những thực trạng như hiện nay, tụi em đã lên ý tưởng xây dựng một ứng dụng như
một một mạng xã hội chia sẽ, một thế giới kết nối mọi người bằng những món ăn, những
văn hóa ẩm thực khác nhau trên cả nước. Thay vì họ phải tìm kiếm và chọn lọc thơng tin
món ăn trên nhiều nền tảng khác nhau thì giờ đây chúng em muốn tạo ra một ứng dụng có
thể giúp mọi người vừa chia sẽ món ăn vừa trị chuyện trao đổi những kinh nghiệm nấu ăn
trong cuộc sống. Đồng thời sẽ giúp mọi người tiếp cận được với nhiều nền văn hóa ẩm
thực khác trên thế giới, cùng nhau tạo một cộng đồng ăn uống và chia sẽ lành mạnh góp
phần phát triển đất nước.
Trong quá trình hình thành ý tưởng, em cũng đã tham khảo và tìm hiểu các hệ thống
đã giải quyết các vấn đề nêu ra. Kết quả là nhận thấy chưa có hệ thống nào phù hợp, giải
quyết đầy đủ, hoặc quá nhiều vấn đề được chia sẽ trong một mạng xã hội mà không tập
trung vào một lĩnh vực cụ thể. Tuy nhiên, nhờ tham khảo các hệ thống khác mà em rút ra
được những kinh nghiệm hữu ích và quyết định tạo ra ứng dụng mạng xã hội chia sẽ văn
hóa ẩm thực.
1


CHƯƠNG 2
2.1

TỔNG QUAN ĐỀ TÀI

Mục tiêu

Ứng dụng được xây dựng với mục đích kết nối những người yêu ăn uống và nấu ăn,
tạo môi trường chia sẻ, học hỏi về văn hóa món ăn như chia sẻ địa điểm, hàng quán với các
món ăn ngon, chia sẻ, hướng dẫn nấu ăn.
Thông qua chức năng chia sẻ và hướng dẫn nấu ăn, khuyến khích việc nấu ăn tại nhà,

hạn chế tiếp xúc nơi hàng quán đông người trong thời kỳ dịch bệnh.
Bên cạnh đó, đề tài cũng tạo ra cơ hội để nghiên cứu, học hỏi để nâng cao chuyên
môn trong lĩnh vực phát triển phần mềm. Năm bắt các công nghệ mới và xu hướng phát
triển ứng dụng trên thị trường
2.2

Phạm vi

Đề tài tập trung vào xây dứng ứng dụng trên di động trên nền tảng Android với các chức
năng chính:
 Khởi tạo tài khoản: Khơng cần đăng ký, tích hợp đăng nhập qua tài khoản Google,
Facebook.
 Mạng xã hội: Chia sẻ, bình luận và thể hiện cảm xúc thời gian thực về món ăn/hàng
qn/địa điểm...
 Nhận xét, đánh gíá: Bất kỳ người dùng nào cũng có thể để lại đánh giá và nhận xét
trên những tiêu chí, giúp người dùng khác chọn được món ăn/hàng qn/địa điểm
phù hợp.
 Trị chuyện: Nhắn tin với bạn bè hỗ trợ các định dạng văn bản, biểu tượng cảm xúc,
nhãn dán, hình ảnh.
 Thông báo: Luôn nhận được thông báo thời gian thực kể cả khi không mở ứng dụng.
 Feedback/Report: Tiếp nhận Feedback, report từ người dùng để cải thiện môi trường
mạng xã hội và ứng dụng.
2.3

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

Đề tài được thực hiện bằng cách tìm hiểu, đánh giá các giải pháp đã có. Tìm ra những
điểm hay và phù hợp với đề tài để kế thừa, cải tiến. Sau đó đề tài sẽ được bổ sung các tính
năng mới, cần thiết để trở nên hoàn thiện và đáp ứng được nhu cầu thực tế của người dùng.
Ứng dụng mơ hình thác nước vào quá trình phát triển phần mềm và chia thành các

giai đoạn rõ ràng. Các công nghệ hữu ích cho đề tài sẽ được tìm hiểu ở giai đoạn đầu và
triển khai trong suốt quá trình phát triển.
2.4

Kết quả dự kiến

Hiểu rõ các framework, công nghệ cũng như các công cụ liên quan (Figma, React
Native, Websocket, Nodejs, Mongodb, heroku, Postman …) để có thể ứng dụng vào xây
dựng ứng dụng mạng xã hội chia sẽ văn hóa ẩm thực.
2


Cuối cùng, sản phẩm có độ hồn thiện cao, giao diện thân thiện với người dùng, có
khả năng mở rộng. Hoàn thành ứng dụng chạy trên nền tảng Android với đầy đủ các yêu
cầu chức năng đề ra. Ứng dụng có độ hồn thiện cao, có khả năng đưa vào thực tiễn.
2.5

Hiện trạng bài toán

Mạng xã hội và đồ ăn có một mối quan hệ cộng sinh với nhau. Mạng xã hội, tiên
phong bởi Yahoo, MySpace, Youtube, sau đó là được hoàn thiện bởi Facebook, Twitter,
Snapchat, Instagram, Tumblr đã tạo ra một văn hóa chia sẻ, và ở mức độ nào đó, là nền
kinh tế chia sẻ ở mức độ tồn cầu. Người dùng mạng được khuyến khích, và đơi lúc là nhắc
nhở, rằng họ cần phải chia sẻ mọi thứ, hãy chia sẻ những khoảnh khắc tuyệt nhất, những
trải nghiệm, suy nghĩ, hình ảnh, tóm lại là một phần cuộc sống của họ cho thế giới ngoài
kia, hằng tuần, hằng ngày, thậm chí là hằng giờ. Chia sẻ là hạnh phúc, đó là phương châm
sống trong nền văn hóa này. Và Facebook, Youtube, cùng với hàng chục mạng xã hội khác
ngày càng đầu tư vào công nghệ mới để bạn có thể thoải mái thực hiện việc chia sẻ của
mình. Bạn thích chia sẻ nhưng khơng thích những hình ảnh đó sẽ bị ai đó lục lại sau 5 năm,
hay là bạn sợ bị người ta chê là sống ảo, đừng lo, Facebook đã tạo ra Instagram Story, chức

năng cho phép bạn chia sẻ thoải mái bất cứ điều gì về bản thân và chia sẻ hằng ngày, hằng
giờ, liên tục, mà không sợ thiên hạ dèm pha “sống ảo”. Cịn Youtube, Twitch và gần đây
là Facebook thì cho phép bạn “truyền hình trực tiếp” bất cứ thứ gì bạn muốn từ màn hình
máy tính của bạn hay cuộc sống của bạn, như là game bạn đang chơi, đến phát sóng phim,
hay là suy nghĩ của bạn (vlog). Bạn thấy đấy, các cơng ty tồn cầu ln tận tình giúp việc
chia sẻ của người dùng càng lúc càng dễ dàng, thuân tiện, họ không hề tiếc một đồng để
giúp “nâng cao trải nghiệm người dùng”. Vậy thì sao bạn cịn chưa chia sẻ?

Nhưng chúng ta chia sẻ những gì? Khi một người chia sẻ lên mạng xã hội, anh ta, cô
ấy cần phải chia sẻ những thứ mà người khác dễ đồng cảm. Rõ ràng là chẳng có nghĩa lý
gì khi chia sẻ cho hàng trăm người một thứ mà chỉ có mỗi bản thân mình hiểu, như là
phương trình cơ học lượng tử hay là một đoạn trích từ sách triết học của Descartes. Chúng
ta muốn chia sẻ những thứ mà vừa gần gũi với cuộc sống chúng ta, đồng thời thứ đó lại có
thể nhận được sự đồng cảm của nhiều người. Và có chủ đề gì tốt hơn là chủ đề đồ ăn và
3


thức uống? Rõ ràng là bất cứ ai trong chúng ta cũng ăn ít nhất 2 bữa một ngày, và mua đồ
uống bên ngồi ít nhất 1 tuần một lần. Đồ ăn, thức uống là hai thứ trụ cột tạo nên văn hóa
của hầu hết xã hội trên trái đất này, bạn có thể khơng hiểu ngơn ngữ của một người lạ mặt
nhưng có thể đồng cảm với hình ảnh người đó đang ăn. Và do đó, khơng có gì lạ khi thức
ăn, đồ uống là thứ phổ biến nhất trên mạng xã hội. Nếu bạn ăn ba buổi một ngày và chia
sẻ hình trên Instagram 10 lần một tuần, thì chắc chắn ít nhất 1 trong 10 bức hình đó sẽ là
hình đồ ăn. Đồ uống có thể ít hơn nhưng số lần chia sẻ nhìn chung vẫn là nhiều.
Bên cạnh đó, với tình hình dịch bệnh cùng các biện pháp hạn chế tiếp xúc như hiện
nay thì việc tự nấu ăn và trau dồi những kiến thức đời sống về ẩm thực là vô cùng cần thiết,
việc chia sẽ vừa cho đi kiến thức cũng như vừa nhận lại kiến thức tạo ra một môi trường
chia sẽ lành mạnh với những con người có cùng đam mê về ăn uống, đáp ứng như cầu của
mọi người, mọi nhà, đặc biệt là vơ cùng phù hợp với hồn cảnh phải hạn chế tiếp xúc như
hiện nay.

Như vậy chúng ta đã thấy được mối tương quan giữa mạng xã hội và đồ ăn, bây giờ
chúng ta sẽ tìm hiểu về việc nó đã thay đổi góc nhìn của người trẻ đối với đồ ăn như thế
nào.
2.5.1 Các ứng dụng liên quan
Sau khi khảo sát hiện trạng, em đã tìm hiểu được một số ứng dụng liên quan, có đáp
ứng một phần trong việc giải quyết hiện trạng được nêu ra.
2.5.1.1 Cooky – Nấu ngon mỗi ngày

Cooky – Nấu ngon mỗi ngày là ứng dụng nấu ăn bằng Tiếng Việt hỗ trợ một cách tốt
nhất cho công việc nấu nướng và nội trợ hàng ngày của bạn để trở nên dễ dàng hơn với các
công thức và mẹo vặt nhà bếp vơ cùng hữu ích. Sở hữu hơn 17.000 cơng thức cùng các
bước chi tiết có đính kèm hình ảnh minh họa cụ thể, Cooky – Nấu ngon mỗi ngày luôn có
những điều bạn cần và là người bạn đồng hành đáng tin cậy có thể giúp bạn kịp lúc.
Cooky có giao diện rất thân thiện và dễ sử dụng với các tính năng đi kèm như Bộ
Sưu Tập, Yêu thích và Shopping List đem đến cho người dùng sự tối ưu nhất. Đặc biệt,
Shopping List được xem là tính năng nổi trội nhất và tiện lợi nhất của Cooky, bởi nó cho
phép người dùng đánh dấu những nguyên liệu cần mua, đã mua hay có sẵn trước khi đi
chợ, chỉ cần thêm cơng thức vào danh sách chờ. Ngồi ra, tính năng này cịn giúp xác định
cần mua bao nhiêu nguyên liệu cho bao nhiêu khẩu phần ăn nữa. Nếu muốn trải nghiệm
những điều tuyệt vời mà ứng dụng này mang lại thì hãy thử download về và dùng thử xem,
đảm bảo những tính năng hay ho của nó khơng chỉ làm bạn cảm thấy vui vẻ mà còn khiến
bạn thích mê cho xem.
4


Ngồi ra, Cooky cịn là cộng đồng để các bạn u thích nấu nướng có thể tự do đăng
tải cơng thức nấu ăn của mình và chia sẻ qua trang Facebook, Google+.
2.5.1.2Cookpad

Cookpad là ứng dụng tìm kiếm và chia sẻ công thức nấu ăn như một cộng đồng

những người yêu thích nấu ăn. Tính đến thời điểm này, Cookpad đang sở hữu BST hơn
13.000 công thức nấu ăn ngon, bổ, rẻ, tiện sử dụng và số lượng đang không ngừng tăng lên
mỗi ngày. Với ứng dụng này, người dùng có thể đăng tải cơng thức nấu ăn với hình ảnh
minh họa và lưu lại những công thức nấu ăn mà mình u thích. Điểm thú vị là mỗi cơng
thức được đăng trên Cookpad đều có một câu chuyện độc đáo đằng sau nó. Đó có thể là
niềm tự hào thầm kín của một đầu bếp chuyên nghiệp, một bí kíp gia truyền được nâng niu
và truyền lại cho thế hệ sau, một món ăn đơn giản được chế biến thành công sau vô số lần
thất bại hay chỉ đơn giản là kết quả của một lần phát hiện tình cờ. Và dù bạn đang tìm kiếm
món ăn gì thì Cookpad cũng đều nỗ lực để mang đến những thứ bạn cần.
Ngồi ra, Cookpad cịn hỗ trợ tính năng cho phép người dùng chia sẻ công thức lên
trang mạng xã hội. Hiện tại, Cookpad đã hỗ trợ giao diện tiếng Việt, tối ưu hóa cho cả
smartphone lẫn máy tính bảng và cũng đã có khá nhiều người dùng Việt tham gia gửi cách
chế biến món ăn lên cộng đồng này.
2.5.1.3Tasty

Đây là một ứng dụng khá nổi tiếng trên mạng xã hội. Những clip hướng dẫn nấu món
ăn của Tasty được sự quan tâm của hàng nghìn lượt theo dõi. Ứng dụng này có mặt trên
cả 2 nền tảng là Android và IOS. Lượt tải về riêng chỉ trên google play đã lên tới con số
32.797. Ứng dụng này sẽ cung cấp cho bạn những hướng dẫn làm đồ ăn tuyệt hảo, đơn
giản. Hầu hết thực đơn món ăn sẽ là đồ ăn vặt, bánh nướng, và những món châu Âu. Hiện
tại ứng dụng này chỉ dùng với phiên bản tiếng Anh, chưa có phiên bản Việt hóa.
2.5.1.4Snapdish

SnapDish hiện tại đã cán mốc 1,7 triệu người dùng tích cực, yêu nấu ăn và thường
xuyên đăng tải sản phẩm của mình cho cộng đồng. Nếu bạn là người mới sử dụng thì cũng
5


đừng lo vì SnapDish khơng hề làm khó cho ai cả. Bạn đơn giản chỉ là chụp món ăn của
mình, sau đó, chỉnh sửa với các hiệu ứng để hình ảnh trở nên bắt mắt hơn và bắt đầu chia

sẻ. Với mỗi bài đăng, SnapDish đều cho phép người dùng tương tác với nhau bằng các tính
năng "Like", thêm biểu tượng cảm xúc và bình luận. Ngồi ra, khi theo dõi bảng tin hoặc
truy cập vào trang cá nhân của người khác, bạn cịn có cơ hội khám phá thêm nhiều món
ăn ngon, những ý tưởng kết hợp nguyên liệu, chế biến và trang trí thú vị hơn nữa. Rất tuyệt
vời phải khơng nào? Vậy thì đừng ngần ngại tải ứng dụng này về máy nhé. Chắc chắn bạn
sẽ tìm thấy vô số điều hấp dẫn với SnapDish.
2.5.2 Đánh giá hiện trạng và hướng giải quyết
2.5.2.1 Đánh giá hiện trạng
Hiện nay, càng ngày càng có nhiều các món ăn ngon, mới lạ được tạo ra từ những cá
nhân có kiến thức hoặc từ các đầu bếp trên toàn thế giới. Nhưng chúng không thể tiếp cận
được hết với tất cả mọi người vì khơng phải ai cũng có thời gian, có điều kiện để đến tận
nơi mà thưởng thức.
Ngồi ra, với những lúc như hiện nay, tình trạng dịch bệnh kéo dài, con người rất hạn
chế tiếp xúc, đây cũng là một phần lý do nhiều người muốn chọn nấu ăn ở nhà để đảm bảo
an toàn sức khỏe cũng như tuân thủ các biện pháp cách ly của xã hội. Nhưng khơng phải
ai cũng có đủ kinh nghiệm đủ kiến thức để trở thành một đầu bếp tại nhà.
Từ những thực trạng như hiện nay, rất cần có một những mạng xã hội giúp mọi người
có thể chia sẽ trao đổi với nhau mà không cần phải tiếp xúc trực tiếp, song song với đó
giúp cho mọi người có thêm kiến thức về ẩm thực cuộc sống, khơng cịn cảm thấy khó
khăn hay trở ngại với việc vào căn bếp của mình.
2.5.2.2 Hướng giải quyết
Để hỗ trợ chia sẻ và học hỏi các văn hóa ẩm thực tốt hơn, việc ứng dụng cơng nghệ
thơng tin vào việc tìm kiếm chọn lọc những thơng tin có nguồn tin cậy cao sẽ giúp những
người muốn tự tay nấu ăn hoặc muốn chế biến những món ăn mà trước đây chưa bao giờ
làm sẽ cảm thấy tự tin hơn và tạo nguồn cảm hứng đến nhiều người người có cùng đam
mê.

6



CHƯƠNG 3
3.1

KIẾN THỨC NỀN TẢNG

Công cụ quản lý và trao đổi

3.1.1 Visual Studio Code

Visual Studio Code chính là ứng dụng cho phép biên tập, soạn thảo các đoạn code
để hỗ trợ trong quá trình thực hiện xây dựng, thiết kế website một cách nhanh chóng. Visual
Studio Code hay cịn được viết tắt là VS Code. Trình soạn thảo này vận hành mượt mà trên
các nền tảng như Windows, macOS, Linux. Hơn thế nữa, VS Code cịn cho khả năng tương
thích với những thiết bị máy tính có cấu hình tầm trung vẫn có thể sử dụng dễ dàng.
Visual Studio Code hỗ trợ đa dạng các chức năng Debug, đi kèm với Git, có Syntax
Highlighting. Đặc biệt là tự hồn thành mã thông minh, Snippets, và khả năng cải tiến mã
nguồn. Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phép các lập trình viên thay
đổi Theme, phím tắt, và đa dạng các tùy chọn khác. Mặc dù trình soạn thảo Code này tương
đối nhẹ, nhưng lại bao gồm các tính năng mạnh mẽ Visual Studio Code mang rất nhiều
ưu điểm vượt trội so với bất kì IDE nào khác:
 Hỗ trợ đa nền tảng: Linux, Mac, Windows,...
 Hỗ trợ đa ngôn ngữ: C/C++, C#, F#, JavaScript, JSON, Visual Basic, HTML,
CSS,...
 Ít dung lượng
 Tính năng mạnh mẽ
 Intellisense chun nghiệp
 Giao diện thân thiện
 Kiến trúc mạnh mẽ và người dùng có thể khai thác mở rộng
 Số lượng người sử dụng lớn tạo nên ộng đồng hỗ trợ rộng rãi
3.1.2 Figma


Figma là công cụ được ra mắt vào năm 2016, với giao diện thân thiện và tính dễ sử
dụng, Figma đã nhanh chóng nổi lên và trở thành một công cụ thiết kế giao diện người
dùng phổ biến trong cộng đồng cơng nghệ tồn cầu. Một số thương hiệu lớn sử dụng Figma
cho tới thời điểm hiện tại có thể kể đến như Microsoft, Twitter, GitHub, Dropbox…Khác
với những công cụ thiết kế trước đây, Figma được thiết kế trên nền tảng đám mây. Đây là
cơng cụ có tính năng tương tự như Sketch, tuy nhiên nó hỗ trợ làm việc nhóm tốt hơn.
Những tính năng nổi bật:
7


×