ĐẠ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
BÁO CÁO ĐỒ ÁN 1
Tìm hiểu Flutter và xây dựng ứng dụng
hỗ trợ tập thể dục
Giảng viên hướng dẫn:
ThS. HUỲNH TUẤN ANH
Sinh viên thực hiện:
TRƯƠNG KIM LÂM – 19521743 TRẦN
LÊ THANH TÙNG – 19522496
TP. HỒ CHÍ MINH, 2022
LỜI CẢM ƠN
Đầu tiên, nhóm em xin phép gửi lời cảm ơn đến tập thể quý thầy cô của Trường Đại
học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh cũng như quý thầy cô
thuộc Khoa Cơng nghệ Phần mềm đã giúp nhóm em có những kiến thức nền tảng vững chắc
để có thể thực hiện đề tài này.
Đặc biệt, nhóm em xin gửi lời cảm ơn chân thành đến thầy Huỳnh Tuấn Anh, người
đã tạo điều kiện và hướng dẫn chúng em trong việc thực hiện đề tài này, một đề tài mà em và
người bạn của mình đã ấp ủ từ lâu.
Nhờ những kiến thức và kinh nghiệm từ các giảng viên mà nhóm em đã có thể tận
dụng để thực hiện đề tài. Tuy nhiên, trong quá trình thực hiện đề tài cũng sẽ không thể tránh
khỏi những hạn chế, thiếu sót. Chúng em mong rằng sẽ nhận được những nhận xét, góp ý từ
thầy cũng như các giảng viên khác, để chúng em có thể ngày một tốt hơn và để có thể đóng
góp được nhiều hơn nữa. Chúng em sẽ rất biết ơn vì điều đó.
Một lần nữa, chúng em xin trân trọng cảm ơn!
Thành phố Hồ Chí Minh, ngày 12 tháng 06 năm 2022
Trương Kim Lâm, Trần Lê Thanh Tùng
1
NHẬN XÉT CỦA GIẢNG VIÊN
............................................................................................................................................... ....
........................................................................................................................................... ........
....................................................................................................................................... ............
................................................................................................................................... ................
............................................................................................................................... ....................
........................................................................................................................... ........................
....................................................................................................................... ............................
................................................................................................................... ................................
............................................................................................................... ....................................
........................................................................................................... ........................................
....................................................................................................... ............................................
................................................................................................... ................................................
............................................................................................... ....................................................
........................................................................................... ........................................................
....................................................................................... ............................................................
................................................................................... ................................................................
............................................................................... ....................................................................
........................................................................... ........................................................................
....................................................................... ............................................................................
...................................................................
2
MỤC LỤC
LỜI CẢM ƠN .................................................................................................................... 1
NHẬN XÉT CỦA GIẢNG VIÊN..................................................................................... 2
CHƯƠNG I – TỔNG QUAN............................................................................................ 6
1. Thông tin chung......................................................................................................... 6 1.1.
Tên đồ án............................................................................................................ 6 1.2. Tên
ứng dụng ..................................................................................................... 6 1.3. Nền
tảng ứng dụng ............................................................................................. 6 1.4. Công
nghệ .......................................................................................................... 6 1.5. Nhân lực
tham gia .............................................................................................. 6
2. Lý do chọn đề tài ....................................................................................................... 6
CHƯƠNG II – CƠ SỞ LÝ THUYẾT.............................................................................. 8 1.
Flutter ........................................................................................................................ 8 2.
ViPT ........................................................................................................................ 11
CHƯƠNG III – PHÂN TÍCH, THIẾT KẾ................................................................... 15 1.
Danh sách tính năng ................................................................................................ 15 2. Sơ đồ
use-case ......................................................................................................... 19 2.1. Xác thực
người dùng........................................................................................ 19 2.2. Cài
đặt .............................................................................................................. 21 2.3. Quản lý
món ăn ................................................................................................ 23 2.4. Quản lý bài
tập ................................................................................................. 24 2.5. Theo dõi lượng
nước uống............................................................................... 30 2.6. Theo dõi bước
chân.......................................................................................... 36 2.7. Theo dõi lượng thức
ăn .................................................................................... 38
3
2.8. Theo dõi luyện tập............................................................................................ 47 2.9.
Fasting (hỗ trợ q trình khơng ăn uống)......................................................... 54 2.10.
Thống kê cân nặng ........................................................................................... 58 2.11.
Thống kê nước uống ........................................................................................ 61 2.12.
Thống kê bước chân......................................................................................... 63 2.13.
Thống kê dinh dưỡng ....................................................................................... 65 2.14.
Thống kê luyện tập........................................................................................... 67 2.15.
Hình ảnh quá trình............................................................................................ 69 2.16.
Thực hiện luyện tập.......................................................................................... 72 2.17. Đề
xuất lộ trình................................................................................................. 77
3. Sơ đồ hoạt động....................................................................................................... 81 3.1.
Xác thực người dùng........................................................................................ 81 3.2. Cài
đặt .............................................................................................................. 82 3.3. Quản lý
món ăn ................................................................................................ 83 3.4. Quản lý bài
tập ................................................................................................. 84 3.5. Theo dõi lượng
nước uống............................................................................... 84 3.6. Theo dõi bước
chân.......................................................................................... 85 3.7. Theo dõi lượng
thức ăn .................................................................................... 85 3.8. Theo dõi luyện
tập............................................................................................ 85 3.9. Fasting (hỗ trợ q
trình khơng ăn uống)......................................................... 86 3.10. Thống kê cân
nặng ........................................................................................... 86 3.11. Thống kê nước
uống ........................................................................................ 86 3.12. Thống kê bước
chân......................................................................................... 87 3.13. Thống kê dinh
dưỡng ....................................................................................... 87
4
3.14. Thống kê luyện tập........................................................................................... 87
3.15. Hình ảnh quá trình............................................................................................ 88
3.16. Thực hiện luyện tập.......................................................................................... 89
3.17. Đề xuất lộ trình................................................................................................. 90
4. Cơ sở dữ liệu ........................................................................................................... 91 5.
Kiến trúc .................................................................................................................. 93 6.
Giao diện ................................................................................................................. 94
CHƯƠNG IV – TỔNG KẾT ........................................................................................105 1.
Kết quả đạt được....................................................................................................105 2. Hạn
chế..................................................................................................................105 3. Hướng
phát triển....................................................................................................105 TÀI LIỆU
THAM KHẢO.............................................................................................108
5
CHƯƠNG I – TỔNG QUAN
1. Thơng tin chung
1.1. Tên đồ án
Tìm hiểu Flutter và xây dựng ứng dụng hỗ trợ tập thể dục.
1.2. Tên ứng dụng
ViPT – Virtual Personal Trainer
1.3. Nền tảng ứng dụng
Di động (Android).
1.4. Cơng nghệ
• Ngơn ngữ: Dart.
• Framework: Flutter.
• Database:
o Firebase.
o SQLite.
1.5. Nhân lực tham gia
STT
Họ và tên
MSSV
1
Trương Kim Lâm
19521743
2
Trần Lê Thanh Tùng
19522496
2. Lý do chọn đề tài
Hiện nay, Flutter đang được khá nhiều người quan tâm và dần dần trở thành xu hướng
bởi tính dễ sử dụng của nó. Hơn nữa, Flutter được phát triển bởi Google, một trong
những công ty công nghệ lớn mạnh trên thế giới. Điều này càng khiến cho nhiều
người tin tưởng và đặt niềm tin vào sự phát triển của nó, nhóm em cũng khơng phải là
một ngoại lệ. Khi tiếp cận với Flutter, chúng em nhận thấy rõ ràng sự mới mẻ của nó
và kèm theo đó là những khả năng độc đáo mà Google cung cấp. Tuy nhiên thì nhóm
em khơng muốn dừng ở đó, ở một mức cơ bản là vận dụng được,
6
mà nhóm em cịn muốn đi sâu hơn, khai thác hết những cái nâng cao và làm sao để
xây dựng được một ứng dụng với hiệu suất cao.
Ở đồ án này, chúng em đã chọn xây dựng một ứng dụng hỗ trợ tập thể dục và ngun
nhân chính cho sự lựa chọn đó xuất phát từ chính nhu cầu của bản thân. Vào 2 năm
trước, đó cũng là thời điểm em bắt đầu đặt ra mục tiêu cân nặng cho mình, em và
người bạn của mình đã cùng nhau lên kế hoạch để có những buổi luyện tập mỗi ngày
với mục tiêu là đạt được mức cân mong muốn. Tuy nhiên, sau một khoảng thời gian
dài luyện tập mà vẫn không đạt được thành quả, chúng em mới nhận ra rằng, việc
luyện tập thì cần phải đi đôi với chế độ dinh dưỡng, không chỉ thế mà giấc ngủ của
chúng ta cũng có liên quan trong đó. Để có thể đảm bảo được chế độ dinh dưỡng cũng
như các hoạt động tập luyện mỗi ngày là hợp lý, ta sẽ phải tính tốn rất nhiều về các
thành phần dinh dưỡng của món ăn cũng như cường độ ở các hoạt động luyện tập để
làm sao cho phù hợp với cơ thể. Hơn nữa, việc tính tốn này cũng cần phải đúng theo
khoa học để có thể đảm bảo sức khỏe cho cơ thể của chúng ta. Chính vì thế mà điều
này càng trở nên khó khăn hơn đối với những cá nhân không thể dành nhiều thời gian
để tìm hiểu và áp dụng, chưa kể là việc tự thực hiện những việc này đôi lúc sẽ khiến
chúng ta thật đau đầu. Vậy thì, tại sao ta không tận dụng công nghệ để thực hiện giúp
chúng ta những việc đó? Khi câu hỏi đó được đặt ra cũng là lúc em và bạn em cùng
nhau bắt tay vào tìm hiểu và quyết định xây dựng một ứng dụng hỗ trợ tập thể dục.
7
CHƯƠNG II – CƠ SỞ LÝ THUYẾT
1. Flutter
Flutter là một SDK mới của Google dành cho các thiết bị di động giúp developers và
designers xây dựng nhanh chóng ứng dụng dành cho các thiết bị di động (Android,
iOS). Flutter là dự án mã nguồn mở đang trong giai đoạn thử nghiệm. Flutter bao gồm
Reactive framework và công nghệ hiển thị 2D (2D rendering engine) và các công cụ
phát triển (development tool). Các thành phần này làm việc cùng nhau giúp ta thiết
kế, xây dựng, test, debug ứng dụng. Khơng có gì ngạc nhiên khi Flutter giúp các nhà
phát triển tạo ra các ứng dụng native đẹp mắt và giúp họ phát triển các ứng dụng đa
nền tảng một cách dễ dàng.
Widget
Flutter đã tạo ra một khái niệm "mới" đó là Widget. Widget chính là nền tảng của
Flutter, một widget miêu tả một phần của giao diện người dùng. Tất cả các component
như text, image, button hay animation, theme, layout hay thậm chí app cũng là 1
widget. Trong Flutter tất cả các widget hay giao diện đều được code bằng ngôn ngữ
Dart.
Dart
Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính năng hữu
ích như mixin, generic, isolate, và static type.
Hot reload
Hot reload là một tính năng của Flutter giúp ta nhanh chóng và dễ dàng thử nghiệm,
xây dựng giao diện thêm tính năng và sửa lỗi mà khơng cần khởi động lại chúng.
GetX
GetX là một package có thể xem plà toàn năng giúp cho code Flutter hiệu quả và
năng suất hơn. Nó kết hợp high-performance state management, intelligent
dependency injection, và route management một cách thiết thực và nhanh chóng.
8
GetX có 3 nguyên tắc cơ bản, có nghĩa đây chính là những ưu tiên cho tất cả các tài
nguyên trong thư viện này:
• Performance (hiệu suất): GetX tập trung vào hiệu suất và mức tiêu thụ tài nguyên
tối thiểu. GetX khơng sử dụng Streams hoặc ChangeNotifier. • Productivity (năng
suất): GetX sử dụng một cú pháp dễ dàng. Bất kể bạn muốn làm gì, ln có một cách
dễ dàng hơn với GetX. Nó sẽ tiết kiệm hàng giờ phát triển và sẽ cung cấp hiệu suất tối
đa mà ứng dụng của bạn có thể mang lại. • Organization (tổ chức): GetX cho phép
tách view, presentation logic, business logic, dependency injection và navigation ra
riêng với nhau. Bạn không cần context để điều hướng giữa các routes, vì vậy mà bạn
khơng bị phụ thuộc vào cây widget cho điều này. Bạn không cần context để truy cập
controller/bloc của mình thơng qua một widget kế thừa, vì vậy bạn hồn tồn tách rời
presentation logic và business logic khỏi lớp trực quan hóa của mình. Bạn khơng cần
phải đưa các lớp controller/model/bloc vào cây widget của mình thơng qua
MultiProviders. Đối với điều này, GetX sử dụng tính năng dependency injection của
riêng nó, tách hồn tồn dependency injection khỏi chế độ xem của nó.
GetX khơng cồng kềnh. Nó có vơ số tính năng cho phép bạn bắt đầu lập trình mà
khơng cần lo lắng về bất cứ điều gì, nhưng mỗi tính năng này nằm trong các vùng
chứa riêng biệt và chỉ được khởi động sau khi sử dụng. Nếu bạn chỉ sử dụng State
Management thì sẽ chỉ có State Management được biên dịch. Nếu bạn chỉ sử dụng các
route, khơng có gì từ State Management sẽ được biên dịch.
GetX có một hệ sinh thái khổng lồ, một cộng đồng lớn, một số lượng lớn cộng tác
viên và sẽ được duy trì miễn là Flutter cịn tồn tại. GetX cũng có khả năng chạy với
cùng một mã trên Android, iOS, Web, Mac, Linux, Windows và trên máy chủ của bạn.
Bạn hồn tồn có thể sử dụng lại mã được tạo trên giao diện người dùng trên chương
trình phụ trợ của mình với Get Server.
9
Ưu điểm của Flutter
• Đa nền tảng.
• Ít phải viết các config khi tạo project mới theo cách thủ công. •
Hỗ trợ hot reload.
• Hỗ trợ tốt với nhiều IDE (Android Studio, IDE IntelliJ, VSCode). • Navigator được
tích hợp sẵn. Ta có thể tạo Route mới mà khơng cần kết nối bất kỳ thứ gì.
• Giải pháp quản lý dữ liệu được tạo sẵn.
• Sử dụng Animation dễ dàng, linh hoạt.
• Với GetX, việc xây dựng một ứng dụng từ Flutter trở nên dễ dàng và hiệu quả.
Nhược điểm của Flutter
• Có một rào cản lớn cho những người chỉ học JavaScript hoặc đến từ React Native.
Do thực tế là ngôn ngữ Dart được sử dụng với sự kế thừa, đa hình và tất cả những
thứ về OOP.
• Khơng có sự tách biệt, phân chia Styles, Templates. Cho nên khi tạo component thì
chúng ta cũng cần phải tạo các style ngay lúc đó.
• Kích thước file lớn.
• Dart và Flutter vẫn chưa thật sự hoàn thiện. Có nhiều tính năng nâng cao vẫn chưa
được hỗ trợ.
• Framework thay đổi nhanh chóng gây khó khăn cho việc duy trì mã. • Cộng
đồng Flutter vẫn chưa thực sự lớn mạnh như các cộng đồng Native.
10
2. ViPT
Thế giới ngày càng phát triển, nhu cầu của con người ngày càng nâng cao, đặc biệt là
sức khỏe. Để có thể đảm bảo sức khỏe cho cơ thể của chúng ta một cách khoa học,
chúng ta cần phải luyện tập và ăn uống điều độ. Và ViPT sẽ hỗ trợ bạn làm điều đó.
ViPT là một ứng dụng di động hỗ trợ luyện tập và dinh dưỡng. ViPT sẽ giúp bạn theo
dõi quá trình luyện tập của bạn, theo dõi lượng calories đốt cháy cũng như calories
nạp vào từ việc ăn của bạn. Ngồi ra, ViPT cịn có thể đề xuất cho bạn lộ trình để giúp
bạn đạt được mục tiêu cân nặng của mình.
ViPT cung cấp cho bạn đa dạng các bài tập và kèm theo đó là trình hỗ trợ luyện tập
cho bạn, cho phép bạn tùy chỉnh thời gian luyện tập mỗi bài, thời gian nghỉ mỗi bài,
số vòng, số bài tập mỗi vòng và nhiều hơn thế nữa.
Với hệ thống thư viện các món ăn, bạn có thể tham khảo để tự làm cho mình những
món ăn mới lạ và lành mạnh, đảm bảo cho quá trình luyện tập và ăn uống của mình.
Ngồi ra, ViPT cịn cung cấp trình theo dõi nước uống, trình theo dõi số bước chân
mỗi ngày, trình hỗ trợ Fasting (q trình khơng ăn uống), hơn nữa cịn có tính năng
thống kê dữ liệu, tính năng lưu hình ảnh q trình.
Luyện tập
Để có thể đạt được những mục tiêu cân nặng, điều mà bạn khơng thể bỏ qua đó chính
là luyện tập. Tùy vào điều kiện và nhu cầu của mỗi người khác nhau mà chế độ luyện
tập cũng như các bài tập của mỗi người cũng sẽ khác nhau. Người có nhiều thời gian
và có kinh nghiệm thì có thể sẽ thực hiện luyện tập với cường độ cao hơn những
người không thể sắp xếp nhiều thời gian cho việc luyện tập cũng như những người có
ít kinh nghiệm.
Tùy vào cân nặng của mỗi người mà mức calories đốt cháy của các bài tập sẽ khác
nhau. Không chỉ thế, tỉ lệ nạc/mỡ trong cơ thể cũng khiến cho mức calories đó khác
11
nhau ở mỗi bài tập. Chính vì thế mà việc cho phép người dùng tự tùy chỉnh các thông
số luyện tập như số bài tập, số vòng, số bài mỗi vòng, số thời gian mỗi bài tập, thời
gian nghỉ, số lượt nghỉ, chu kỳ nghỉ là cần thiết.
Dinh dưỡng
Ngoài việc cung cấp năng lượng cho cơ thể hoạt động, dinh dưỡng cịn đóng vai trị
quan trọng trong việc rèn luyện để đạt những mục tiêu quan trọng. Kết hợp với việc
luyện tập, việc dinh dưỡng sẽ giúp cân bằng lại lượng calories nạp vào cơ thể để có
thể đạt được mục tiêu calories mỗi ngày cho việc tăng/giảm cân.
Tùy vào chiều cao, cân nặng, tuổi tác, giới tính mà năng lượng cần thiết để nạp vào cơ
thể mỗi ngày của mỗi người là khác nhau.
Để có thể đề xuất lộ trình luyện tập và dinh dưỡng cho người dùng hợp lý, hệ thống
trước tiên cần tính tốn được chỉ số tên, lượng calories nạp vào cơ thể cần duy trì mỗi
ngày và calories mục tiêu dựa trên mục tiêu cân nặng của người dùng.
TDEE (Total Daily Energy Expenditure)
Chỉ số TDEE, viết tắt cho Total Daily Energy Expenditure, đại diện cho lượng năng
lượng (calories) cần thiết cho hoạt động mỗi ngày của bạn, bao gồm cả các hoạt động
tự nhiên của cơ thể và những hoạt động thường ngày như ăn, ngủ, nghỉ, chơi, làm, v.v.
Để có thể tính tốn TDEE của một cá nhân, ta có thể dùng Phương trình Mifflin St
Jeor:
TDEE = BMR * F
Với F có giá trị như sau:
• F = 1.2 đối với người ít vận động (ít hoặc khơng tập thể dục, làm cơng việc văn
phịng).
• F = 1.375 đối với người vận động nhẹ (tập thể dục nhẹ 1-3 ngày/tuần).
12
• F = 1.55 đối với người vận động vừa phải (tập thể dục vừa phải 3-5 ngày/tuần). • F
= 1.725 đối với người vận động nặng (tập thể dục vận động mạnh 6-7 ngày/tuần).
• F = 1.9 đối với người vận động rất nặng (tập thể dục vận động mạnh với cường độ
cao, công việc tay chân nặng nhọc, luyện tập 2 buổi/ngày).
Và BMR được tính như sau:
BMR = 10 x m + 6.25 x h – 5 x a + s
Trong đó:
• m: khối lượng (kg).
• h: chiều cao (cm).
• a: độ tuổi (tuổi).
• s:
o s = 5 nếu cá nhân đó là nam giới.
o s = -161 nếu cá nhân đó là nữ giới.
BMR ở đây là Basal metabolic rate (tỉ lệ trao đổi chất cơ bản). Chỉ số này cho biết
mức năng lượng (calories) tối thiểu mà cơ thể cần để đảm bảo duy trì các hoạt động
bình thường.
Cơng thức này dựa trên khối lượng, chiều tao, độ tuổi, giới tính của cá nhân, chưa
tính đến sự khác biệt trong hoạt động trao đổi chất giữa khối lượng cơ nạc và mỡ trong
cơ thể.
Đề xuất lộ trình luyện tập và dinh dưỡng
Từ chỉ số TDEE mà ta có thể tính được tự hệ thống trên, ta có thể tạo được mức
calories mục tiêu để đạt được mục tiêu cân nặng.
13
Nếu mục tiêu là tăng 0.5 kg trong 1 tuần, mức calories mục tiêu mỗi ngày sẽ bằng
TDEE + 500. Ngược lại, nếu mục tiêu là giảm 0.5 kg trong 1 tuần, mức calories mục
tiêu mỗi ngày sẽ bằng TDEE – 500.
Từ mức calories mục tiêu mỗi ngày và thông tin cơ bản của người dùng, hệ thống sẽ
đề xuất những món ăn cần thiết để đảm bảo đầy đủ thành phần dinh dưỡng mỗi ngày
cho cơ thể của người dùng. Sau đó, hệ thống sẽ tính tốn được mức calories đốt cháy
cần đạt được từ việc luyện tập để có thể cân bằng mức calories tiêu thụ
thực tế so với mức calories mục tiêu mỗi ngày. Cuối cùng, hệ thống sẽ đề xuất những
bài tập cần thực hiện mỗi ngày với những thơng số phù hợp để có thể đạt được mức
calories đốt cháy cần đạt được đã tính tốn ở trên.
Với calories đốt cháy của mỗi bài tập, ta có thể tính tốn với cơng thức sau:
Calories = (time x MET x m)/200
Trong đó:
• time: thời gian thực hiện bài tập (phút).
• m: khối lượng của người (kg).
• MET (Metabolic Equivalent of Task): hằng số tỉ lệ trao đổi chất tương đương của
hoạt động. MET là một cách để đo mức tiêu hao năng lượng của cơ thể bạn. Giá
trị MET của một hoạt động cụ thể càng cao, thì cơ bắp của bạn sẽ cần tiêu hao
nhiều năng lượng hơn để thực hiện hoạt động đó.
14
CHƯƠNG III – PHÂN TÍCH, THIẾT KẾ
1. Danh sách tính năng
Số thứ tự
Tên tính năng
Use case
Module
1
Truy cập hệ thống
Xác thực người dùng
Xác thực người dùng
2
Đăng xuất
3
Thiết lập thông tin
Cài đặt
Cài đặt
4
Xem danh sách món ăn
Quản lý món ăn
Thư viện
5
Xem danh sách bài tập
Quản lý bài tập
6
Xem danh sách bộ
luyện tập
7
Thêm bộ luyện tập
tùy chọn
8
Sửa bộ luyện tập
tùy chọn
9
Xóa bộ luyện tập
tùy chọn
10
11
Xem lượng nước
Theo dõi lượng
uống mỗi ngày
nước uống
Thay đổi ngày hiển
thị lượng nước uống
mỗi ngày
12
Xóa thẻ lượng
nước uống
13
Thêm thẻ lượng
nước uống
14
Xem danh sách lịch
sử lượng nước uống
Kế hoạch mỗi ngày
15
15
Xem số bước chân
Theo dõi bước chân
đã đi trong ngày
16
Xem quãng đường
đã đi trong ngày
17
18
Xem lượng
Theo dõi lượng
calories nạp vào
thức ăn
Thay đổi ngày hiển
thị lượng calories
nạp vào
19
Xóa thẻ calories
nạp vào
20
Thêm thẻ calories
nạp vào
21
Thêm thẻ calories
tự chọn
22
Chỉnh sửa thẻ
calories tự chọn
23
Xóa thẻ calories tự
chọn
24
Xem danh sách lịch
sử các thẻ calories
nạp vào
25
Xem thẻ calories
tiêu hao
26
Thay đổi ngày hiển
thị calories tiêu hao
Theo dõi luyện tập
27
Xóa thẻ calories
tiêu hao
16
28
Thêm thẻ calories
tiêu hao
29
Thêm thẻ calories
tiêu hao từ việc
luyện tập
30
Xem danh sách lịch
sử các thẻ calories
tiêu hao
31
32
Bắt đầu đồng hồ
Fasting (hỗ trợ q
Fasting
trình khơng ăn
Kết thúc đồng hồ
uống)
Fasting
33
Thay đổi loại đồng
hồ Fasting
34
Xem thông tin liên
quan
35
Xem biểu đồ cân nặng
36
Thay đổi thời gian
Thống kê cân nặng
biểu đồ cân nặng
37
Xem biểu đồ lượng
nước uống trong
tuần
38
Thay đổi thời gian
biểu đồ lượng nước
uống
Thống kê nước uống
Thống kê
39
Xem biểu đồ số
Thống kê bước chân
bước chân trong
tuần
40
Thay đổi thời gian
biểu đồ số bước chân
41
Xem biểu đồ
Thống kê dinh dưỡng
lượng thức ăn
trong tuần
17
42
Thay đổi thời gian
biểu đồ lượng thức ăn
43
Xem biểu đồ thống
Thống kê luyện tập
kê luyện tập trong
tuần
44
Thay đổi thời gian
biểu đồ thống kê
luyện tập
45
Xem hình ảnh quá
Hình ảnh quá trình
trình trước – sau
46
Cập nhật hình ảnh
quá trình trước – sau
47
Bắt đầu phiên tập
48
Tạm dừng phiên tập
49
Tiếp tục phiên tập
50
Bỏ qua bài tập
51
Kết thúc phiên tập
52
Xây dựng lộ trình
tập luyện và dinh
Thực hiện luyện tập
Lộ trình
Đề xuất lộ trình
Lộ trình
dưỡng
53
Cập nhật cân nặng
54
Cập nhật tiến trình
18
2. Sơ đồ use-case
2.1. Xác thực người dùng
2.1.1. Truy cập hệ thống
Tóm tắt
Người dùng truy cập vào hệ thống bằng hai phương thức là truy cập bằng tài khoản
Google và truy cập bằng tài khoản Facebook.
19
Dịng sự kiện
Dịng sự kiện chính
Hành động của tác nhân
Phản ứng của hệ thống
1. Người dùng mở ứng dụng
2. Hiển thị màn hình đăng nhập
3. Chọn phương thức truy cập
4. Liên kết tới phương thức truy cập
đã chọn
5. Thực hiện xác thực tài khoản theo
phương thức đã chọn
6. Điều hướng người dùng đến ứng
dụng
Dòng sự kiện phụ
Hành động của tác nhân
1. Xác thực của người dùng không
Phản ứng của hệ thống
2. Hiển thị thông báo truy cập thất bại
hợp lệ
Các u cầu đặc biệt
Khơng có.
Trạng thái hệ thống khi bắt đầu thực hiện use-case
Chưa truy cập vào hệ thống.
Trạng thái hệ thống sau khi thực hiện use-case
Truy cập vào hệ thống thành khơng.
Điểm mở rộng
Khơng có.
2.1.2. Đăng xuất
Tóm tắt
Người dùng đăng xuất khỏi hệ thống khi đã truy cập.
Dòng sự kiện
20
Dịng sự kiện chính
Hành động của tác nhân
1. Người dùng chọn đăng xuất
Phản ứng của hệ thống
2. Hệ thống trở về màn hình giới thiệu
Dịng sự kiện phụ
Hành động của tác nhân
Phản ứng của hệ thống
Khơng có
Các u cầu đặc biệt
Khơng có.
Trạng thái hệ thống khi bắt đầu thực hiện use-case
Đã truy cập hệ thống thành công.
Trạng thái hệ thống sau khi thực hiện use-case
Chưa truy cập hệ thống.
Điểm mở rộng
Khơng có.
2.2. Cài đặt
2.2.1. Truy cập hệ thống
Tóm tắt
Người có thể thiết lập, cài đặt các thông tin cơ bản cho việc gợi ý lộ trình tập luyện và
dinh dưỡng.
21
Dịng sự kiện
Dịng sự kiện chính
Hành động của tác nhân
1. Người dùng trả lời các câu hỏi hệ
thống đặt ra
Phản ứng của hệ thống
2. Ghi nhận thông tin và gợi ý ra lộ
trình phù hợp với nhu cầu của
người dùng
Dịng sự kiện phụ
Hành động của tác nhân
1. Thoát ứng dụng
Phản ứng của hệ thống
2. Hệ thống sẽ khởi động lại các câu
hỏi lại từ đầu khi người dùng truy
cập lại
Các u cầu đặc biệt
Khơng có.
Trạng thái hệ thống khi bắt đầu thực hiện use-case
Đã truy cập hệ thống thành công.
Trạng thái hệ thống sau khi thực hiện use-case
Trạng thái không thay đổi.
Điểm mở rộng
Khơng có.
22
2.3. Quản lý món ăn
2.3.1. Xem danh sách món ăn
Tóm tắt
Người dùng có thể xem danh sách thể loại món ăn cũng như thơng tin từng món ăn.
Dịng sự kiện
Dịng sự kiện chính
Hành động của tác nhân
1. Người dùng chọn xem thư viện
Phản ứng của hệ thống
2. Hiển thị danh mục tra cứu có chứa
danh sách các món ăn
3. Chọn xem danh sách các món ăn
4. Hiển thị danh sách các món ăn
5. Chọn một món ăn bất kỳ
6. Hiển thị thơng tin chi tiết của món
ăn
Dịng sự kiện phụ
Hành động của tác nhân
Phản ứng của hệ thống
Khơng có
Các u cầu đặc biệt
Khơng có.
Trạng thái hệ thống khi bắt đầu thực hiện use-case
Đã truy cập hệ thống thành công.
Trạng thái hệ thống sau khi thực hiện use-case
Trạng thái không thay đổi.
23
Điểm mở rộng
Khơng có.
2.4. Quản lý bài tập
2.4.1. Xem danh sách bài tập
Tóm tắt
Người dùng có thể xem danh sách các bài tập theo danh mục cũng như thông tin của
bài tập đó.
24
Dịng sự kiện
Dịng sự kiện chính
Hành động của tác nhân
1. Người dùng chọn xem thư viện
Phản ứng của hệ thống
2. Hiển thị danh mục tra cứu có chứa
danh sách các bài tập
3. Chọn xem danh sách các bài tập
4. Hiển thị danh sách các bài tập
5. Chọn một bài tập bất kỳ
6. Hiển thị thơng tin chi tiết của bài
tập
Dịng sự kiện phụ
Hành động của tác nhân
Phản ứng của hệ thống
Khơng có
Các u cầu đặc biệt
Khơng có.
Trạng thái hệ thống khi bắt đầu thực hiện use-case
Đã truy cập hệ thống thành công.
Trạng thái hệ thống sau khi thực hiện use-case
Trạng thái khơng thay đổi.
Điểm mở rộng
Khơng có.
2.4.2. Xem danh sách bộ luyện tập
Tóm tắt
Người dùng có thể xem danh sách các bộ luyện theo danh mục cũng như thông tin của
bộ luyện tập đó.