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

Xây dựng ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng (khóa luận tốt nghiệp)

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.73 MB, 100 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

TRƯƠNG BÁ CƯỜNG
TRƯƠNG HỮU MINH ĐỨC

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

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẺ
PHƯƠNG PHÁP NẤU ĂN DINH DƯỠNG
<Develop a social media to share nutritious cooking techniques>

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

TP. HỒ CHÍ MINH, 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

TRƯƠNG BÁ CƯỜNG – 18520013
TRƯƠNG HỮU MINH ĐỨC - 18520626

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

XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI CHIA SẺ
PHƯƠNG PHÁP NẤU ĂN DINH DƯỠNG


<Develop a social media to share nutritious cooking techniques>

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

GIẢNG VIÊN HƯỚNG DẪN
Ths. Lê Thanh Trọng

TP. HỒ CHÍ MINH, 2022


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ố ……………………
ngày ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.


LỜI CẢM ƠN
Khóa luận tốt nghiệp chuyên ngành Kỹ thuật phần mềm với Đề tài “Xây
dựng ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng” là kết quả của
q trình tìm tịi, học hỏi, vận dụng những kiến thức đã được học vào giải quyết bài
toán thực tế của các thành viên trong nhóm và được sự giúp đỡ tận tình, động viên
khích lệ của thầy cơ. Qua đây, em xin thay mặt nhóm gửi lời cảm ơn chân thành đến
các quý thầy cô trường Đại học Cơng nghệ Thơng tin đã tận tình chỉ dạy, truyền đạt
kiến thức cho chúng em trong suốt 4 năm ngồi trên ghế giảng đường đại học.
Em xin gửi lời cảm ơn sâu sắc đến thầy ThS. Lê Thanh Trọng, người đã theo
sát, định hướng, chỉ bảo, đưa ra lời khun bổ ích cho nhóm chúng em trong suốt
q trình thực hiện khóa luận nhằm đảm bảo tiến độ thực hiện và đáp ứng đúng các
yêu cầu đề ra ban đầu.
Cảm ơn giảng viên phản biện và các thầy cô trong hội đồng chấm luận văn
với những lời khuyên, góp ý q báu và bổ ích. Từ đó bài luận văn của em được trở

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


MỤC LỤC
Chương 1.

MỞ ĐẦU ......................................................................................... 3

1.1. Lí do chọn đề tài ......................................................................................... 3
1.2. Mục đích .................................................................................................... 3
1.3. Đối tượng ................................................................................................... 4
1.4. Phạm vi nghiên cứu .................................................................................... 4
Chương 2.

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

2.1. Thực trạng bài toán..................................................................................... 6
2.2. Khảo sát ứng dụng...................................................................................... 7
2.2.1.

Ứng dụng CookBook – Nấu ăn ngon mỗi ngày ................................. 7

2.2.2.

Ứng dụng I’m hungry ....................................................................... 9

2.3. Vấn đề tồn tại và hướng giải quyết ........................................................... 10

2.3.1.

Vấn đề tồn tại ................................................................................. 10

2.3.2.

Hướng giải quyết ............................................................................ 10

Chương 3.

CƠ SỞ LÝ THUYẾT ..................................................................... 11

3.1. Tổng quan về Flutter ................................................................................ 11
3.1.1.

Khái niệm ....................................................................................... 11

3.1.2.

Kiến trúc......................................................................................... 11

3.2. Tổng quan về Dart .................................................................................... 12
3.2.1.

Khái niệm ....................................................................................... 12

3.2.2.

Đặc điểm ........................................................................................ 12


3.3. Tổng quan về Firebase.............................................................................. 13
3.3.1.

Khái niệm ....................................................................................... 13

3.3.2.

Lịch sử phát triển ............................................................................ 13


3.3.3.

Cách thức hoạt động ....................................................................... 13

3.3.3.1. Firebase Realtime Database ........................................................ 13
3.3.3.2. Firebase Authentication .............................................................. 14
3.3.3.3. Firebase storage .......................................................................... 14
3.3.3.4. Firebase Cloud Messaging .......................................................... 15
3.3.4.

Tổng quan về NestJs ....................................................................... 15

3.3.5.

Tổng quan về Postgresql ................................................................. 15

Chương 4.

HIỆN THỰC HỆ THỐNG ............................................................. 17


4.1. Phân tích yêu cầu hệ thống ....................................................................... 17
4.1.1.

