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

Đồ án 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.96 MB, 72 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ả yêu cầu ............................................................................................. 4
Yê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.

Quên 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 [1]

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. Ngồ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 [2]

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 [3]

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 q 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 [4] [5]

Rapid API – Sàn giao dịch API lớn nhất trên toà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ả 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
Ứng dụng sẽ hỗ trợ khách
mỗi ngày
hàng theo dõi tiến độ mục
tiêu dinh dưỡng mỗi ngày
Thay đổi các chỉ số cơ thể,
Khách hàng cập nhật các chỉ
mục tiêu
số cơ thể, mục tiêu
Thêm các bài tập
Khách hàng thêm các bài tập
vào nhật ký.
Xóa các bài tập
Khách hàng xóa các bài tập
khỏi nhật ký.
Gửi nhận tin nhắn

Khách hàng gửi nhận tin
nhắn với chuyên gia dinh
dưỡng

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


3.2.1.6.

Use case Chat

Hình 3-6 Use case Chat

3.2.2. Danh sách Actors
Bảng 3-2 Danh sách các Actors


STT
1

2

Actor
User
Chuyên gia dinh dưỡng

Ý nghĩa
Thực hiện các chức năng xây dựng thực đơn
cho mình, quản lý và theo dõi sức khỏe, chat
với chuyên gia dinh dưỡng
Thực hiện các chức năng xây dựng thực đơn
cho mình, quản lý và theo dõi sức khỏe, chat
với người dùng

3.2.3. Đặc tả Use-case
3.2.3.1.
Use Case ID
Use Case Name
Description
Actor(s)
Priority
Trigger
Pre Condition(s)

Post Condition(s)
Basic Flow


Use case Đăng nhập
UC-1.1
Use Case Đăng nhập
Là người dùng, tôi muốn đăng nhập vào để sử dụng
chức năng ứng dụng
User, chuyên gia dinh dưỡng
Must have
Người dùng muốn đăng nhập vào ứng dụng
Tài khoản người dùng đã được tạo sẵn
Tài khoản người dùng đã được phân quyền
Thiết bị của người dùng có kết nối internet khi thực
hiện đăng nhập
Người dùng đăng nhập ứng dụng thành công
Hệ thống ghi nhận người dùng đăng nhập thành công
1. Người dùng truy cập ứng dụng
2. Người dùng chọn phương thức đăng nhập bằng tải
khoản
9


Alternative Flow

Exception Flow

Non-Funtional
Requirement
3.2.3.2.
Use Case ID
Use Case Name
Description

Actor(s)
Priority
Trigger
Pre Condition(s)

Post Condition(s)

Basic Flow

3.Người dùng nhập tài khoản và đăng nhập
4. Hệ thống xác thực thông tin đăng nhập thành công
và cho phép người dùng truy cập ứng dụng
5. Hệ thống ghi nhận hoạt động đăng nhập thành công
2a. Người dùng chọn phương thức đăng nhập bằng
Google
2a.1. Hệ thống chuyển sang màn hình đăng nhập của
Google
3a. Người dùng nhập tài khoản Google và chọn lệnh
đăng nhập
4a. Google xác thực thông tin đăng nhập thành công
và cho phép người dùng đăng nhập ứng dụng
Use Case tiếp tục bước 5
4b. Hệ thống xác thực thông tin đăng nhập không
thành công và hiển thị thông báo
4b.1 Người dụng thoát úng dụng
Use Case dừng lại
4b.2 Người dụng chọn lấy lại mật khẩu
Use Case tiếp tục Use Case UC-1.2
None


Use case Quên mật khẩu
UC-1.2
Use Case Quên mật khẩu
Là người dùng, tôi muốn lấy lại mật khẩu tài khoản
User, chuyên gia dinh dưỡng
Must have
Người dùng bấm vào mục quên mật khẩu
Tài khoản người dùng đã được tạo sẵn
Tài khoản người dùng đã được phân quyền
Thiết bị của người dùng có kết nối internet khi thực
hiện quên mật khẩu
Người dùng lấy lại mật khẩu thành công
Hệ thống ghi nhận người dùng đổi mật khẩu thành
công
1. Người dùng truy cập ứng dụng
2. Người dùng bấm vào mục quên mật khẩu
3.Người dùng nhập tài khoản
4. Hệ thống yêu cầu nhập mã OTP để đổi mật khẩu
5.Người dùng nhập đúng mã OTP để đổi mật khẩu
mới
6. Hệ thống xác nhận mã OTP để đổi mật khẩu mới
7.Hệ thống hiển thị màn hình đổi mật khẩu
10


Alternative Flow
Exception Flow

Non-Funtional
Requirement

3.2.3.3.
Use Case ID
Use Case Name
Description
Actor(s)
Priority
Trigger
Pre Condition(s)

Post Condition(s)
Basic Flow

Alternative Flow
Exception Flow

Non-Funtional
Requirement
3.2.3.4.
Use Case ID
Use Case Name
Description

8. Người dùng nhập mật khẩu mới
9. Hệ thống hiển thị thông báo đổi mật khẩu thành
công
None
5a. Người dùng nhập sai mã OTP
5a1. Hệ thống báo lỗi và hủy bỏ
Use Case dừng lại
None


