
ĐẠI HỌC KINH TẾ QUỐC DÂN
TRƯỜNG CÔNG NGHỆ
----------------
KHÓA LUẬN TỐT NGHIỆP
THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ
NẤU ĂN - DINH DƯỠNG NATRITIONIST
Tên sinh viên : Phạm Anh Đức
Giảng viên hướng dẫn : TS Đỗ Văn Sang
Hà Nội, 5/2025
2025.2 CÔNG NGHỆ THÔNG TIN PHẠM ANH ĐỨC 11218451

ĐẠI HỌC KINH TẾ QUỐC DÂN
TRƯỜNG CÔNG NGHỆ
----------------
KHÓA LUẬN TỐT NGHIỆP
THIẾT KẾ VÀ XÂY DỰNG ỨNG DỤNG HỖ TRỢ
NẤU ĂN - DINH DƯỠNG NATRITIONIST
Tên sinh viên : Phạm Anh Đức
Mã sinh viên : 11218451
Lớp : Công nghệ thông tin 63A
Ngành : Công nghệ thông tin
Khoa : Công nghệ thông tin
Giảng viên hướng dẫn : TS Đỗ Văn Sang
Hà Nội, 5/2025

i
MỤC LỤC
LỜI CAM ĐOAN ................................................................................................. v
LỜI CẢM ƠN ...................................................................................................... vi
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................... vii
DANH MỤC BẢNG, BIỂU ĐỒ ......................................................................... ix
DANH MỤC HÌNH ............................................................................................. xi
MỞ ĐẦU ............................................................................................................... 1
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI ........................................................... 2
1.1. Tính cấp thiết của đề tài .......................................................................... 2
1.2. Mục đích của đề tài ................................................................................. 2
1.3. Đối tượng và phạm vi của đề tài ............................................................. 3
1.3.1. Đối tượng ......................................................................................... 3
1.3.2. Phạm vi ............................................................................................ 3
1.1.1.1 Phạm vi không gian: ............................................................................. 3
1.1.1.2 Phạm vi thời gian: ................................................................................. 3
1.1.1.3 Phạm vi nội dung: ................................................................................. 3
1.4. Ý nghĩa khoa học và thực tiễn của đề tài ................................................ 3
1.4.1. Ý nghĩa khoa học ............................................................................. 3
1.4.2. Ý nghĩa thực tiễn .............................................................................. 4
1.5. Cấu trúc luận án ....................................................................................... 4
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT .................................................................... 5
2.1 Lý thuyết về ứng dụng di động ............................................................... 5
2.1.1 Ứng dụng di động ............................................................................ 5
2.1.1.1 Khái niệm .............................................................................................. 5
2.1.1.2 Phân loại ............................................................................................... 5
2.1.1.3 Thiết kế ................................................................................................. 6
2.1.2 Ứng dụng hỗ trợ nấu ăn - dinh dưỡng.............................................. 6
2.1.2.1 Khái niệm .............................................................................................. 6
2.1.2.2 Đánh giá chung các ứng dụng hiện hành ............................................ 11
2.2 Lý thuyết về các công nghệ được sử dụng: ........................................... 12
2.2.1 Ngôn ngữ Dart ............................................................................... 12