Yêu cầu chức năng ......................................................................... 17

4.1.1.1. Yêu cầu lưu trữ ........................................................................... 17
4.1.1.2. Yêu cầu về tính năng................................................................... 17
4.1.2.

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

4.1.3.

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

4.1.3.1. Mơ hình Use case tồn hệ thống.................................................. 19
4.1.3.2. Danh sách các Actor ................................................................... 19
4.1.3.3. Danh sách các Use case............................................................... 20
4.2. Phân tích thiết kế hệ thống........................................................................ 23
4.2.1.

Thiết kế xử lý ................................................................................. 23

4.2.1.1. Sơ đồ tuần tự Đăng ký ................................................................ 23
4.2.1.2. Sơ đồ tuần tự Đăng nhập ............................................................. 25
4.2.1.3. Sơ đồ tuần tự Đăng nhập với Google account ............................. 26
4.2.1.4. Sơ đồ tuần tự Quên mật khẩu ...................................................... 27
4.2.1.5. Sơ đồ tuần tự Thay đổi mật khẩu ................................................. 28



4.2.1.6. Sơ đồ tuần tự cập nhật thông tin .................................................. 29
4.2.1.7. Sơ đồ tuần tự Upload file ............................................................ 30
4.2.1.8. Sơ đồ tuần tự Tạo bài viết ........................................................... 31
4.2.1.9. Sơ đồ tuần tự Cập nhật bài viết ................................................... 32
4.2.1.10. Sơ đồ tuần tự Lưu bài viết ......................................................... 33
4.2.1.11. Sơ đồ tuần tự Tạo món ăn ......................................................... 34
4.2.1.12. Sơ đồ tuần tự Lưu món ăn ......................................................... 35
4.2.1.13. Sơ đồ tuần tự Đánh giá món ăn ................................................. 36
4.2.1.14. Sơ đồ tuần tự Yêu thích bài viết ................................................ 37
4.2.1.15. Sơ đồ tuần tự Bình luận cho bài viết, hướng dẫn nấu ăn ............ 38
4.2.1.16. Sơ đồ tuần tự Tạo album ........................................................... 39
4.2.1.17. Sơ đồ tuần tự Nhắn tin với người dùng...................................... 40
4.2.1.18. Sơ đồ tuần tự Trò chuyện với chatbot ........................................ 41
4.2.1.19. Sơ đồ tuần tự Duyệt món ăn ...................................................... 42
4.2.1.20. Sơ đồ tuần tự Tạo mới đơn vị .................................................... 43
4.2.1.21. Sơ đồ tuần tự Tạo mới nguyên liệu............................................ 44
4.2.1.22. Sơ đồ tuần tự Tạo chủ đề mới ................................................... 45
4.2.2.

Thiết kế dữ liệu .............................................................................. 46

4.2.2.1. Sơ đồ cơ sở dữ liệu ..................................................................... 46
4.2.2.2. Danh sách các bảng dữ liệu ......................................................... 47
4.2.2.3. Chi tiết các bảng dữ liệu.............................................................. 48
4.2.3.

Thiết kế kiến trúc hệ thống ............................................................. 70

4.2.4.


Thiết kế giao diện ........................................................................... 71

4.2.4.1. Danh sách màn hình .................................................................... 71


4.2.4.2. Giao diện một số màn hình của ứng dụng ................................... 73
4.3. Triển khai hệ thống .................................................................................. 81
Chương 5.

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

5.1. Đánh giá ................................................................................................... 84
5.1.1.

Thuận lợi ........................................................................................ 84

5.1.2.

Khó khăn ........................................................................................ 84

5.2. Kết quả đạt được ...................................................................................... 84
5.3. Hướng phát triển ...................................................................................... 85


DANH MỤC HÌNH
Hình 2.1: Giao diện danh sách món ăn ứng dụng CookBook ................................... 7
Hình 2.2: Giao diện thơng tin món ăn ứng dụng CookBook..................................... 7
Hình 2.3: Giao diện ứng dụng I’m Hungry .............................................................. 9
Hình 3.1: Kiến trúc của Flutter .............................................................................. 11
Hình 4.1: Sơ đồ Use case hệ thống ........................................................................ 19