Use Case Đăng xuất
UC-2.1
Use Case Đăng xuất
Là người dùng, tôi muốn đăng xuất để sử dụng tài
khoản khác
User, chuyên gia dinh dưỡng
Must have
Người dùng bấm vào nút đăng xuất ứng dụng
Tài khoản người dùng đã được đăng nhập
Thiết bị của người dùng có kết nối internet khi thực
hiện đăng nhập
Người dùng đăng xuất ứng dụng thành công
Hệ thống ghi nhận người dùng đăng xuất thành công
1. Người dùng truy cập ứng dụng
2. Người dùng ấn nút đăng xuất tải khoản
3. Hệ thống hiển thị thông báo xác nhận
4. Người dùng xác nhận
5. Hệ thống ghi nhận hoạt động đăng xuất thành công
6. Hệ thống chuyển người dùng tới màn hình đăng
nhập
None
4a. Người dùng từ chối
4b.1 Hệ thống ghi nhận và tắt thông báo
Use Case dừng lại
None

Use Case thêm món ăn
UC-3.1
Use Case thêm món ăn

Là người dùng, tơi muốn thêm món ăn
11


Actor(s)
Priority
Trigger
Pre Condition(s)

Post Condition(s)
Basic Flow

Alternative Flow

Exception Flow
Non-Funtional
Requirement
3.2.3.5.
Use Case ID
Use Case Name
Description
Actor(s)
Priority
Trigger
Pre Condition(s)

Post Condition(s)
Basic Flow

User, chuyên gia dinh dưỡng

Must have
Người dùng bấm vào button thêm món ăn
Người dùng đã đăng nhập vào hệ thống
Thiết bị của người dùng có kết nối internet khi thực
hiện chức năng
Người dùng thêm món ăn thành cơng
Hệ thống ghi nhận món ăn đã được thêm vào
1. Người dùng bấm vào button thêm món ăn
2. Người dùng tìm kiếm món ăn
3. Hệ thống hiển thị thơng tin món ăn
4. Người dùng chọn món ăn mình muốn thêm vào
5. Hệ thống ghi nhận món ăn đã được thêm vào
6. Hệ thống hiển thị món ăn trên nhật ký món ăn của
người dùng
2a. Người dùng tìm kiếm món ăn bằng scan bar code
2a.1 Người dùng mở camera và scan thức ăn
Use Case tiếp tục bước 3
2b. Người dùng tìm kiếm món ăn theo thực phẩm
2b.1 Người dùng nhập loại thực phẩm và số lượng của
thực phẩm
Use Case tiếp tục bước 3
2c. Người dùng khơng tìm kiếm được món ăn
Use Case kết thúc
None

Use case Xóa món ăn
UC-3.2
Use Case xóa món ăn
Là người dùng, tơi muốn xóa món ăn
User, chun gia dinh dưỡng

Must have
Người dùng kéo ngang món ăn để xóa
Người dùng đã đăng nhập vào hệ thống
Thiết bị của người dùng có kết nối internet khi thực
hiện chức năng
Người dùng xóa món ăn thành cơng
Hệ thống ghi nhận món ăn đã được xóa đi
1. Người dùng kéo ngang món ăn
2. Hệ thống ghi nhận món ăn đã được xóa
3. Hệ thống khơng hiển thị món ăn trên nhật ký món
ăn của người dùng
12


Alternative Flow
Exception Flow

None
None

Non-Funtional
Requirement

None

3.2.3.6.
Use Case ID
Use Case Name
Description
Actor(s)

Priority
Trigger
Pre Condition(s)

Post Condition(s)
Basic Flow

Alternative Flow
Exception Flow
Non-Funtional
Requirement
3.2.3.7.
Use Case ID
Use Case Name
Description
Actor(s)
Priority
Trigger
Pre Condition(s)

Post Condition(s)

Use Case Thêm bài tập
UC-4.1
Use Case thêm bài tập
Là người dùng, tôi muốn thêm bài tập
User, chuyên gia dinh dưỡng
Must have
Người dùng bấm vào button thêm bài tập
Người dùng đã đăng nhập vào hệ thống

Thiết bị của người dùng có kết nối internet khi thực
hiện chức năng
Người dùng thêm món ăn thành cơng
Hệ thống ghi nhận món ăn đã được thêm vào
1. Người dùng bấm vào button thêm bài tập
2. Người dùng tìm kiếm bài tập
3. Hệ thống hiển thị thông tin bài tập
4. Người dùng chọn bài tập mình muốn thêm vào
5. Hệ thống ghi nhận bài tập đã được thêm vào
6. Hệ thống hiển thị bài tập trên nhật ký bài tập của
người dùng
None
2a. Người dùng khơng tìm kiếm được bài tập
Use Case kết thúc
None

Use case Xóa bài tập
UC-4.2
Use Case xóa bài tập
Là người dùng, tơi muốn xóa bài tập
User, chun gia dinh dưỡng
Must have
Người dùng bấm vào nút xóa bài tập
Người dùng đã đăng nhập vào hệ thống
Thiết bị của người dùng có kết nối internet khi thực
hiện chức năng
Người dùng xóa bài tập thành cơng
13



×