Admin: Người quản trị hệ thống
User: Bao gồm người dùng thông thường và các chuyên gia, là những người sử dụng hệ thống.
Single-page Application: Trang web dành cho người quản trị.
Mobile Application: Ứng dụng di động mà người dùng sử dụng để tương tác với hệ thống.
API Application: API server của hệ thống, có nhiệm vụ cung cấp các API cho Single-page Application và Mobile Application cũng như gọi đến các dịch vụ bên ngoài.
71
Database: Là nơi lưu trữ chính của hệ thống
Firestore: Dịch vụ Real-time database của Firebase
Firestorage: Dịch vụ lưu trữ file của Firebase, dùng lưu trữ các file của hệ thống
MongoDB Atlat: Sử dụng như một search engine
OneSignal: Dịch vụ gửi push notification
Google SMTP Server: Máy chủ mail của Google dùng để gửi email đến người dùng
4.2.4. Thiết kế giao diện
4.2.4.1. Danh sách màn hình
STT Tên màn hình Mơ tả chức năng
1 Đăng nhập Đăng nhập vào hệ thống
2 Đăng ký Đăng ký tài khoản mới
3 Xác thực email Xác thực email bằng đoạn mã 6 kí tự số được
gửi tới email đăng ký của người dùng
4 Chọn chủ đề Người dùng chọn chủ đề mà mình quan tâm,
qua đó ứng dụng sẽ hiển thị các bài đăng theo chủ đề người dùng đã chọn
5 Tìm kiếm người dùng Tìm kiếm các người dùng khác trong ứng
dụng
6 Bảng tin Hiển thị các bài đăng
7 Tạo bài viết Người dùng tạo bài viết mới
8 Chỉnh sửa bài viết Người dùng chỉnh sửa thơng tin bài viết (hình
ảnh, nội dung)
72
nhiều hình ảnh dưới dạng lướt dọc
10 Bình luận Hiển thị các bình luận của người dùng
11 Danh sách món ăn Hiển thị danh sách các món ăn có hướng dẫn
trong ứng dụng
12 Chi tiết hướng dẫn nấu món
ăn
Hiển thị chi tiết hướng dẫn nấu món ăn (tên, nguyên liệu, bước, video)
13 Chia sẻ món ăn Tạo bài đăng đính kèm đường dẫn tới món ăn
người dùng muốn chia sẻ
14 Đánh giá món ăn Người dùng đánh giá món ăn (người dùng
cho điểm từ 1 đến 5 kèm theo bình luận)
15 Xem các đánh giá món ăn
của người dùng
Xem các đánh giá về món ăn của tất cả người dùng
16 Tạo hướng dẫn nấu ăn Người dùng tạo công thức hướng dẫn nấu ăn
của mình
17 Danh sách các cuộc trò
chuyện
Danh sách các tin nhắn của người dùng
18 Nhắn tin Hiển thị tin nhắn của người dùng với người
dùng khác hoặc với chatbot
19 Thông báo Hiển thị những thông báo của người dùng
20 Trang cá nhân Hiển thị thông tin cá nhân của người dùng
(ảnh đại diện, tên, danh sách bài đăng, album)
21 Tạo album Người dùng tạo album
22 Thông tin album Hiển thị thơng tin album
73
món ăn đã lưu người dùng đã lưu
24 Chỉnh sửa thông tin cá nhân Chỉnh sửa thông tin cá nhân của người dùng
25 Cài đặt thông báo Người dùng bật tắt tính năng nhận thơng báo
26 Đổi mật khẩu Người dùng thay đổi mật khẩu tài khoản
27 Quên mật khẩu Người dùng nhập email đã dùng để đăng ký
tài khoản để hệ thống gửi email xác nhận thiết lập lại mật khẩu
28 Thay đổi danh sách chủ đề
quan tâm
Người dùng thay đổi danh sách chủ đề mà mình quan tâm
Bảng 4.34: Danh sách màn hình
74
Hình 4.26: Màn hình đăng nhập Hình 4.27: Màn hình đăng ký
75
Hình 4.30: Màn hình bảng tin Hình 4.31: Màn hình xem bài đăng
theo chủ đề
76 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
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 ý món ăn nên và khơng nên sử dụng
Hình 4.36: Màn hình bình luận Hình 4.37: Màn hình hiển thị danh
77 Hình 4.38: Màn hình hiển thị chi tiết
hướng dẫn nấu ăn (1)
Hình 4.39: Màn hình hiển thị chi tiết hướng dẫn nấu ăn (2)
Hình 4.40: Màn hình đánh giá món ăn Hình 4.41: Màn hình hiển thị các đánh
78 Hình 4.42: Màn hình tạo hướng dẫn nấu
ăn
Hình 4.43: Màn hình hiển thị danh sách bài đăng đã lưu sách bài đăng đã lưu
Hình 4.44: Màn hình hiển thị danh sách món ăn nên sử dụng đã lưu món ăn nên sử dụng đã lưu
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 sách món ăn khơng nên sử dụng đã lưu
79 Hình 4.46: Màn hình hiển thị các thơng
báo
Hình 4.47: Màn hình hiển thị danh sách các cuộc trò chuyện sách các cuộc trò chuyện
Hình 4.48: Màn hình nhắn tin Hình 4.49: Màn hình trang cá nhân
80 Hình 4.50: Màn hình chỉnh sửa thơng tin
cá nhân
Hình 4.51: Màn hình tạo album
Hình 4.52: Màn hình xem album Hình 4.53: Màn hình thay đổi mật
81 Hình 4.54: Màn hình bật tắt tính năng
nhận thơng báo
Hình 4.55: Màn hình chỉnh sửa các chủ đề người dùng theo dõi chủ đề người dùng theo dõi
4.3. Triển khai hệ thống
82
Máy chủ API được triển khai trên hệ thống đám mây Heroku, có thể hoạt động 1000 giờ mỗi tháng. Sau 30 phút khơng có truy cập hệ thống sẽ tự động chuyển về trạng thái ngủ và phải chờ một khoảng thời gian nhỏ đánh thức để sử dụng.
Hình 4.57: Thơng tin máy chủ đã triển khai
Database của ứng dụng sử dụng Add-ons PostgreSql của Heroku, bản Hobby-Dev với số dòng dữ liệu là 10000, sức chứa 1GB, tối đa 20 kết nối (connection) cùng lúc.
Hình 4.58: Thơng tin cơ sở dữ liệu đã triển khai
Hệ thống sử dụng MongoDB Atlat như một search engine, phiên bản Shared với các thiết lập cơ bản, sức chứa tối đa 512MB, RAM dùng chung.
83
Ngồi ra, hệ thống cịn sử dụng 2 dịch vụ của Firebase là Firestorage và Firestore với các thông số:
- Firestorage: sức chứa tối đa 5GB, giới hạn số lượt tải xuống 50K/ngày, giới
hạn số lượt tải lên 20K/ngày
- Firestore: sức chứa tối đa 1GB, số lượt đọc, ghi và xóa lần lượt là 50K/ngày,
84
Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1. Đánh giá 5.1.1. Thuận lợi 5.1.1. Thuận lợi
- Trên thị trường đã có nhiều ứng dụng chia sẻ phương pháp nấu ăn và ứng dụng mạng xã hội, giúp nhóm có nhiều ý tưởng trong thiết kế giao diện và dữ liệu.
- Các tài liệu về công cụ thực hiện đồ án có đầy đủ và chi tiết trên mạng.
- Giảng viên hướng dẫn đưa ra nhiều gợi ý giúp nhóm định hình hướng đi trong q trình thực hiện khóa luận.
5.1.2. Khó khăn
- Mất nhiều thời gian để làm quen với ngôn ngữ, cơng cụ mới.
- Tìm kiếm tài liệu về hướng dẫn nấu món ăn gặp nhiều khó khăn.
- Các cơng nghệ mới cịn chưa hồn thiện, thường xun gặp các vấn đề liên
quan đến mã nguồn.
5.2. Kết quả đạt được
- Hoàn thành yêu cầu đặt ra ban đầu, có đầy đủ tính năng cần thiết của một ứng dụng mạng xã hội và chia sẻ phương pháp nấu ăn dinh dưỡng.
- Sinh viên thực hiện đã nắm được cách thức làm một ứng dụng di động.
- Sinh viên nắm được các công nghệ phổ biến hiện nay như: Flutter, Firebase,
NestJs, MongoDB, Postgresql. Ưu điểm:
- Giao diện đơn giản, tươi sáng, người dùng dễ dàng theo tác trên ứng dụng.
- Tốc độ phản hồi các thao tác nhanh.
Nhược điểm:
- Chưa đưa ra gợi ý về thực đơn dựa trên các chỉ số sức khỏe của người dùng
85
- Cần cập nhật thêm cơ sở dữ liệu về hướng dẫn nấu ăn (Hiện tại chỉ có khoảng 250 món)
5.3. Hướng phát triển
- Cải thiện khả năng xử lý của chatbot
- Thêm tính năng tạo thực đơn, đưa ra gợi ý thực đơn dựa trên tiêu chí về sức
khỏe của người dùng (chiều cao, cân nặng,…)
- Hỗ trợ tính năng thay đổi ngơn ngữ
86
TÀI LIỆU THAM KHẢO
[1] Multiple Authors – MongoDB Documentation – [Online]
https://docs.mongodb.com/
[2] Multiple Authors – Flutter Documentation – [Online] https://docs.flutter.dev
[3] Multiple Authors – Getting Started on Heroku with Node.js – [Online]
https://devcenter.heroku.com/articles/getting-started-with-nodejs
[4] Multiple Authors – NestJs Documentation – [Online] https://docs.nestjs.com/
[5] Multiple Authors – OneSignal Documentation – [Online]
https://documentation.onesignal.com/docs
[6] Multiple Authors – Firebase Service Documentation – [Online]
https://firebase.google.com/docs
[7] Marcin Wanago – NestJs Tutorial – [Online] https://wanago.io/courses/api-with-