Hình 4.2: Sơ đồ tuần tự Đăng ký ........................................................................... 23
Hình 4.3: Sơ đồ tuần tự Đăng Nhập ....................................................................... 25
Hình 4.4: Sơ đồ tuần tự Đăng nhập với Google Account ....................................... 26
Hình 4.5: Sơ đồ tuần tự Quên mật khẩu ................................................................. 27
Hình 4.6: Sơ đồ tuần tự Thay đổi mật khẩu............................................................ 28
Hình 4.7: Sơ đồ tuần tự Cập nhật thơng tin ............................................................ 29
Hình 4.8: Sơ đồ tuần tự Upload file ....................................................................... 30
Hình 4.9: Sơ đồ tuần tự Tạo bài viết ...................................................................... 31
Hình 4.10: Sơ đồ tuần tự Cập nhật bài viết ............................................................ 32
Hình 4.11: Sơ đồ tuần tự Lưu bài viết .................................................................... 33
Hình 4.12: Sơ đồ tuần tự Tạo món ăn .................................................................... 34
Hình 4.13: Sơ đồ tuần tự Lưu món ăn .................................................................... 35
Hình 4.14: Sơ đồ tuần tự Đánh giá món ăn ............................................................ 36
Hình 4.15: Sơ đồ tuần tự u thích bài viết ........................................................... 37
Hình 4.16: Sơ đồ tuần tự Bình luận cho bài viết, hướng dẫn nấu ăn ....................... 38
Hình 4.17: Sơ đồ tuần tự Tạo album ...................................................................... 39
Hình 4.18: Sơ đồ tuần tự Nhắn tin với người dùng ................................................ 40
Hình 4.19: Sơ đồ tuần tự Trị chuyện với chatbot................................................... 41
Hình 4.20: Sơ đồ tuần tự Duyệt món ăn ................................................................. 42
Hình 4.21: Sơ đồ tuần tự Tạo mới đơn vị ............................................................... 43
Hình 4.22: Sơ đồ tuần tự Tạo mới nguyên liệu ...................................................... 44
Hình 4.23: Sơ đồ tuần tự Tạo chủ đề mới .............................................................. 45
Hình 4.24: Sơ đồ cơ sở dữ liệu .............................................................................. 46


Hình 4.25: Sơ đồ kiến trúc hệ thống ...................................................................... 70
Hình 4.26: Màn hình đăng nhập............................................................................. 74
Hình 4.27: Màn hình đăng ký ................................................................................ 74
Hình 4.28: Màn hình xác thực email ...................................................................... 74
Hình 4.29: Màn hình chọn chủ đề .......................................................................... 74

Hình 4.30: Màn hình bảng tin ................................................................................ 75
Hình 4.31: Màn hình xem bài đăng theo chủ đề ..................................................... 75
Hình 4.32: Màn hình tìm kiếm người dùng ............................................................ 75
Hình 4.33: Màn hình tạo bài đăng.......................................................................... 75
Hình 4.34: Màn hình tạo bài đăng kèm đường dẫn đến hướng dẫn nấu món ăn ..... 76
Hình 4.35: Màn hình tạo bài đăng gợi ý món ăn nên và khơng nên sử dụng........... 76
Hình 4.36: Màn hình bình luận .............................................................................. 76
Hình 4.37: Màn hình hiển thị danh sách các món ăn .............................................. 76
Hình 4.38: Màn hình hiển thị chi tiết hướng dẫn nấu ăn (1) ................................... 77
Hình 4.39: Màn hình hiển thị chi tiết hướng dẫn nấu ăn (2) ................................... 77
Hình 4.40: Màn hình đánh giá món ăn ................................................................... 77
Hình 4.41: Màn hình hiển thị các đánh giá món ăn của người dùng ....................... 77
Hình 4.42: Màn hình tạo hướng dẫn nấu ăn ........................................................... 78
Hình 4.43: Màn hình hiển thị danh sách bài đăng đã lưu ........................................ 78
Hình 4.44: Màn hình hiển thị danh sách món ăn nên sử dụng đã lưu...................... 78
Hình 4.45: Màn hình hiển thị danh sách món ăn khơng nên sử dụng đã lưu ........... 78
Hình 4.46: Màn hình hiển thị các thơng báo .......................................................... 79
Hình 4.47: Màn hình hiển thị danh sách các cuộc trị chuyện ................................. 79
Hình 4.48: Màn hình nhắn tin ................................................................................ 79
Hình 4.49: Màn hình trang cá nhân người dùng ..................................................... 79
Hình 4.50: Màn hình chỉnh sửa thơng tin cá nhân .................................................. 80
Hình 4.51: Màn hình tạo album ............................................................................. 80
Hình 4.52: Màn hình xem album ........................................................................... 80
Hình 4.53: Màn hình thay đổi mật khẩu ................................................................. 80


