Tải bản đầy đủ (.docx) (75 trang)

Xây dựng ứng dụng di động hỗ trợ dinh dưỡng với chat real time

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 (2.68 MB, 75 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 1

Xây dựng ứng dụng di động
hỗ trợ dinh dưỡng với chat real-time

GIẢNG VIÊN HƯỚNG DẪN: TS. Đỗ Thị Thanh Tuyền
SINH VIÊN THỰC HIỆN:
20520259 – Trần Thành Nhân
20520674– Phạm Minh Nhật

TP. HỒ CHÍ MINH, 2023


LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành đến cô Đỗ Thị Thanh Tuyền - giảng viên
hướng dẫn môn Đồ án 1 trường Đại học Công nghệ Thông tin đã trang bị giúp chúng
em những kỹ năng cơ bản và kiến thức cần thiết để hoàn thành được đồ án này.
Tuy nhiên, trong quá trình làm đồ án do kiến thức chuyên ngành của chúng em còn
hạn chế nên khơng thể tránh khỏi một vài thiếu sót khi trình bày và đánh giá vấn đề.
Rất mong nhận được sự góp ý, đánh giá của các thầy cơ bộ mơn để đề tài của chúng
em thêm hồn thiện hơn.
Nhóm sinh viên thực hiện đồ án gồm Trần Thành Nhân – 20520259 và Phạm Minh
Nhật – 20520674 xin chân thành cảm ơn!


TĨM TẮT NỘI DUNG BÁO CÁO


Nhóm chúng em đã sắp xếp phần trình bày bao gồm 4 chương chính:
-

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

-

Chương 2: Cơ sở lý thuyết & Cơng nghệ

-

Chương 3: Phân tích thiết kế hệ thống

-

Chương 4: Xây dựng ứng dụng

Trong đó các nội dung của từng chương được thể hiện như sau:
-

Chương 1: Chương này bao gồm mục Lý do chọn đề tài của nhóm, mục tiêu
mà đề tài hướng đến. Cùng với đó là phạm vi và đối tượng của đề tài.

-

Chương 2: Chương này sẽ giới thiệu các công nghệ mà đề tài sử dụng trong lúc
thực hiện. Bao gồm các khái niệm, ưu điểm, nhược điểm của từng công nghệ.

-


Chương 3: Chương này sẽ trình bày q trình phân tích và thiết kế tồn bộ hệ
thống của đề tài bao gồm các Mơ tả u cầu, các mơ hình UML, kiến trúc phần
mềm và thiết kế cơ sở dữ liệu ra sao.

-

Chương 4: Chương này sẽ trình bày phần kết quả đã được thực hiện thông qua
Chương 3 và cách sử dụng từng kết quả được trình bày.


NỘI DUNG CHƯƠNG
LỜI CẢM ƠN............................................................................................................... 2
TÓM TẮT NỘI DUNG BÁO CÁO..............................................................................3
NỘI DUNG CHƯƠNG.................................................................................................4
DANH SÁCH CÁC HÌNH...........................................................................................8
DANH SÁCH CÁC BẢNG........................................................................................10
Chương 1. Tổng quan đề tài........................................................................................1
1.1.

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

1.2.

Mục tiêu đề tài..........................................................................................1

1.3.

Phạm vi đề tài...........................................................................................2

1.3.1.


Phạm vi môi trường...............................................................................2

1.3.2.

Phạm vi chức năng.................................................................................2

1.4.

Đối tượng sử dụng....................................................................................2

Chương 2. Cơ sở lý thuyết & Công nghệ....................................................................1
2.1.

Flutter [1]..................................................................................................1

2.2.

getX [2].....................................................................................................1

2.3.

Firebase – Cloud Firestore [3]..................................................................2

2.4.

Rapid API & Open Food Facts [4] [5]......................................................4

Chương 3. Phân tích thiết kế hệ thống........................................................................4
3.1.

3.1.1.
3.2.
3.2.1.

Mơ tả u cầu...........................................................................................4
u cầu chức năng.................................................................................4
Mơ hình Use-case.....................................................................................6
Sơ đồ Use-case......................................................................................6

3.2.1.1. Use case tổng quát..............................................................................6
3.2.1.2. Use case Đăng nhập...........................................................................7


3.2.1.3. Use case Đăng xuất............................................................................7
3.2.1.4. Use case Quản lý nhật ký món ăn......................................................8
3.2.1.5. Use case Quản lý bài tập....................................................................8
3.2.1.6. Use case Chat.....................................................................................9
3.2.2.

Danh sách Actors...................................................................................9

3.2.3.

Đặc tả Use-case.....................................................................................9

3.2.3.1. Use case Đăng nhập...........................................................................9
3.2.3.2. Use case Quên mật khẩu..................................................................10
3.2.3.3. Use Case Đăng xuất.........................................................................11
3.2.3.4. Use Case thêm món ăn.....................................................................11
3.2.3.5. Use case Xóa món ăn.......................................................................12

3.2.3.6. Use Case Thêm bài tập.....................................................................13
3.2.3.7. Use case Xóa bài tập........................................................................13
3.2.3.8. Use Case chat...................................................................................14
3.3.

Mơ hình hoạt động..................................................................................15

3.3.1.

Đăng nhập............................................................................................15

3.3.2.

Qn mật khẩu.....................................................................................15

3.3.3.

Đăng xuất.............................................................................................16

3.3.4.

Chat.....................................................................................................16

3.3.5.

Tìm kiếm món ăn.................................................................................17

3.3.6.

Thêm món ăn.......................................................................................17


3.3.7.

Xóa món ăn..........................................................................................19

3.3.8.

Thêm bài tập thể dục............................................................................20

3.3.9.

Xóa bài tập thể dục..............................................................................21

3.3.10.

Quản lý nhật ký món ăn.......................................................................22


3.4.

Mơ hình tuần tự......................................................................................23

3.4.1.

Đăng nhập............................................................................................23

3.4.2.

Qn mật khẩu.....................................................................................23


3.4.3.

Chat.....................................................................................................24

3.4.4.

Tìm kiếm món ăn.................................................................................25

3.4.5.

Thêm món ăn.......................................................................................26

3.4.6.

Xóa món ăn..........................................................................................27

3.4.7.

Thêm bài tập thể dục............................................................................28

3.4.8.

Xóa bài tập thể dục..............................................................................29

3.5.

Kiến trúc phần mềm................................................................................29

3.6.


Thiết kế cơ sở dữ liệu.............................................................................31

Chương 4. Xây dựng ứng dụng.................................................................................32
4.1.

Màn hình Giới thiệu................................................................................32

4.2.

Màn hình Chọn mục tiêu........................................................................33

4.3.

Màn hình Chọn giới tính.........................................................................34

4.4.

Màn hình Nhập tuổi................................................................................35

4.5.

Màn hình Chọn chiều cao.......................................................................36

4.6.

Màn hình Chọn cân nặng hiện tại...........................................................37

4.7.

Màn hình Chọn mục tiêu cân nặng.........................................................38


4.8.

Màn hình Chọn tần suất hoạt động.........................................................39

4.9.

Màn hình Đăng nhập...............................................................................40

4.10.

Màn hình đăng ký...................................................................................41

4.11.

Màn hình Trang chủ................................................................................42

4.12.

Màn hình Cập nhật cân nặng..................................................................43

4.13.

Màn hình Thêm lượng nước trong ngày.................................................44


4.14.

Màn hình Nhật ký...................................................................................45


4.15.

Màn hình Các chức năng chính...............................................................46

4.16.

Màn hình Lối tắt thêm món ăn................................................................47

4.17.

Màn hình Thêm món ăn khơng định lượng.............................................48

4.18.

Màn hình Tìm kiếm món ăn....................................................................49

4.19.

Màn hình Gợi ý món ăn..........................................................................50

4.20.

Màn hình Kết quả tìm kiếm món ăn........................................................51

4.21.

Màn hình Chi tiết món ăn.......................................................................52

4.22.


Màn hình Chọn định lượng cho món ăn..................................................53

4.23.

Màn hình Thêm bài tập...........................................................................54

4.24.

Màn hình Chọn thời lượng bài tập..........................................................55

4.25.

Màn hình Tra cứu món ăn bằng barcode.................................................56

4.26.

Màn hình Các liên hệ..............................................................................57

4.27.

Màn hình Chat........................................................................................58

KẾT LUẬN................................................................................................................. 59
KẾT QUẢ ĐẠT ĐƯỢC......................................................................................59
PHƯƠNG HƯỚNG PHÁT TRIỂN.....................................................................59
TÀI LIỆU THAM KHẢO...........................................................................................60


DANH SÁCH CÁC HÌNH
Hình 3-1 Use case tổng qt.........................................................................................6

Hình 3-2 Use case Đăng nhập.......................................................................................7
Hình 3-3 Use case Đăng xuất........................................................................................7
Hình 3-4 Use case Quản lý nhật ký món ăn..................................................................8
Hình 3-5 Use case Quản lý bài tập................................................................................8
Hình 3-6 Use case Chat.................................................................................................9
Hình 3-7 Mơ hình hoạt động Đăng nhập.....................................................................15
Hình 3-8 Mơ hình hoạt động Qn mật khẩu..............................................................15
Hình 3-9 Mơ hình hoạt động Đăng xuất......................................................................16
Hình 3-10 Mơ hình hoạt động Chat.............................................................................16
Hình 3-11 Mơ hình hoạt động Tìm Kiếm món ăn.......................................................17
Hình 3-12 Mơ hình hoạt động Thêm món ăn..............................................................18
Hình 3-13 Mơ hình Hoạt động xóa món ăn.................................................................19
Hình 3-14 Mơ hình hoạt động Thêm bài tập thể dục...................................................20
Hình 3-15 Mơ hình hoạt động Xóa bài tập thể dục.....................................................21
Hình 3-16 Mơ hình hoạt động Quản lý nhật ký món ăn..............................................22
Hình 3-17 Mơ hình tuần tự Đăng nhập.......................................................................23
Hình 3-18 Mơ hình tuần tự Qn mật khẩu.................................................................23
Hình 3-19 Mơ hình tuần tự Chat.................................................................................24
Hình 3-20 Mơ hình tuần tự tìm kiếm món ăn..............................................................25
Hình 3-21 Mơ hình tuần tự thêm món ăn....................................................................26
Hình 3-22 Mơ hình tuần tự xóa món ăn......................................................................27
Hình 3-23 Mơ hình tuần tự thêm bài tập thể dục.........................................................28
Hình 3-24 Mơ hình tuần tự xóa bài tập thể dục...........................................................29
Hình 3-25 Kiến trúc phần mềm...................................................................................29
Hình 3-26 Sơ đồ thiết kế cho collection lưu trữ các món ăn.......................................31
Hình 3-27 Sơ đồ thiết kế cho collection lưu trữ thông tin dữ liệu người dùng............31
Hình 4-1 Màn hình Giới thiệu.....................................................................................32
Hình 4-2 Màn hình Chọn mục tiêu..............................................................................33



Hình 4-3 Màn hình Chọn giới tính..............................................................................34
Hình 4-4 Màn hình Nhập tuổi.....................................................................................35
Hình 4-5 Màn hình Chọn chiều cao............................................................................36
Hình 4-6 Màn hình Chọn cân nặng hiện tại.................................................................37
Hình 4-7 Màn hình Chọn mục tiêu cân nặng...............................................................38
Hình 4-8 Màn hình Chọn tần suất hoạt động...............................................................39
Hình 4-9 Màn hình Đăng nhập....................................................................................40
Hình 4-10 Màn hình Đăng ký.....................................................................................41
Hình 4-11 Màn hình Trang chủ...................................................................................42
Hình 4-12 Màn hình Cập nhật cân nặng......................................................................43
Hình 4-13 Màn hình Thêm lượng nước.......................................................................44
Hình 4-14 Màn hình Nhật ký......................................................................................45
Hình 4-15 Màn hình Các chức năng chính..................................................................46
Hình 4-16 Màn hình Lối tắt thêm món ăn...................................................................47
Hình 4-17 Màn hình Thêm món ăn khơng định lượng................................................48
Hình 4-18 Màn hình Tìm kiếm món ăn.......................................................................49
Hình 4-19 Màn hình Gợi ý món ăn.............................................................................50
Hình 4-20 Màn hình Kết quả tìm kiếm món ăn...........................................................51
Hình 4-21 Màn hình chi tiết món ăn...........................................................................52
Hình 4-22 Màn hình Chọn định lượng cho món ăn.....................................................53
Hình 4-23 Màn hình Thêm bài tập..............................................................................54
Hình 4-24 Màn hình Chọn thời lượng bài tập.............................................................55
Hình 4-25 Màn hình Tra cứu món ăn bằng Barcode...................................................56
Hình 4-26 Màn hình Các liên hệ.................................................................................57
Hình 4-27 Màn hình Chat...........................................................................................58


DANH SÁCH CÁC BẢNG
Bảng 3-1 Yêu cầu chức năng........................................................................................5
Bảng 3-2 Danh sách các Actors....................................................................................9

Bảng 4-1 Mô tả cách sử dụng Màn hình Giới thiệu....................................................32
Bảng 4-2 Mơ tả cách sử dụng màn hình Chọn mục tiêu..............................................33
Bảng 4-3 Mơ tả cách sử dụng màn hình Chọn giới tính..............................................34
Bảng 4-4 Mơ tả cách sử dụng màn hình Nhập tuổi.....................................................35
Bảng 4-5 Mơ tả cách sử dụng màn hình Chọn chiều cao............................................36
Bảng 4-6 Mơ tả cách sử dụng màn hình Chọn cân nặng.............................................37
Bảng 4-7 Mơ tả cách sử dụng màn hình Chọn mục tiêu cân nặng...............................38
Bảng 4-8 Mơ tả cách sử dụng Màn hình Chọn tần suất hoạt động..............................39
Bảng 4-9 Mô tả cách sử dụng Màn hình Đăng nhập...................................................40
Bảng 4-10 Mơ tả cách sử dụng Màn hình Đăng ký.....................................................41
Bảng 4-11 Mơ tả cách sử dụng màn hình Trang chủ...................................................42
Bảng 4-12 Mơ tả màn hình cách sử dụng Màn hình Cập nhật cân nặng......................43
Bảng 4-13 Mơ tả cách sử dụng Màn hình Thêm lượng nước......................................44
Bảng 4-14 Mơ tả cách sử dụng Màn hình Nhật ký......................................................45
Bảng 4-15 Mơ tả cách sử dụng Màn hình Các chức năng chính.................................46
Bảng 4-16 Mơ tả cách sử dụng Màn hình Lối tắt thêm món ăn...................................47
Bảng 4-17 Mơ tả cách sử dụng Màn hình Thêm món ăn khơng định lượng................48
Bảng 4-18 Mơ tả cách sử dụng Màn hình Tìm kiếm món ăn......................................49
Bảng 4-19 Mơ tả cách sử dụng màn hình Gợi ý món ăn.............................................50
Bảng 4-20 Mơ tả cách sử dụng Màn hình Kết quả tìm kiếm món ăn..........................51
Bảng 4-21 Mơ tả cách sử dụng Màn hình Chi tiết món ăn..........................................52
Bảng 4-22 Mơ tả cách sử dụng Màn hình Chọn định lượng cho món ăn....................53
Bảng 4-23 Mơ tả cách sử dụng Màn hình Thêm bài tập..............................................54
Bảng 4-24 Mô tả cách sử dụng Màn hình Chọn thời lượng bài tập.............................55
Bảng 4-25 Mơ tả cách sử dụng màn hình Tra cứu món ăn bằng Barcode...................56
Bảng 4-26 Mơ tả cách sử dụng màn hình Các liên hệ.................................................57
Bảng 4-27 Mơ tả cách sử dụng Màn hình Chat...........................................................58


Chương 1. Tổng quan đề tài

1.1.

Lý do chọn đề tài

Hiện nay, nhu cầu trở nên đẹp hơn, khỏe hơn đã và đang thịnh hành, phổ biến với
tất cả mọi người. Điều này là do sự nhận thức đúng đắn hơn về tầm quan trọng của
sức khỏe và ngoại hình trong cuộc sống. Để có được những điều đó, sự đầu tư về dinh
dưỡng là một lựa chọn được ưu tiên, cùng với đó là việc tập thể dục, kiểm sốt các
thói quen và giấc ngủ, … Trong các yếu tố trên, dinh dưỡng được xem là mắt xích
quan trọng nhất, cũng như là một nền tảng vững chãi nhất để xây dựng một cuộc sống
lành mạnh.
Tuy nhiên, để có thể có được những kiến thức chính xác, phù hợp về dinh dưỡng
để đạt được các mục tiêu mỗi cá nhân đề ra đơi khi sẽ rất khó khăn và tốn thời gian,
cơng sức. Chính vì lẽ đó, một cơng cụ, phần mềm hỗ trợ người dung trong việc gợi ý
thực đơn, tùy chỉnh thực đơn theo sở thích, mục tiêu và có thể kết nối giữa khách hàng
và các chuyên gia dinh dưỡng để trực tiếp trao đổi thơng tin.
Nhìn thấy được nhu cầu trên, nhóm đã quyết định sẽ xây dựng một phần mềm
mobile MyDiet với các tính năng đáp ứng đủ nhu cầu của người dung.
1.2.

Mục tiêu đề tài

Ghi nhật ký bữa ăn và hoạt động: các công cụ tiên tiến giúp ghi nhật ký thức ăn,
thời gian tập luyện nhanh chóng và dễ dàng.
Đặt mục tiêu: bạn có thể tùy chỉnh mục tiêu về cân nặng, dinh dưỡng và thể dục cá
nhân cho mình.
Theo dõi tiến độ: xem nhanh tiến độ trong ngày hoặc phân tích chi tiết dinh dưỡng
và lượng calo của bạn.
Trao đổi với các chuyên gia: giúp bạn đạt được mục tiêu nhanh hơn nhờ vào các
lời khuyên của chuyên gia uy tín.


1


1.3.

Phạm vi đề tài

1.3.1. Phạm vi môi trường
Triển khai đề tài trên môi trường mobile (iOS và Android).
1.3.2. Phạm vi chức năng
Ứng sẽ dựa trên các thông tin khách hàng cung cấp để đưa ra các chỉ số dinh
dưỡng cho khách hàng.
Khách hàng có thể tìm kiếm món ăn để thêm vào nhật ký bữa ăn thông qua nhập
hoặc quét barcode.
Khách hàng thêm, xem chi tiết và xóa món ăn mong muốn.
Ứng dụng sẽ hỗ trợ khách hàng theo dõi tiến độ mục tiêu dinh dưỡng mỗi ngày
Khách hàng có thể cập nhật các chỉ số cơ thể, mục tiêu
Khách hàng có thể trao đổi trực tiếp với các chuyên gia dinh dưỡng trên ứng dụng.
1.4.

Đối tượng sử dụng

Người dùng muốn kiểm sốt cân nặng, sức khỏe.
Người dùng có nhu cầu muốn trao đổi với các chuyên gia tư vấn dinh dưỡng.
Các chuyên gia tư vấn dinh dưỡng.

2



Chương 2. Cơ sở lý thuyết & Công nghệ
2.1.

Flutter[ CITATION VUN \l 1033 ]

Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao
trên iOS và Android trong khoảng thời gian ngắn. Flutter hoạt động với những code
sẵn có được sử dụng bởi các lập trình viên, các tổ chức.
Flutter hồn tồn miễn phí và cũng là mã nguồn mở.
Đặc điểm nổi bật:
-

-

Fast Development: Tính năng Hot Reload hoạt động trong milliseconds để hiện
thị giao diện tới bạn. Sử dụng tập hợp các widget có thể customizable để xây
dựng giao diện trong vài phút. Ngoài ra Hot Reload cịn giúp bạn thêm các tính
năng, fix bug tiết kiệm thời gian hơn mà không cần phải thông qua máy ảo,
máy android hoặc iOS.
Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện
của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ
trợ nhiều các APIs chuyển động, smooth scrolling...
Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền
tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt
nhất tới iOS và Android.

2.2.

getX[ CITATION Ngu \l 1033 ]


getX là một thư viện Flutter, cung cấp công cụ quản lý trạng thái và dependency
injection. Ưu điểm:


BLoC pattern cũng là một cách quản lý state hiệu quả và an toàn. Tuy nhiên
code khá rối rắm và tốn nhiều thời gian để implement, trong một số trường hợp
thì khó handle. Khó tiếp cận với những người mới



MobX cũng là một thư viện tuyệt vời, dễ sử dụng hơn BLoC tuy nhiên lại quá
phụ thuộc vào code generation. Có thể gây khó hiểu với người sử dụng và làm
phình scope của dự án



Provider là một kiểu quản lý state cơ bản và hiệu quả đối với nhiều người. Khi
mới bắt đầu mọi người nên sử dụng thuần thục Provider. Tuy nhiên Provider sử
dụng InheritedWidget và nó chỉ có thể sử dụng trong widget tree nên nhiều
trường hợp sẽ không thể handle được


Tiếp theo là những ưu điểm của Get - State manager:


Chỉ update những widget cần thiết



Sử dụng ít bộ nhớ hơn so với các kiểu quản lý state khác




Quên đi StatefulWidget. Với Get các bạn không phải suy nghĩ sử dụng
StatefulWidget hay StateLessWidget nữa. Bây giờ bạn chỉ việc một component
duy nhất là GetWidget



Việc tổ chức cấu trúc project sẽ cực kỳ clear, phần code logic được tách hẳn
hoàn toàn so với UI (mình sẽ demo structure dự án ở bài cuối của seri)



Update widgets without spending ram for that



Tối ưu hố bộ nhớ, bạn sẽ khơng phải lo lắng việc Out Memory nữa , Get sẽ tự
động thu dọn những component không cần thiết

2.3.

Firebase – Cloud Firestore[CITATION Unk \l 1033 ]

Firebase là gì đang được rất nhiều người thắc mắc, dựa theo định nghĩa thì nó là
một nền tảng được sử dụng để phát triển các ứng dụng di động trong web. Nó được
hoạt động trên nền tảng cloud, bao gồm các API đơn giản, mạnh mẽ nhưng không cần
backend và server. Nó có chứa các CSDL với khả năng sẵn mang đến khả năng code
nhanh chóng và thuận tiện



Cách tạo tài khoản và sử dụng dễ dàng: Ưu điểm đầu tiên của nền tảng firebase
đối với người dùng đó chính là cho phép đăng ký tài khoản Google nhanh
chóng và đơn giản. Nền tảng cung cấp miễn phí các tính năng để các nhà phát
triển có thể sử dụng, tuy nhiên đối với những tính năng cao hơn thì bắt buộc
người dùng phải trả phí.



Sử dụng với tốc độ cao: Ưu điểm tiếp theo của các firebase đó chính là giúp
cho người phát triển ứng dụng có thể tiết kiệm thời gian thiết kế. Các Dev có
quyền truy cập và các server và host để để quản lý thời gian lập trình và hồn
tất cơng việc cụ thế.



Là nền tảng đa dịch vụ: Là một trong những nền tảng đa dịch vụ bằng việc
cung cấp đầy đủ các dịch vụ hỗ trợ cho việc phát triển web. Người tham gia lập
2


trình có thể tùy cho database firebase hoặc realtime theo cơng việc và sở thích
của mình.


Là một thành phần của Google: Dựa theo lịch sử phát triển bạn có thể thấy nền
firebase đã được Google mua lại và trở thành một phần của nó. Google đã phát
triển và khai thác triệt để các sức mạnh và tính năng của firebase để tạo ra
những dịch vụ sắn cho cho người dùng.




Phát triển giao diện người dùng tốt: Một trong những ưu điểm mà ai cũng có
thể nhìn nhận được tại nền tảng firebase đó chính và có khả năng tập trung vào
giao diện người dùng. Xây dựng một kho backend với nhiều giao diện đa dang,
phong phú giúp người dùng thoải mái lựa chọn.



Khơng có máy chủ: Đặc điểm của firebase đó chính là hoạt động khơng dựa
trên máy chủ, nên nó có khả năng tối ưu hóa hiệu suất làm việc bằng cách thức
mở rộng database.



Chức năng học máy: Đây được coi là một trong những chức năng vô cùng cần
thiết kết và rất tốt cho các Dev khi mới tiếp cận nền tảng. Cơng dụng này có
khả năng hỗ trợ tối đa cho việc phát triển ứng dụng trong quá trình làm việc
của các lập trình viên.



Tăng lượng traffic: Firebase có chức năng hỗ trợ tạo lập các chỉ mục giúp nâng
cao thứ hạng của ứng dụng trên Google. Được coi là một trong những phương
pháp giúp cho người dùng có thể dễ dàng tiếp cận với sản phẩm và tăng traffic.



Phát hiện hỗi: Chức năng của firebase đó chính là theo dõi hệ thống, khơng chỉ

là một cơng cụ phát triển nó cịn có khả năng phát hiện lỗi, từ đó đưa ra hướng
giải quyết hiệu quả.



Sao lưu dữ liệu: Firebase sẽ tiến hành sao lưu thường xuyên tất cả dữ liệu, đảm
bảo tính có sẵn khi Dev sử dụng.

Nhược điểm:


Không phải tất cả các dịch vụ firebase đều miễn phí, mức phí của nó cũng khá
đắt và không ổn định..
3




Vì firebase khơng phải là mã nguồn mở cho nên khơng có quyền truy cập mã
nguồn.



Firebase chỉ được cho phép hoạt động ở một vài quốc gia.



Firebase chỉ chạy trên Google cloud và không cung cấp API GraphQL.




Thời gian truy vấn của firebase chậm với kích thước tài liệu lớn.

2.4.

Rapid API & Open Food Facts[CITATION Unk1 \l 1033 ]

[CITATION Unk2 \l 1033 ]
Rapid API – Sàn giao dịch API lớn nhất trên tồn cầu với hơn 10.000 API cơng
khai và 1 triệu nhà phát triển hoạt động trên trang web. RapidAPI cho phép người
dùng trực tiếp kiểm thử API trên nền tảng trước khi quyết định mua.
Open Food Facts là một cơ sở dữ liệu sản phẩm thực phẩm được thực hiện bởi tất
cả mọi người, cho tất cả mọi người. Bạn có thể sử dụng nó để thực hiện lựa chọn thực
phẩm tốt hơn, và vì nó là dữ liệu mở, bất cứ ai cũng có thể tái sử dụng nó cho bất kỳ
mục đích nào.

Chương 3. Phân tích thiết kế hệ thống
3.1.

Mô tả yêu cầu

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

4


Bảng 3-1 u cầu chức năng

Nhóm chức năng


CHUNG

CHÍNH

Chức năng
Đăng ký tài khoản qua email

Mô tả
Khách hàng đăng ký tài
khoản bằng email để sử
dụng ứng dụng.
Đăng nhập tài khoản qua
Khách hàng đăng nhập bằng
Google email
tài khoản Google để sử dụng
ứng dụng.
Quên mật khẩu
Khách hàng thay đổi mật
khẩu thông qua email đã
đăng ký.
Đăng xuất
Khách hàng đăng xuất khỏi
tài khoản sử dụng.
Đo chỉ số TDEE
Ứng sẽ dựa trên các thông
tin khách hàng cung cấp để
đưa ra các chỉ số dinh dưỡng
cho khách hàng
Tìm kiếm món ăn
Khách hàng tìm kiếm món

ăn để thêm vào nhật ký bữa
ăn
Xem thơng tin chi tiết món ăn Khách hàng xem được thơng
tin chi tiết của các món ăn
Thêm món ăn vào nhật ký bữa Khách hàng thêm món ăn
ăn
mong muốn vào nhật ký bữa
ăn
Xóa món ăn khỏi nhật ký bữa Xóa món ăn khỏi nhật ký
ăn
bữa ăn
Tra cứu món ăn bằng Barcode

Khách hàng quét mã Barcode để
thêm món ăn

Theo dõi tiến độ dinh dưỡng
mỗi ngày

Ứng dụng sẽ hỗ trợ khách
hàng theo dõi tiến độ mục
tiêu dinh dưỡng mỗi ngày
Khách hàng cập nhật các chỉ
số cơ thể, mục tiêu
Khách hàng thêm các bài tập
vào nhật ký.
Khách hàng xóa các bài tập
khỏi nhật ký.
Khách hàng gửi nhận tin
nhắn với chuyên gia dinh

dưỡng

Thay đổi các chỉ số cơ thể,
mục tiêu
Thêm các bài tập
Xóa các bài tập
Gửi nhận tin nhắn

5


3.2.

Mơ hình Use-case

3.2.1. Sơ đồ Use-case
3.2.1.1.

Use case tổng qt

Hình 3-1 Use case tổng quát

6


3.2.1.2.

Use case Đăng nhập

Hình 3-2 Use case Đăng nhập


3.2.1.3.

Use case Đăng xuất

Hình 3-3 Use case Đăng xuất

7


3.2.1.4.

Use case Quản lý nhật ký món ăn

Hình 3-4 Use case Quản lý nhật ký món ăn

3.2.1.5.

Use case Quản lý bài tập

Hình 3-5 Use case Quản lý bài tập

8



×