Sơ đồ kiến trúc hệ thống

Một phần của tài liệu 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) (Trang 84)

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-

Một phần của tài liệu 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) (Trang 84)