ii
2.2.1.1 Tổng quan ........................................................................................... 12
2.2.1.2 Đặc điểm nổi bật ................................................................................. 12
2.2.2 Framework Flutter ......................................................................... 13
2.2.2.1 Tổng quan ........................................................................................... 13
2.2.2.2 Kiến trúc framework ........................................................................... 13
2.2.2.3 Widget ................................................................................................. 15
2.2.2.4 Các đặc trưng khác.............................................................................. 18
2.2.2.5 Ưu điểm và nhược điểm...................................................................... 19
2.2.3 SQLite ............................................................................................ 20
2.2.3.1 Khái quát về SQL ............................................................................... 20
2.2.3.2 Khái niệm SQLite ............................................................................... 21
2.2.3.3 Đặc điểm ............................................................................................. 21
2.2.3.4 Các phương thức sử dụng SQLite: ..................................................... 22
CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM .............................. 23
3.1 Phân tích thiết kế hệ thống .................................................................... 23
3.1.1 Đặt mục tiêu cho ứng dụng ............................................................ 23
3.1.2 Phân tích các chức năng của ứng dụng .......................................... 24
3.1.2.1 Xem công thức nấu ăn ........................................................................ 25
3.1.2.2 Xem thực dơn nấu ăn .......................................................................... 26
3.1.2.3 Tìm kiếm công thức ............................................................................ 27
3.1.2.4 Tạo công thức mới .............................................................................. 28
3.1.2.5 Tạo thực đơn mới ................................................................................ 29
3.1.2.6 Thêm thực đơn vào danh sách Yêu thích ............................................ 30
3.1.2.7 Xóa thực đơn khỏi danh sách Yêu thích ............................................. 31
3.1.2.8 Tùy chỉnh thông tin dinh dưỡng bản thân ........................................... 32
3.1.3 Mô tả nghiệp vụ các chức năng của ứng dụng ............................... 33
3.1.3.1 Xem công thức/ thực đơn nấu ăn ........................................................ 33
3.1.3.2 Sử dụng bộ lọc .................................................................................... 34
3.1.3.3 Thêm và xóa khỏi danh sách yêu thích: .............................................. 35
3.1.3.4 Sử dụng trang cấu hình dinh dưỡng .................................................... 36
3.1.3.5 Sử dụng công cụ tạo thực đơn ............................................................ 37
3.1.3.6 Tạo công thức nấu ăn mới .................................................................. 38
3.1.4 Cấu trúc biểu đồ lớp ....................................................................... 39

iii
3.1.5 Cấu trúc tổng thể ứng dụng ............................................................ 42
3.1.5.1 Biểu đồ gói .......................................................................................... 42
3.1.5.2 Biểu đồ triển khai ................................................................................ 43
3.2 Chuẩn bị xây dựng ứng dụng ................................................................ 43
3.2.1 Các công nghệ/ phần mềm được sử dụng để xây dựng ................. 43
3.2.1.1 Các công nghệ/ phần mềm chính ........................................................ 43
3.2.1.2 Các plugin Flutter được sử dụng ......................................................... 44
3.2.2 Các nguồn dữ liệu được sử dụng ................................................... 44
3.2.3 Thiết kế thuật toán tự động xây dựng thực đơn ............................. 46
3.2.3.1 Xác định hạn mức dinh dưỡng ............................................................ 46
3.2.3.2 Xây dựng thuật toán tự động chọn lựa công thức ............................... 47
3.2.4 Cấu trúc tổng quan của ứng dụng .................................................. 48
3.3 Chi tiết xây dựng ứng dụng ................................................................... 50
3.3.1 Cấu trúc tổng quan thư mục ứng dụng ........................................... 50
3.3.2 Chi tiết các trang ứng dụng ............................................................ 51
3.3.2.1 SplashPage .......................................................................................... 51
3.3.2.2 DashboardPage ................................................................................... 51
3.3.2.3 HomePage ........................................................................................... 52
3.3.2.4 BrowsePage ........................................................................................ 52
3.3.2.5 RecipePage .......................................................................................... 53
3.3.2.6 FavoritesPage ...................................................................................... 54
3.3.2.7 MenuDetailsPage ................................................................................ 54
3.3.2.8 NutritionChartPage ............................................................................. 55
3.3.2.9 PlannerPage ........................................................................................ 55
3.3.2.10 SelectPage ....................................................................................... 57
3.3.2.11 CreateRecipePage ........................................................................... 57
3.3.2.12 SelectIngredientsPage ..................................................................... 58
3.3.2.13 SettingsPage .................................................................................... 58
3.3.3 Chi tiết các thành phần hỗ trợ: ....................................................... 59
3.3.3.1 SharedPreferences (shared_preferences.dart) ..................................... 59
3.3.3.2 Các thành phần khác: .......................................................................... 59
CHƯƠNG 4. KẾT QUẢ VÀ THẢO LUẬN .................................................... 61
4.1 Trình bày kết quả ................................................................................... 61