Hình 4.54: Màn hình bật tắt tính năng nhận thơng báo ........................................... 81
Hình 4.55: Màn hình chỉnh sửa các chủ đề người dùng theo dõi ............................ 81
Hình 4.56: Sơ đồ triển khai hệ thống ..................................................................... 81
Hình 4.57: Thơng tin máy chủ đã triển khai ........................................................... 82

Hình 4.58: Thơng tin cơ sở dữ liệu đã triển khai .................................................... 82
Hình 4.59: Thơng tin thiết lập của MongoDB Atlat ............................................... 82


DANH MỤC BẢNG
Bảng 4.1: Danh sách các Actor trong hệ thống ...................................................... 20
Bảng 4.2: Danh sách các Use case trong hệ thống ................................................. 22
Bảng 4.3: Danh sách các bảng dữ liệu ................................................................... 48
Bảng 4.4: Danh sách thuộc tính bảng user ............................................................. 50
Bảng 4.5: Danh sách thuộc tính bảng accounts ...................................................... 51
Bảng 4.6: Danh sách thuộc tính bảng feeds............................................................ 51
Bảng 4.7: Danh sách thuộc tính bảng interactions .................................................. 52
Bảng 4.8: Danh sách thuộc tính bảng posts ............................................................ 53
Bảng 4.9: Danh sách thuộc tính bảng post_medias ................................................ 53
Bảng 4.10: Danh sách thuộc tính bảng saved_posts ............................................... 54
Bảng 4.11: Danh sách thuộc tính bảng comments .................................................. 55
Bảng 4.12: Danh sách thuộc tính bảng comment_medias ...................................... 56
Bảng 4.13: Danh sách thuộc tính bảng reactions .................................................... 56
Bảng 4.14: Danh sách thuộc tính bảng albums ....................................................... 57
Bảng 4.15: Danh sách thuộc tính bảng album_medias ........................................... 57
Bảng 4.16: Danh sách thuộc tính bảng follows ...................................................... 58
Bảng 4.17: Danh sách thuộc tính bảng topics......................................................... 59
Bảng 4.18: Danh sách thuộc tính bảng interested_topic ......................................... 59
Bảng 4.19: Danh sách thuộc tính bảng foods ......................................................... 60
Bảng 4.20: Danh sách thuộc tính bảng food_medias .............................................. 61
Bảng 4.21: Danh sách thuộc tính bảng food_ingredients........................................ 61
Bảng 4.22: Danh sách thuộc tính bảng recipe_steps ............................................... 62
Bảng 4.23: Danh sách thuộc tính bảng food_votes................................................. 63
Bảng 4.24: Danh sách thuộc tính bảng saved_foods .............................................. 63
Bảng 4.25: Danh sách thuộc tính bảng conversations............................................. 64

Bảng 4.26: Danh sách thuộc tính bảng conversation_members .............................. 65
Bảng 4.27: Danh sách thuộc tính bảng messages ................................................... 65
Bảng 4.28: Danh sách thuộc tính bảng ingredients................................................. 66


Bảng 4.29: Danh sách thuộc tính bảng units .......................................................... 67
Bảng 4.30: Danh sách thuộc tính bảng providers ................................................... 67
Bảng 4.31: Danh sách thuộc tính bảng roles .......................................................... 68
Bảng 4.32: Danh sách thuộc tính bảng permissions ............................................... 69
Bảng 4.33: Danh sách thuộc tính bảng role_permissions ....................................... 69
Bảng 4.34: Danh sách màn hình ............................................................................ 73


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

Từ viết tắt

1

STT

2

UI

3

SDK


Tên đầy đủ

Diễn giải

Số thứ tự

Số thứ tự trong bảng

User Interface

Giao diện của ứng dụng

Software Development

Là công cụ và phần mềm dùng để

Kit

phát triển ứng dụng thông qua
một nền tảng nhất định

4

API

Application

Là phương thức trung gian kết nối

Programing Interface


các ứng dụng và thư viện khác
nhau

5

UML

Unified Modeling
Language

Ngơn ngữ mơ hình hóa thống nhất


