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

Đồ án ứng dụng tập thể dục và chăm sóc sức khỏe tại nhà

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 (1.7 MB, 47 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
ỨNG DỤNG TẬP THỂ DỤC
VÀ CHĂM SÓC SỨC KHỎE TẠI NHÀ
Giảng viên hướng dẫn: Thái Thụy Hàn Uyển

Sinh viên thực hiện
20521318 - Huỳnh Trung Hiếu
20520941 - Lưu Kim Triều

1


LỜI CẢM ƠN
Trước khi bước vào phần báo cáo đồ án, nhóm chúng em trân trọng
gửi lời cảm ơn đến cô Thái Thụy Hàn Uyển đã tạo điều kiện cho chúng
em có cơ hội được thực hiện đồ án và đã nhiệt tình góp ý, giúp đỡ chúng
em trên lớp, cung cấp cho chúng em rất nhiều kiến thức và cả kinh
nghiệm hữu ích.
Dù vậy, trong q trình học tập, cũng như làm đồ án vì thời gian và
kiến thức có hạn nên nhóm em khơng thể tránh khỏi những thiếu sót.
Nhóm em mong nhận được sự thơng cảm, đóng góp và xây dựng từ cơ để
nhóm em có thêm nhiều kiến thức có ích và ngày càng hồn thiện hơn
nữa.
Nhóm thực hiện
Trường Đại học Cơng nghệ Thơng tin, tháng 6 năm 2023

2




MỤC LỤC

Chương 1: Mở đầu .................................................................................................................................. 5
1.1 Giới thiệu đề tài và mục đích ........................................................................................................5
1.2 Đối tượng sử dụng ......................................................................................................................... 5
1.3 Mục tiêu đề tài ............................................................................................................................... 5
1.4 Các chức năng chính ..................................................................................................................... 6
Chương 2: Tổng quan ............................................................................................................................. 7
2.1 Mơi trường phát triển (IDE): Android Studio ........................................................................... 7
2.2 Ngôn ngữ lập trình: Kotlin ........................................................................................................... 8
2.2.1. Kotlin là gì ..............................................................................................................................8
2.2.2. Ưu và nhược điểm của Kotlin .............................................................................................. 8
2.3. Firebase ......................................................................................................................................... 9
2.3.1. Firebase là gì? ...................................................................................................................... 10
2.3.2. Firebase Authentication ......................................................................................................10
2.3.3 Firebase firestore ..................................................................................................................10
2.3.4 Firebase Storage ................................................................................................................... 10
2.4 Công cụ thiết kế giao diện: Figma ............................................................................................. 11
2.4.1. Figma là gì? ..........................................................................................................................11
2.4.2. Lý do chọn Figma ................................................................................................................11
2.5

Yêu cầu chi tiết chức năng .................................................................................................. 12

Chương 3: Xây dựng hệ thống ............................................................................................................. 14
3.1.
3.1.1.


Xây dựng kiến trúc hệ thống .............................................................................................. 14
Công nghệ sử dụng .......................................................................................................... 14

3.2. Kiến trúc hệ thống: Mơ hình Client-Server .............................................................................15
3.3

. Kiến trúc ứng dụng: Mơ hình MVVM ............................................................................ 15

3.3.

Sơ đồ Use-case ...................................................................................................................... 16

3.5.

Mơ tả Use-case ......................................................................................................................16

3.6. Đặc tả Use-case ........................................................................................................................... 17
3.6.1. Login .....................................................................................................................................17
3.6.2. Sign-up ..................................................................................................................................18
3.6.3. Sign-in Anonymously .......................................................................................................... 18
3.6.4. Sign-out ................................................................................................................................ 19
3.6.5. Do work-out. ........................................................................................................................ 20
3.6.6. Check schedule .................................................................................................................... 20
3.6.7. Custom Set ........................................................................................................................... 21
3.6.8. View Report ......................................................................................................................... 22
3.6.9. Update Height&Weight ...................................................................................................... 22
3


3.7. Mơ tả màn hình .......................................................................................................................... 23

3.7.1. Màn hình bắt đầu ................................................................................................................ 23
3.7.2. Màn hình đăng nhập ........................................................................................................... 24
3.7.3. Màn hình đăng ký ............................................................................................................... 25
3.7.4. Màn hình chính ....................................................................................................................26
3.7.5. Màn hình xem Lịch sử ........................................................................................................ 27
3.7.6. Màn hình chi tiết set tập ..................................................................................................... 28
3.7.7. Màn hình mơ tả bài tập .......................................................................................................29
3.7.8. Màn hình bắt đầu tập ..........................................................................................................30
3.7.9. Màn hình nghỉ giữa hiệp .....................................................................................................31
3.7.10. Màn hình sau khi tập xong ............................................................................................... 32
3.7.11. Màn hình custom set tập ...................................................................................................33
3.7.12. Màn hình đặt tên set tập ................................................................................................... 34
3.7.13. Màn hình các exercises ..................................................................................................... 35
3.7.14. Màn hình filter ...................................................................................................................36
3.7.15. Màn hình thêm exercises .................................................................................................. 37
3.7.16. Màn hình xác nhận tạo set tập mới ................................................................................. 38
3.7.17. Màn hình chọn avatar cho set mới tạo ............................................................................ 39
3.7.18. Màn hình Report ............................................................................................................... 40
3.7.19. Màn hình update chiều cao, cân nặng ............................................................................. 41
3.7.20. Màn hình Log out ..............................................................................................................42
3.8. Sơ đồ lớp ......................................................................................................................................43
3.9. Sơ đồ hoạt động .......................................................................................................................... 44
3.9.1. Do Workout ......................................................................................................................... 44
3.9.2. Custom Set ........................................................................................................................... 45
3.9.3. View Report ......................................................................................................................... 46
Chương 4: Kết luận ...............................................................................................................................46
4.1. Kết quả đạt được ........................................................................................................................ 46
4.2. Ưu điểm ....................................................................................................................................... 47
4.3 Nhược điểm và giải pháp ............................................................................................................ 47
TÀI LIỆU THAM KHẢO .................................................................................................................... 47


4


Chương 1: Mở đầu

1.1 Giới thiệu đề tài và mục đích

Hiện nay, các cơng nghệ tiên tiến ngày càng phát triển mạnh mẽ và
được ứng dụng ngày càng nhiều vào lĩnh vực kinh tế cũng như đời sống
thường nhật của con người. Một điểm tiêu biểu trong việc phát triển các
cơng nghệ đó phải kể đến việc ứng dụng cơng nghệ thơng tin vào hầu hết
các hoạt động. Nhờ đó, các cơng việc được thực hiện nhanh chóng, chính
xác và đạt kết quả cao hơn rất nhiều.
Khi xã hội ngày càng phát triển, mức sống của người dân được nâng
cao, thu nhập kinh tế càng được cải thiện thì chiếc điện thoại thơng minh
khơng cịn xa lạ với mọi người nữa mà ngược lại nó là một vật dụng
khơng thể thiếu đối với người dân hiện nay. Hầu hết mỗi người đều trang
bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của
mình. Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc
muốn tập thể dục nhưng phải cất cơng đến phịng tập có thể sẽ mất thời
gian đối với một số người.
Cùng với các lý do đã nêu trên, nhóm đồ án đã quyết định chọn đề tài
"Ứng dụng tập thể dục và chăm sóc sức khỏe tại nhà”. Người dùng chỉ
cần các thao tác đơn giản trên điện thoại di động là có thể tập thế dục mà
khơng phải tốn cơng sức để đến phịng tập.
1.2 Đối tượng sử dụng
Tất cả mọi người trên 16 tuổi đều có thể tải ứng dụng và thực hành
theo các bài tập một cách dễ dàng tùy theo mục đích của họ nhưng khơng
có thời gian để đến các phịng tập có dụng cụ như Gym.


1.3 Mục tiêu đề tài
Lý thuyết
 Nghiên cứu về Android Native và ngơn ngữ lập trình Kotlin
 Nghiên cứu và sử dụng dịch vụ cơ sở dữ liệu trên nền tảng đám
mây – Firebase
5


Mục tiêu
 Người dùng có thể sử dụng ứng dụng một cách dễ dàng
 Ứng dụng sẽ hỗ trợ từ cơ bản đến đầy đủ chức năng của một ứng
dụng tập thể dục
 Ứng dụng có giao diện thân thiện, dễ sử dụng
1.4 Các chức năng chính
Tên chức năng
Login

Mơ tả
Cho phép người dùng sử dụng tài khoản có sẵn hoặc
liên kết với tài khoản Google để đăng nhập vào ứng
dụng.
Sign-up
Hỗ trợ tào tài khoản mới hoặc sử dụng tài khoản
Google.
+ Tài khoản của người dùng sẽ được lưu trữ vào
Firebase.
Show
exercises Hiển thị Danh sách các category theo level
and information

(Beginner, Intermediate, Advanced, Challenge), Số
KCAL đã tiêu thụ, thời gian đã tập, tổng số bài đã
tập, Week Goal.+ Với mỗi level sẽ có các mục riêng
biệt theo body như bụng, lưng, ngực, chân, ….
Search skills
Tìm Kiếm động tác, kỹ thuật.
Build custom set
Xây dựng các set bài tập cho riêng bản thân
Report
Thống kê lịch sử tập luyện.Tính BMI và hiển thị
biểu đồ tăng giảm BMI theo thời gianThống kê
lượng KCAL, số WORKOUT, số phút đã tập và các
ngày đã tập trong tháng.
Training
+ Bắt đầu đếm ngược sau khi Start workout với thời
gian tùy theo từng bài tập (Có thể pause, skip, bật
tắt âm thanh count-down.)+ Sau khi hết count-down
sẽ count-down tiếp thời gian nghỉ giữa hiệp (Có thể
tăng giảm hoặc skip)
Setting
Hỗ trợ người dùng các cài đặt liên quan đến tài
khoản, thông tin cá nhân, chỉ số cân nặng.
Week Goal
Hiển thị lịch và các bài tập đã tập trong 1 tuần.

6


Chương 2: Tổng quan


2.1 Môi trường phát triển (IDE): Android Studio

Android Studio là Mơi trường phát triển tích hợp (IDE) chính thức để
phát triển ứng dụng Android. Nhờ có cơng cụ cho nhà phát triển và trình
soạn thảo mã mạnh mẽ của IntelliJ IDEA, Android Studio cung cấp thêm
nhiều tính năng giúp nâng cao năng suất khi xây dựng ứng dụng Android,
chẳng hạn như:
 Một hệ thống xây dựng linh hoạt dựa trên Gradle
 Một trình mơ phỏng nhanh và nhiều tính năng
 Một mơi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị
Android
 Tính năng Áp dụng các thay đổi để đẩy các thay đổi về mã và tài
nguyên vào ứng dụng đang chạy mà không cần khởi động lại ứng
dụng
7


 Mã mẫu và tích hợp GitHub để giúp bạn xây dựng các tính năng
ứng dụng phổ biến cũng như nhập mã mẫu
 Đa dạng khung và công cụ thử nghiệm
 Cơng cụ tìm lỗi mã nguồn (lint) để nắm bắt hiệu suất, khả năng
hữu dụng, khả năng tương thích với phiên bản và các vấn đề khác
 Hỗ trợ C++ và NDK
 Tích hợp sẵn tính năng hỗ trợ Google Cloud Platform, giúp dễ
dàng tích hợp Google Cloud Messaging và App Engine
2.2 Ngơn ngữ lập trình: Kotlin

2.2.1. Kotlin là gì
Kotlin là một ngơn ngữ lập trình được xây dựng và phát triển bởi
JetBrains, được chính thức trình làng trên thị trường vào năm 2011. Sự ra

đời của Kotlin nhằm phục vụ cho môi trường phát triển trong môi trường
JMC, Android, JavaScript và Native.
Đây cũng là một ngôn ngữ hữu ích thường dùng trong việc xây dựng
ứng dụng web, cùng các thiết bị di động khác, bao gồm Android App,
Mobile App, Server-side web và Client-side with JavaScript và Data
Science.
Tuy chỉ mới vừa ra mắt, nhưng Kotlin được cho là một đối đáng gờm
và có thể sốn ngơi Java bất cứ lúc nào, đặc biệt là trong lập trình
Android.
2.2.2. Ưu và nhược điểm của Kotlin
- Ưu điểm
+ Có thể thay thế cho Java: Một trong những thế mạnh lớn
nhất của Kotlin như là một ứng viên để thay thế cho Java là
khả năng tương tác rất tốt giữa Java và Kotlin - có thể thậm
chí có code Java và Kotlin tồn tại song song trong cùng dự án,
và tất cả mọi thứ vẫn sẽ được biên dịch một cách hoàn hảo

8


+ Dễ học: Kotlin nhằm mục đích là nâng cao hơn so với Java,
chứ khơng phải hồn tồn viết lại, rất nhiều các kỹ năng đã có
trong việc code Java vẫn được áp dụng đối với dự án Kotlin.
+ Android Studio hỗ trợ: Kotlin được phát triển bởi
JetBrains, công ty đứng sau IntelliJ—IDE mà Android Studio
dựa trên nó. Khơng có gì bất ngờ, rằng Android Studio hỗ trợ
tốt cho Kotlin.
- Nhược điểm
+ Thêm thời gian chạy Runtime:
Thư viện tiêu chuẩn của Kotlin và runtime sẽ làm tăng kích

thước tập tin .apk. Mặc dù nó chỉ tương đương với khoảng
800KB, nhưng nếu ứng dụng đã lớn sẵn rồi thì 800KB phụ có
thể làm nó phình to và khiến người dùng nghĩ lại trước khi tải
về ứng dụng.
+ Không hẳn là code dễ đọc đối với beginner: Mặc dù cú pháp
ngắn gọn của Kotlin là một trong những thế mạnh lớn nhất của
ngơn ngữ, nhưng có thể thấy một số khó khăn ban đầu, đơn
giản bởi vì có rất nhiều thứ đang được thực hiện trong
một số
lượng nhỏ code đó.
2.3. Firebase

9


2.3.1. Firebase là gì?
Firebase là một nền tảng mà Google cung cấp để phát triển các ứng
dụng di động và trang web, hỗ trợ Developer trong việc đơn giản hóa
các thao tác với dữ liệu và không cần tác động tới backend hay server.
2.3.2. Firebase Authentication
Hoạt động kế tiếp của Firebase là tạo lập quy trình xác thực người
dùng thơng qua các phương tiện như Google, Email, GitHub,
Facebook, Twitter và xác thực nặc danh đối với các ứng dụng. Việc
xác thực giúp bảo vệ an tồn dữ liệu về thơng tin cá nhân của người
dùng mạng.
2.3.3 Firebase firestore
Cloud Firestore là một Database linh hoạt và dễ mở rộng cho mobile,
web và server được phát triển từ Firebase and Google Cloud Platform.
Cũng giống như Firebase realtime database Cloud Firestore giúp cho
việc đồng bộ dữ liệu giữa các ứng dụng phía client một các nhanh

chóng (Realtime) và hộ trợ lưu offline data trong ứng dụng.
2.3.4 Firebase Storage
Firebase Storage là dịch vụ lưu trữ đối tượng do Google cung cấp và
chủ yếu được dùng cho dữ liệu do người dùng tạo như âm thanh, hình
ảnh và video. Nó cung cấp một cách đơn giản để tải lên và tải xuống
các file một cách an tồn chỉ với một vài dịng code.
- Ưu điểm
 Tốc độ cao: Firebase hỗ trợ phát triển ứng dụng với tốc độ nhanh
chóng, giảm bớt thời gian phát triển và tiếp thị ứng dụng
 Đơn giản, dễ dàng trong sử dụng: Người dùng có thể tạo tài khoản
Firebase bằng tài khoản Google và cũng như sử dụng nền tảng này
trong phát triển ứng dụng một cách dễ dàng
 Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ
trợ phát triển web, bạn có thể chọn database Firestore hoặc
Realtime theo ý muốn
 Là một phần của Google: Firebase đã được mua lại và hiện tại đang
là một phần của Google. Nó khai thác triệt để sức mạnh và các dịch
vụ sẵn có của Google
 Tập trung phát triển chủ yếu về giao diện người dùng: Firebase cho
phép lập trình viên tập trung chủ yếu vào phát triển phần giao diện
người dùng nhờ kho Backend mẫu phong phú đa dạng
 Khơng có máy chủ: Điều này giúp Firebase có khả năng tối ưu hóa
về hiệu suất làm việc thông qua mở rộng cụm database

10


 Học máy: Firebase cung cấp học máy cho lập trình viên, hỗ trợ tối
đa cho việc phát triển ứng dụng
 Tạo ra lưu lượng truy cập: Với khả năng hỗ trợ tạo lập các chỉ mục,

Firebase giúp nâng cao thứ hạng của ứng dụng trên bảng xếp hạng
Google, từ đó tăng lượt traffic
 Theo dõi lỗi: Firebase là cơng cụ phát triển, khắc phục lỗi tuyệt vời
 Sao lưu: Firebase sao lưu thường xuyên, giúp đảm bảo tính sẵn có
và bảo mật thơng tin cho dữ liệu
- Nhược điểm
 Không phải mã nguồn mở
 Chỉ hoạt động trên CSDL NoSQL
 Lập trình viên khơng được truy cập vào mã nguồn
 Truy vấn chậm
 Phạm vi hoạt động bị hạn chế ở một vài quốc gia
 Một vài dịch vụ cần trả phí, chi phí dành cho Firebase tương đối
lớn và không ổn định
 Thiếu Dedicated Servers và cả hợp đồng doanh nghiệp
2.4 Công cụ thiết kế giao diện: Figma

2.4.1. Figma là gì?
Figma là một ứng dụng gồm nhiều cơng cụ thiết kế mạnh mẽ trên nền
tảng website. Với Figma, bạn có thể sáng tạo khơng giới hạn giao
diện
người dùng (UI/UX), thiết kế tạo mẫu, tạo bài đăng trên các
mạng xã
hội và nhiều dự án thiết kế khác.
2.4.2. Lý do chọn Figma
1. Khả năng tương thích cao
Là một phần mềm trên nền tảng website, Figma có thể được truy
cập và sử dụng trên hầu hết các hệ điều hành phổ biến hiện nay
như Windows, MacOS hay thậm chí là Linux, chỉ cần thiết bị của
bạn được kết nối internet.


11


Hiện tại, Figma cịn có các phiên bản ứng dụng trên máy tính và
điện thoại để người dùng có thể sáng tạo hay theo dõi các dự án ở
bất cứ nơi đâu.
2. Tính cộng tác cao
Ưu điểm hàng đầu của Figma phải kể đến tính cộng tác trong thời
gian thực. Với Figma, làm việc nhóm từ xa trở nên dễ dàng khi
nó cho phép những người khác trong dự án có thể cộng tác về
thiết kế, cung cấp phản hồi, kiểm tra tiến độ công việc hoặc gắn
cờ các vấn đề có thể xảy ra theo thời gian thực.
3. Trang bị nhiều công cụ plugin mạnh mẽ
Kho plugin khổng lồ và cực kỳ hữu ích chỉ có ở Figma sẽ giúp
khắc phục được những lỗi nhỏ và tăng hiệu suất làm việc. Việc
quản lý màu sắc, nội dung hình ảnh hay hoạt ảnh đều trở nên dễ
dàng hơn bao giờ hết.
4. Thiết kế nhiều layout trong một sản phẩm
Tính năng quản lý nhiều artboard cùng lúc cũng được tích hợp
trên Figma. Với tính năng này, bạn có thể sáng tạo nhiều layout
với các kích thước khác nhau trên cùng một sản phẩm mà không
cần phải tạo thêm tệp mới.
5. Xuất được đa dạng file ảnh cực sắc nét
Tương tự như Illustrator, Figma thiết kế hình ảnh dưới dạng
vector nên chất lượng của hình ảnh sẽ khơng bị giảm khi bạn thay
đổi kích thước của chúng. Hình ảnh xuất ra cũng sẽ giữ được độ
sắc nét với nhiều định dạng khác nhau như PNG, SVG, JPG hay
thậm chí là PDF.
6. Hỗ trợ lưu trữ đám mây
Figma sử dụng dịch vụ đám mây để lưu trữ và chỉnh sửa dữ liệu,

điều này tương tự như khi bạn thay đổi nội dung trên Google
Docs. Ta sẽ khơng cịn phải lo lắng về việc ổ cứng đầy dung
lượng hay quên sao lưu vì Figma sẽ tự động thực hiện.
2.5 Yêu cầu chi tiết chức năng
ST Tên chức năng
Yêu cầu chức năng
12

Yêu cầu phi chức năng


T
1

2

3

4

5

6

Login

- Cho phép sử dụng tài khoản
có sẵn để đăng nhập hoặc liên
kết với tài khoản Google.
- Báo lỗi khi người dùng nhập

sai email format hoặc sai mật
khẩu
Signup
- Cho phép đăng ký tài khoản
mới bằng email và mật khẩu
- Hổ trợ sử dụng tài khoản
Google
- Báo lỗi với
+email sai format
+email đã được sử dụng
+password phải trên 8 ký tự
+confirm password không
đúng
+các trường bị bỏ trống
Show exercises - Hiển thị những thông tin của
and information người dùng như: số KCAL đã
tiêu thụ, thời gian đã tập, tổng
số bài đã tập, Week Goal.
- Hiển thị các Category theo
level
như:
Beginner,
Intermediate,
Advanced,
Challenge.
+Mỗi level sẽ có các set bài
tập phát triển từng bộ phận
trên cơ thể như: cơ tay, cơ
ngực, cơ bụng, cơ chân, cơ
vai.

Search skills
-Tìm kiếm các động tác, kỹ
thuật
-Đề xuất các tìm kiếm các bài
tập phát triển các nhóm cơ
hoặc được nhiều lượt tìm
kiếm.
Build your own -Custom các bài tập thành set
sets
bài tập yêu thích của người
dùng
-Hiển thị danh sách các set
bài tập người dùng tự tạo
Report
-Thống kê lịch sử tập luyện,
13

- Hiển thị UI chờ cho
người dùng khi chờ hệ
thống xác thực.
- Giao diện đẹp
-Thời gian chờ đăng ký
dưới 5s.
- Giao diện đẹp

- Bố cục giao diện rõ
ràng, dễ hiểu
- Các bài tập có hình ảnh
minh họa trực quan, nổi
bật, hấp dẫn


- Giao diện đơn giản, dễ
hiểu.

- Giao diện dễ sử dụng,
tìm kiếm và xây dựng set
bài tập hiệu quả
- Giao diện đơn giản, dễ


các bài tập đã hồn thành

hiểu.

-Tính BMI và hiển thị biểu đồ
tăng giảm BMI theo thời gian

7

8

Training

Setting

-Thống kê lượng KCAL, số
bài tập, số phút đã tập và các
ngày đã tập trong tháng.
-Chọn bài tập mình muốn và -Bố cục giao diện rõ ràng,
bắt đầu tập

trực quan để người dùng
dễ dàng theo dõi
+ Hiển thị animation động
tác, kỹ thuật và bắt đầu đếm
ngược sau khi Start workout
với thời gian tùy theo từng
bài tập (Có thể pause, skip,
bật tắt âm thanh count-down.)
+ Sau khi hết count-down sẽ
count-down tiếp thời gian
nghỉ giữa hiệp (Có thể tăng
hoặc skip).
Hỗ trợ người dùng các cài đặt - Giao diện đơn giản, dễ
liên quan đến tài khoản, thông hiểu.
tin cá nhân, chỉ số cân nặng.

Chương 3: Xây dựng hệ thống
3.1. Xây dựng kiến trúc hệ thống
3.1.1. Công nghệ sử dụng
 Ngôn ngữ: Kotlin
 UI Design tool: Figma
 Database: Firebase
 IDE: Android Studio
 Kiến trúc ứng dụng: MVVM

14


3.2. Kiến trúc hệ thống: Mơ hình Client-Server
- Lớp Client: Hiển thị giao diện người dùng, thông qua kết nối Internet để

kết nối đến cơ sở dữ liệu quản lý thư viện. Là nơi diễn ra các tương tác
của người dùng với chương trình như nhập, các thao tác truy xuất dữ liệu.
- Lớp Server: Quản lý và chứa toàn bộ dữ liệu của phần mềm. Đồng thời
xử lý các yêu cầu nhập/xuất được gửi xuống từ lớp Client. Ứng dụng
được dùng làm lớp Server là Firebase.

3.3. Kiến trúc ứng dụng: Mơ hình MVVM

Ứng dụng sử dụng mơ hình MVVM được hỗ trợ bởi thư viện Android
Jetpack.


Model: Trong MVVM thì model sẽ thể hiện cho dữ liệu, trạng thái
của dối tượng. Nó khơng có ràng buộc với View hoặc Controller vì
vậy có thể được xử dụng lại dễ dàng

15




View: Liên kết các biến quan sát và hành động bởi ViewModel.
Quan hệ giữa ViewModel và View là 1-n, nghĩa là nhiều View có
thể liên kết với 1 ViewModel



ViewModel: Chứa các model và chuẩn bị các dữ liệu quan sát cho
View. Nó cung cấp các móc để truyền dữ liệu từ View sang Model.
Một điều cần phải ghi nhớ là ViewModel sẽ không ràng buộc vào

View

3.3. Sơ đồ Use-case

3.5. Mô tả Use-case
STT
1

Tên Use-case
Login

2
3

Sign-up
Sign-in
Anonymously
Sign-out

4

Mô tả
Người dùng đăng nhập bằng tài
khoản đã tạo
Người dùng tạo tài khoản mới
Người dùng đăng nhập bằng chế độ
ẩn danh
Đăng xuất khỏi tài khoản hiện tại
16



5
6

Do Workout
Check Schedule

7

Custom Set

8

View Report

9

Update
Height&Weight

Chọn set bài tập và bắt đầu tập
Chọn ngày và xem các chỉ số, bài
tập đã tập của ngày hơm đó
Người dùng tự tạo các set bài tập
của riêng mình
Người dùng xem thống kê cân nặng
trung bình hàng tháng và chỉ số
BMI hiện tại
Người dùng cập nhật các chỉ số
chiều cao cân nặng hiện tại


3.6. Đặc tả Use-case
3.6.1. Login
Description
Flow of event

Basic flow

Use case bắt đầu khi người dùng mở
app mà chưa đăng nhập
1. Người dùng mở app
2. App kiểm tra xem đã được đăng
nhập trước đó chưa
3. Nếu rồi thì chuyển đến màn hình
Home với tài khoản đã đăng nhập
4. Nếu chưa thì app yêu cầu người
dùng đăng nhập hoặc tạo tài khoản mới
5. Người dùng có thể đăng nhập bằng
tài khoản đã có hoặc với tư cách là
khách, hoặc tạo tài khoản mới
6. Người dùng chọn đăng nhập và điền
vào tài khoản mật khẩu
7. Hệ thống kiểm tra thông tin đăng
nhập

8. Nếu hợp lệ sẽ chuyển đến màn hình
Home, nếu khơng sẽ thơng báo và u
cầu người dùng nhập lại
Alternative Khơng có
flow

Pre-condition
Khơng có
Post-condition
Chuyển đến màn hình Home của tài
khoản đăng nhập hợp lệ
Special Requirement
Khơng có
17


3.6.2. Sign-up
Description
Flow of event

Basic flow

Use case bắt đầu khi người dùng click
vào dòng chữ Sign-up
1. Người dùng mở app
2. App kiểm tra xem đã được đăng
nhập trước đó chưa
3. Nếu rồi thì chuyển đến màn hình
Home với tài khoản đã đăng nhập
4. Nếu chưa thì app yêu cầu người
dùng đăng nhập hoặc tạo tài khoản mới
5. Người dùng có thể đăng nhập bằng
tài khoản đã có hoặc với tư cách là
khách, hoặc tạo tài khoản mới
6. Người dùng chọn Sign-up
7. Người dùng điền vào các thông tin

để tiến hành tạo tài khoản mới
8. Hệ thống kiểm tra thông tin vừa
nhập

8. Nếu thông tin hợp lệ, hệ thống cập
nhật thông tin, đăng nhập và chuyển
đến màn hình Home. Nếu khơng sẽ
u cầu người dùng nhập lại
Alternative Khơng có
flow
Pre-condition
Khơng có
Post-condition
Chuyển đến màn hình Home bằng tài
khoản vừa tạo
Special Requirement
Khơng có

3.6.3. Sign-in Anonymously
Description

Use case bắt đầu khi người dùng click
vào chữ sign-in anonymous
18


Flow of event

Basic flow


1. Người dùng mở app
2. App kiểm tra xem đã được đăng
nhập trước đó chưa
3. Nếu rồi thì chuyển đến màn hình
Home với tài khoản đã đăng nhập
4. Nếu chưa thì app yêu cầu người
dùng đăng nhập hoặc tạo tài khoản mới
5. Người dùng có thể đăng nhập bằng
tài khoản đã có hoặc với tư cách là
khách, hoặc tạo tài khoản mới
6. Người dùng chọn sign-in
anonymously
7. Hệ thống tự tạo tài khoản không cần
email, đăng nhập và chuyển đến màn
hình Home

Alternative Khơng có
flow
Pre-condition
Khơng có
Post-condition
Chuyển đến màn hình Home bằng tài
khoản vừa tạo
Special Requirement
Khơng có

3.6.4. Sign-out
Description
Flow of event


Basic flow

Use case bắt đầu khi người dùng click
vào nút sign-out
1. Người dùng mở app và hệ thống đã
được đăng nhập
2. Người dùng chuyển đến màn hình
Profile
3. Người dùng click nào nút Sign-out
4. Hệ thống hiển thị hộp thoại để xác
nhận

Pre-condition

5. Người dùng chọn Yes, hệ thống
đăng xuất khỏi tài khoản hiện tại
Alternative Khơng có
flow
Ứng dụng đã được đăng nhập
19


Post-condition

Hệ thống đăng xuất tài khoản hiện tại
và chuyển đến màn hình Login
Khơng có

Special Requirement


3.6.5. Do work-out.
Description
Flow of event

Basic flow

Use case bắt đầu sau khi người dùng
đã đăng nhập và chọn set bài tập
1. Người dùng đăng nhập vào app
2. Người dùng click chọn vào nút
View more ở set bài tập muốn tập
3. Chuyển đến màn hình chi tiết
4. Người dùng click vào nút Start
Workout để bắt đầu tập
5. App hiển thị lần lượt từng bài tập
đến khi người dùng hoàn thành set tập
6. Hiển thị chỉ số bài tập, calories và
thời gian thực hiện set tập

7. Người dùng có thể chọn tập lại set
hoặc chuyển đến màn hình Home
Alternative Khơng có
flow
Pre-condition
App đã được đăng nhập bằng tài khoản
hợp lệ
Post-condition
Chuyển về màn hình Home và cập
nhật chỉ số calories trong ngày
Special Requirement

Khơng có
3.6.6. Check schedule
Description
Flow of event

Basic flow

Use case bắt đầu khi người dùng mở
app đã được đăng nhập và click vào
nút Check Schedule
1. Người dùng mở app đã được đăng
nhập bằng tài khoản hợp lệ
2. Chuyển đến màn hình Home, click
vào nút Check Schedule
3. Chuyển đến màn hình Calendar

20


4. Người dùng chọn ngày muốn xem
5. App chuyển đến màn hình History
và hiển thị các chỉ số bài tập, calories,
thời gian và các set đã tập của ngày
hơm đó.
Alternative Khơng có
flow
Pre-condition
App đã được đăng nhập bằng tài khoản
hợp lệ
Post-condition

Hiển thị đúng các chỉ số và các set đã
tập của ngày được chọn
Special Requirement
Khơng có

3.6.7. Custom Set
Description
Flow of event

Basic flow

Use case bắt đầu khi người dùng mở
app đã được đăng nhập và thực hiện
custom set
1. Người dùng mở app đã được đăng
nhập bằng tài khoản hợp lệ
2. Chuyển đến màn hình Custom, click
vào nút Create New
3. Người dùng đặt tên cho set mới
4. Chuyển đến màn hình hiển thị tất cả
bài tập
5. Người dùng chọn bài tập mà mình
muốn thêm vào set mới
6. Người dùng xác nhận Create New
Set để hồn thành tạo set mới. Sau đó
app chuyển về màn hình custom với
set mới đã được tạo

Alternative Khơng có
flow

Pre-condition
App đã được đăng nhập bằng tài khoản
hợp lệ
Post-condition
Trờ về màn hình Custom với set mới
đã được thêm
Special Requirement
Khơng có

21


3.6.8. View Report
Description
Flow of event

Basic flow

Use case bắt đầu khi người dùng mở
app đã được đăng nhập và chọn tab
Report
1. Người dùng mở app đã được đăng
nhập bằng tài khoản hợp lệ
2. Người dùng chuyển đến màn hình
Report bằng cách ấn vào nút trên thanh
bottom bar
3. App hiển thị đồ thị thống kê chỉ số
cân nặng hàng tháng, số cân nặng hiện
tại, số cân cao nhất, số cân thấp nhất
và thanh chỉ số BMI


Alternative Khơng có
flow
Pre-condition
App đã được đăng nhập bằng tài khoản
hợp lệ
Post-condition
Hiển thị màn hình Report
Special Requirement
Khơng có

3.6.9. Update Height&Weight
Description
Flow of event

Basic flow

Use case bắt đầu khi người dùng mở
app đã được đăng nhập và chọn tab
Report
1. Người dùng mở app đã được đăng
nhập bằng tài khoản hợp lệ
2. Người dùng chuyển đến màn hình
Report bằng cách ấn vào nút trên thanh
bottom bar
3. Người dùng nhấn vào nút “+” để cập
nhật chỉ số chiều cao cân nặng hiện tại
4. App hiển thị hộp thoại để nhập các
chỉ số
5. Người dùng nhập chiều cao, cân

nặng hiện tại của mình

Pre-condition

Alternative Khơng có
flow
App đã được đăng nhập bằng tài khoản
hợp lệ
22


Post-condition

Hiển thị màn hình Report với các chỉ
số cân nặng và BMI đã được cập nhật,
tính tốn lại
Khơng có

Special Requirement

3.7. Mơ tả màn hình
3.7.1. Màn hình bắt đầu

STT
1

Biến cố
Chọn Lets Start

23


Xử lý
Chuyển sang màn hình đăng
nhập


3.7.2. Màn hình đăng nhập

STT
1
2
3
4
5

Biến cố
Nhập email
Nhập password
Chọn Login

Xử lý
Hiển thị email
Hiển thị password được che
Kiểm tra email, mật khẩu và
chuyển đến màn hình chính
Chọn Continue Đăng nhập bằng tài khoản
with Google
Google
Chọn use app as Tự đăng nhập bằng tài khoản tự
guest

tạo

24


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

STT
1
2
3
4
5
6
7
8
9
10
11
12

Biến cố
Nhập First Name
Nhập Last Name
Nhập email
Nhập password
Nhập
Confirm
Password
Chọn Sign up


Xử lý
Hiển thị First Name
Hiển thị Last Name
Hiển thị email
Hiển thị password được che
Hiển thị password được che

Tạo tài khoản mới, chuyển đến
màn hình nhập tuổi, chiều cao,
cân nặng
Chọn Continue Đăng nhập bằng tài khoản
with Google
Google
Chọn Login here Trở về màn hình đăng nhập
Nhập tuổi
Hiển thị tuổi
Nhập cân nặng
Hiển thị cân nặng
Nhập chiều cao
Hiển thị chiều cao
Chọn Next
Hồn thành việc tạo tài khoản,
chuyển đến màn hình chính

25


×