TĨM TẮT KHĨA LUẬN
Khố luận với đề tài “Xây dựng ứng dụng mạng xã hội chia sẻ phương pháp nấu ăn
dinh dưỡng” 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 hoàn chỉnh, chạy nên nền
tảng Android. Đáp ứng nhu cầu tìm kiếm, chia sẻ những khoảnh khắc nấu ăn, công
thức nấu ăn của người dùng.
Đề tài được bắt đầu từ việc tìm hiểu các ứng dụng phổ biến hiện có trên thị trường.
Qua đó đưa ra những ưu điểm, hạn chế nhằm 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 ứng dụng. Ngồi việc xử lý các nghiệp vụ cho
hệ thống, nhóm đã 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.
Nhóm đã sử dụng phương pháp phát triển phần mềm Agile trong quá trình thực hiện
đề tài nhằm hình thành sớm sản phẩm và thích hợp với các thay đổi yêu cầu trong
quá trình phát triển ứng dụng. Kiến trúc hệ thống, cơ sở dữ liệu, giao diện được thể
hiện bằng sơ đồ use, sơ đồ tuần tự và bản thiết kế sử dụng công cụ Draw.io.
Trong giai đoạn thực hiện, client và server được phát triển song song. 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. Nội dung khố
luận được trình bày trong 5 chương:
-

Chương 01: Mở đầu

Trình bày lý do chọn đề tài, mục đích, đối tượng, phạm vi nghiên cứu
-

Chương 02: Tổng quan đề tài

Trình bày thực trạng, khảo sát ứng dụng, xác định vấn đề và hướng giải quyết
-

Chương 03: Cơ sở lý thuyết

1


Giới thiệu tổng quan về những công nghệ sử dụng trong đề tài
-

Chương 04: Hiện thực hệ thống

Phân tích yê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 quá trình phát triển đề tài và nêu ra hướng
phát triển trong tương lai.

2


Chương 1. MỞ ĐẦU
1.1. Lí do chọn đề tài
Trong xã hội phát triển ngày nay, nhu cầu về đời sống tinh thần và vật chất
của con người ngày càng tăng cao. Trong đó, nhu cầu về dinh dưỡng đang ngày
càng nhận nhiều sự quan tâm từ mọi người. Dinh dưỡng là quá trình cung cấp năng
lượng từ thức ăn giúp cơ thể phát triển và khỏe mạnh. Vì vậy, các món ăn ngày nay
khơng những đáp ứng nhu cầu ăn ngon mà còn đảm bảo cung cấp đầy đủ chất dinh
dưỡng cần thiết cho cơ thể. Những món ăn ngon dinh dưỡng ln giữ vai trị quan
trọng đối với con người. Bên cạnh gắn kết các thành viên trong mỗi bữa cơm gia
đình, nó cịn góp phần thúc đẩy các dịch vụ du lịch, duy trì và thể hiện nét văn hóa
ẩm thực độc đáo của mỗi dân tộc.
Với nhiều người, nấu những bữa ăn ngon không chỉ là một nghĩa vụ đối với
bản thân, với những người thân mà cịn là một niềm vui khơng thể thiếu hàng ngày.
Được thưởng thức những món ngon hợp khẩu vị, tốt cho sức khỏe tự tay mình làm
ra, chăm sóc người thân bằng những món ăn ngon mình chăm chút, đó chính là cảm
giác hạnh phúc của bất cứ ai đam mê nấu nướng.
Với mong muốn tạo ra một nơi kết nối những người có niềm đam mê nấu ăn
và đem lại những món ăn ngon, dinh dưỡng cho người dùng, nhóm chúng em đã tạo
ra ứng dụng “Mạng xã hội chia sẻ phương pháp nấu ăn dinh dưỡng”. Thông qua
ứng dụng, người dùng có thể chia sẻ những phương pháp, khoảnh khắc nấu ăn của
mình, nhắn tin với bot, xem hướng dẫn nấu ăn với danh sách món ăn đa dạng do
ứng dụng và người dùng khác chia sẻ. Từ đó khuyến khích mọi người tự tay vào

bếp nấu cho bạn bè, người thân, gia đình những món ăn ngon dinh dưỡng.
1.2. Mục đích
Ứng dụng được xây dựng với mục đích kết nối những người có đam mê nấu
ăn, đa dạng hóa bữa ăn của các gia đình người Việt Nam. Ngồi ra, ứng dụng cịn là

3


nơi để người dùng chia sẻ những khoảnh khắc nấu ăn, hay những phương pháp nấu
ăn của mình đến với mọi người.
Bên cạnh đó, đề tài cũng tạo cơ hội để nhóm chúng em nghiên cứu, học hỏi,
áp dụng những công nghệ trong việc phát triển ứng dụng di động.
1.3. Đối tượng
Ứng dụng hướng đến người sử dụng phần lớn là người trung niên, người có
gia đình, người có đam mê nấu ăn, người quan tâm đến bữa ăn dinh dưỡng và các
chuyên gia dinh dưỡng.
Các công nghệ được nghiên cứu trong đề tài:
-

Android Studio

-

Flutter

-

Firebase

-


NodeJs

-

NestJs

-

MongoDB

-

OneSignal

-

PostgreSQL

1.4. Phạm vi nghiên cứu
Đề tài tập trung vào xây dựng ứng dụng trên nền tảng di động android với các
chức năng chính:
-

Đăng ký: Đăng ký tài khoản sử dụng ứng dụng kết hợp xác thực email
thông qua mã xác thực 6 chữ số

-

Đăng nhập: Đăng nhập vào ứng dụng thông qua tài khoản đã đăng ký

hoặc thông qua tài khoản google

-

Theo dõi chủ đề: Sau khi đăng nhập vào ứng dụng, người dùng lựa chọn
các chủ đề mà mình quan tâm (vd: Giảm cân, Ăn kiêng,…). Dựa vào đó
ứng dụng sẽ hiển thị những bài đăng phù hợp với người dùng

4


-

Đăng bài: Người dùng đăng bài chia sẻ khoảnh khắc nấu ăn của bản thân
mình

-

Tạo hướng dẫn nấu ăn: Người dùng chia sẻ cơng thức nấu ăn của mình
bao gồm hình ảnh, nguyên liệu, cách nấu. Sau khi quản trị viên duyệt,
món ăn của người dùng sẽ được đưa lên danh sách hướng dẫn nấu ăn của
ứng dụng

-

Tạo lời khuyên: Những tài khoản người dùng được quản trị viên xác nhận
là: “Chuyên gia dinh dưỡng” sẽ tạo được các bài đăng gợi ý những món
ăn nên và khơng nên sử dụng đối với từng đối tượng người dùng

-


Tạo album: Người dùng có thể tạo album bao gồm các hình ảnh ghi lại
khoảnh khắc nấu ăn của mình

-

Nhắn tin: Người dùng có thể nhắn tin với nhau thơng qua ứng dụng

-

Chatbot: Người dùng có thể nhắn tin với bot để hỏi nguyên liệu phương
pháp nấu món ăn

5


Chương 2. TỔNG QUAN ĐỀ TÀI
2.1. Thực trạng bài toán
Theo một khảo sát1 gần đây, dữ liệu thu được cho thấy các bạn trẻ hiện nay có xu
hướng ưu tiên chuỗi ăn nhanh, thức ăn đường phố, đặt các món ăn thức uống bất kể
thời gian nào trong ngày. Điều này mang lại tính tiện lợi, tiết kiệm thời gian, công
sức, tuy nhiên các thức ăn nhanh thường không bảo đầy đủ dinh dưỡng, vệ sinh an
toàn thực phẩm.
Bên cạnh đó, nhiều người cho biết bản thân thích sử dụng mạng xã hội để tìm hiểu
và khám phá các món ăn mới lạ. Tuy nhiên, các trang mạng xã hội thông dụng hiện
nay như TikTok, Facebook, Instagram không chuyên biệt về lĩnh vực nấu ăn. Nấu
ăn chỉ là nội dung được thực hiện, chia sẻ bởi một số người dùng mạng xã hội. Vì
vậy, tất cả chỉ dừng lại ở mức độ mỗi các nhân tự tìm tịi các cơng thức, món ăn mới
chứ chưa có mơi trường cho họ được chia sẻ, bộc lộ cảm xúc, thỏa mãn đam mê nấu
ăn với nhau.

Vì vậy, để mang lại những món ăn ngon dinh dưỡng, góp phần xây dựng, gắn kết
cộng đồng người đam mê nấu ăn, chúng ta cần phải tạo ra một nơi giúp người dùng
chia sẻ những khoảnh khắc nấu ăn cũng như các công thức nấu ăn của mình tới mọi
người.

1

Nguồn: />
6


2.2. Khảo sát ứng dụng
2.2.1.

Ứng dụng CookBook – Nấu ăn ngon mỗi ngày

Hình 2.1: Giao diện danh sách món ăn ứng dụng CookBook

Hình 2.2: Giao diện thơng tin món ăn ứng dụng CookBook
Thông tin:
-

Nhà phát triển: Nikmesoft Company, Ltd.

-

Nền tảng: IoS

-


Năm phát hành phiên bản đầu tiên: 2014

7


-

Lượt tải: 2100

Ưu điểm:
-

Danh sách món ăn đa dạng về vùng miền, loại,…

-

Ảnh mơ tả món ăn khá bắt mắt

-

Có mục trang trí, mẹo giúp cải thiện hình thức món ăn

-

Có video hướng dẫn

Nhược điểm:
-

Giao diện chưa hấp dẫn, thu hút người dùng


-

Phần hướng dẫn chi tiết trình bày đơn giản, nhiều chữ, dễ gây nhàm chán
cho người dùng

-

Chưa có các tính năng cho phép người dùng tương tác với nhau, chia sẻ
các món ăn mình đã thực hiện,…

8


2.2.2.

Ứng dụng I’m hungry

Hình 2.3: Giao diện ứng dụng I’m Hungry
Thông tin:
-

Nhà phát triển: YaYaApps.

-

Nền tảng: Android

-


Năm phát hành phiên bản đầu tiên: 2020

-

Lượt tải: 500000

Ưu điểm:
-

Phân chia món ăn theo từng quố c gia, từng món trong bữa ăn (món khai
vi,̣ món chính, món tráng miê ̣ng, đồ uố ng,…) phù hơp̣ cho khẩ u vi ̣ ăn của
tấ t cả người dùng

9


-

Ảnh mô tả món ăn bắ t mắ t, gây hứng thú cho người dùng

Nhược điểm:
-

Chưa có tính năng cho người dùng chia sẻ các món ăn u thích, các
cơng thức nấu ăn riêng của mình

-

Khơng cung cấp các video hướng dẫn nấu ăn


2.3. Vấn đề tồn tại và hướng giải quyết
2.3.1.

Vấn đề tồn tại

Các ứng dụng hiện nay tập trung chủ yếu vào việc cung cấp đa dạng các cơng
thức nấu ăn cho người dùng. Về phía người dùng chỉ có thể xem và làm theo
hướng dẫn. Điều này dẫn đến tính tương tác kém của người dùng với ứng dụng,
dễ gây nhàm chán cho người dùng trong quá trình sử dụng.
2.3.2.
-

Hướng giải quyết
Tạo ra mạng xã hội giúp người dùng vừa có thể tiếp cận các cơng thức
nấu ăn đa dạng, vừa có thể chia sẻ những khoảnh khắc nấu ăn của bản
thân mình.

-

Tạo chức năng cho phép các chuyên gia có thể chia sẻ các món ăn, thông
tin dinh dưỡng đến người dùng.

-

Cung cấp các chủ đề dinh dưỡng cho phép người dùng quan tâm, theo
dõi.

-

Cho phép người dùng và chuyên gia kết nối dễ dàng với nhau thơng qua

tính năng nhắn tin.

-

Cho phép người dùng đóng góp vào kho món ăn của hệ thống bằng cách
tạo món ăn của riêng mình.

10


Chương 3. CƠ SỞ LÝ THUYẾT
3.1. Tổng quan về Flutter
3.1.1.

Khái niệm

Flutter là UI Framework mã nguồn mở miễn phí phát triển ứng dụng đa nền tảng
dành cho di động, tạo bởi Google và phát hành vào tháng 5 năm 2017.
Flutter gồm 2 thành phần quan trọng:
Một SDK (Software Development Kit): Một bộ sưu tập các công cụ sẽ giúp bạn
phát triển các ứng dụng của mình. Điều này bao gồm các công cụ để biên dịch mã
của bạn thành mã máy gốc (mã cho iOS và Android).
Một Framework (UI Library based on widgets): Một tập hợp các thành phần UI
có thể tái sử dụng (button, text inputs, slider,...) giúp bạn có thể cá nhân hóa tùy
theo nhu cầu của riêng mình.
3.1.2.

Kiến trúc

Hình 3.1: Kiến trúc của Flutter


11


×