Thống kê luyện tập

Một phần của tài liệu Tìm hiểu flutter và xây dựng ứng dụng hỗ trợ tập thể dục (báo cáo cuối kì đồ án 1) (Trang 68 - 109)

1. Danh sách tính năng

2.14. Thống kê luyện tập

2.14.1. Xem biểu đồ thống kê luyện tập trong tuần

Tóm tắt

Người dùng có thể theo dõi lượng calo tiêu hao do tập luyện theo tuần (theo thời gian).

Dòng sự kiện

Các yêu cầu đặc biệt

Khoảng thời gian mặc định là trong tuần hiện tại.

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 chọn xem mục Cá

nhân

2. Hiển thị màn hình chứa biểu đồ theo dõi lượng calories tập luyện theo tuầ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ó

68

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.14.2. Thay đổi thời gian biểu đồ thống kê luyện tập

Tóm tắt

Người dùng có thể thay đổi thời gian hiển thị lượng calories tập luyện của biều đồ.

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 chọn xem mục Cá

nhân

2. Hiển thị màn hình chứa biểu đồ theo dõi lượng calories tập luyện theo tuần

3. Chọn thay đổi thời gian xem 4. Hiển thị công cụ lựa chọn khoảng thời gian

5. Xác nhận 6. Hiển thị lượng calories tập luyện theo ngày trong khoảng thời gian được chọ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ó

69

Các yêu cầu đặc biệt

Khoảng thời gian mặc định là trong tuần hiện tại.

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.15. Hình ảnh quá trình

2.15.1. Xem hình ảnh quá trình trước – sau

Tóm tắt

70

Dòng sự kiện

Các yê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.15.2. Cập nhật hình ảnh quá trình trước – sau

Tóm tắt

Người dùng có thể cập nhật hình ảnh trước và sau trong quá trình sử dụng ứng dụng.

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 chọn xem mục Cá

nhân

2. Hiển thị màn hình chứa công cụ hiển thị hình ảnh trước - sau của người dùng

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ó

71

Dòng sự kiện

Các yê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ó.

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 chọn xem mục Cá

nhân

2. Hiển thị màn hình chứa công cụ hiển thị hình ảnh trước - sau của người dùng

3. Chọn cập nhật hình ảnh trước/sau 4. Hiển thị công cụ để chọn hình ảnh từ thư viện hoặc chụp ảnh

5. Chọn hình ảnh từ thư viện 6. Cập nhật hình ảnh và lưu vào cơ sở dữ liệu

Dòng sự kiện phụ

Hành động của tác nhân Phản ứng của hệ thống

1. Chọn hình ảnh từ chụp ảnh 2. Chuyển hướng sang ứng dụng camera của thiết bị

3. Chụp ảnh 4. Cập nhât hình ảnh và lưu vào cơ sở dữ liệu

72

2.16. Thực hiện luyện tập

2.16.1. Bắt đầu phiên tập

Tóm tắt

Người dùng có thể bắt đầu phiên luyện tập dựa trên bộ bài tập đã chọn.

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 chọn một bộ luyện tập 2. Hiển thị danh sách các bài tập 3. Chọn bắt đầu bộ luyện tập 4. Hiển thị màn hình phiên luyện tập 5. Chọn nút "Bắt đầu" 6. Phiên luyện tập bắt đầ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ó

73

Các yê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 bắt đầu phiên tập.

Trạng thái hệ thống sau khi thực hiện use-case

Phiên tập đang chạy.

Điểm mở rộng

Không có.

2.16.2. Tạm dừng phiên tập

Tóm tắt

Người dùng có thể tạm dừng phiên luyện tập đã chọn.

Dòng sự kiện

Các yêu cầu đặc biệt

Không có.

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 chọn một bộ luyện tập 2. Hiển thị danh sách các bài tập 3. Chọn bắt đầu bộ luyện tập 4. Hiển thị màn hình phiên luyện tập 5. Chọn nút "Bắt đầu" 6. Phiên luyện tập bắt đầu

7. Chọn nút "Tạm dừng" 8. Phiên luyện tập tạm dừng

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ó

74

Trạng thái hệ thống khi bắt đầu thực hiện use-case

Phiên tập đang chạy.

Trạng thái hệ thống sau khi thực hiện use-case

Phiên tập đang tạm dừng.

Điểm mở rộng

Không có.

2.16.3. Tiếp tục phiên tập

Tóm tắt

Người dùng có thể tiếp tục phiên luyện tập đã chọn.

Dòng sự kiện

Các yêu cầu đặc biệt

Không có.

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 chọn một bộ luyện tập 2. Hiển thị danh sách các bài tập 3. Chọn bắt đầu bộ luyện tập 4. Hiển thị màn hình phiên luyện tập 5. Chọn nút "Bắt đầu" 6. Phiên luyện tập bắt đầu

7. Chọn nút "Tạm dừng" 8. Phiên luyện tập tạm dừng 9. Chọn nút "Tiếp tục" 10.Phiên luyện tập tiếp tục

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ó

75

Trạng thái hệ thống khi bắt đầu thực hiện use-case

Phiên tập đang tạm dừng.

Trạng thái hệ thống sau khi thực hiện use-case

Phiên tập đang chạy.

Điểm mở rộng

Không có.

2.16.4. Bỏ qua bài tập

Tóm tắt

Người dùng có thể bỏ qua bài tập trong phiên luyện tập đã chọn.

Dòng sự kiện

Các yêu cầu đặc biệt

Không có.

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 chọn một bộ luyện tập 2. Hiển thị danh sách các bài tập 3. Chọn bắt đầu bộ luyện tập 4. Hiển thị màn hình phiên luyện tập 5. Chọn nút "Bắt đầu" 6. Phiên luyện tập bắt đầu

7. Chọn nút "Bỏ qua" 8. Phiên luyện tập bỏ qua bài tập hiện tại, hiển thị bài tập tiếp theo

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ó

76

Trạng thái hệ thống khi bắt đầu thực hiện use-case

Phiên tập đang chạy.

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.16.5. Kết thúc phiên tập

Tóm tắt

Người dùng có thể dừng hoàn toàn phiên luyện tập đã chọn.

Dòng sự kiện

Các yêu cầu đặc biệt

Không có.

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 chọn một bộ luyện tập 2. Hiển thị danh sách các bài tập 3. Chọn bắt đầu bộ luyện tập 4. Hiển thị màn hình phiên luyện tập 5. Chọn nút "Bắt đầu" 6. Phiên luyện tập bắt đầu

7. Chọn nút "Dừng" 8. Hiển thị dialog xác nhận đóng phiên luyện tập hay không? 9. 9. Chọn "Đồng ý" 10.Phiên luyện tập đóng lại, hiển thị

thống kê

Dòng sự kiện phụ

Hành động của tác nhân Phản ứng của hệ thống

77

Trạng thái hệ thống khi bắt đầu thực hiện use-case

Phiên tập đang chạy.

Trạng thái hệ thống sau khi thực hiện use-case

Phiên tập chưa bắt đầu.

Điểm mở rộng

Không có.

2.17. Đề xuất lộ trình

2.17.1. Xây dựng lộ trình tập luyện và dinh dưỡng

Tóm tắt

Người dùng có thể xây dựng một lộ trình gồm các bài tập và món ăn dựa trên thông tin cá nhân để đạt được mục tiêu đề ra.

78

Dòng sự kiện

Các yê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.

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 lần đầu đăng nhập 2. Hiển thị màn hình yêu cầu nhập các thông tin cơ bản + mục tiêu

3. Hoàn tất nhập các thông tin cơ bản + mục tiêu

4. Xây dựng lộ trình gồm danh sách các bài tập và món ăn mỗi ngày để đặt được mục tiêu

Dòng sự kiện phụ

Hành động của tác nhân Phản ứng của hệ thống 1. Người dùng hoàn thành một lộ

trình

2. Hiển thị thành quả, thống kê

3. Hiển thị đề xuất tạo lộ trình mới

4. Xác nhận 5. Hiển thị màn hình yêu cầu nhập

mục tiêu

6. Hoàn tất nhập mục tiêu 7. Xây dựng lộ trình dựa trên thông tin cơ bản và mục tiêu mới

79

Điểm mở rộng

Không có.

2.17.2. Cập nhật cân nặng

Tóm tắt

Người dùng có thể cập nhật cân năng trong lúc lộ trình đang diễn ra.

Dòng sự kiện

Các yê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.

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 chọn mục "Lộ trình" 2. Hiển thị màn hình chứa các thông tin về lộ trình

3. Chọn cập nhật cân nặng 4. Hiển thị công cụ nhập cân nặng mới

5. Nhập cân nặng mới 6. Lưu vào cơ sở dữ liệ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ó

80

Điểm mở rộng

Không có.

2.17.3. Cập nhật tiến trình

Tóm tắt

Người dùng có thể cập nhật tiến trình mỗi ngày của lộ trình tập luyện và dinh dưỡng.

Dòng sự kiện

Các yê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.

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 chọn mục "Lộ trình" 2. Hiển thị màn hình chứa các thông tin về lộ trình

3. Chọn xem tiến trình 4. Hiển thị danh sách tiến trình 5. Thực hiện tương tác với tập luyện

hoặc dinh dưỡng

6. Cập nhật các thông tin liên quan

7. Khi đạt được lượng calories tiêu chuẩn mỗi ngày

8. Cập nhật tiến trình và lưu vào cơ sở dữ liệ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ó

81 Điểm mở rộng Không có. 3. Sơ đồ hoạt động 3.1. Xác thực người dùng Truy cập hệ thống

82

Đăng xuất

83

84

3.4. Quản lý bài tập

85

3.6. Theo dõi bước chân

3.7. Theo dõi lượng thức ăn

86

3.9. Fasting (hỗ trợ quá trình không ăn uống)

3.10. Thống kê cân nặng

87

3.12. Thống kê bước chân

3.13. Thống kê dinh dưỡng

88

89

90

91

93

5. Kiến trúc

Kiến trúc hệ thống

94

105

CHƯƠNG IV – TỔNG KẾT 1. Kết quả đạt được

Thông qua đồ án này, nhóm đã hoàn toàn vận dụng được Flutter trong việc xây dựng ứng dụng di động cũng như tận dụng được GetX cho State Management để tối ưu hiệu suất ứng dụng. Bên cạnh đó, thông qua Flutter, nhóm cũng đã có thể làm việc với Firebase, SQLite để quản lý dữ liệu của ứng dụng.

Nhóm không chỉ tích lũy được những kiến thức và kinh nghiệm về Flutter mà còn có cả về luyện tập và dinh dưỡng một cách khoa học từ việc nghiên cứu cho ứng dụng này. Từ đó, nhóm đã xây dựng nên một hệ thống có thể hỗ trợ việc luyện tập và dinh dưỡng nhầm đạt được mục tiêu cân nặng một cách khoa học, trước tiên là dành cho bản thân sử dụng, và sau đó là dành cho tất cả mọi người có nhu cầu. Mã nguồn của ViPT được lưu trữ tại đây: GitHub Repository

Video minh họa sản phẩm: Youtube

2. Hạn chế

Tuy nhiên, hiện tại ứng dụng chỉ đang hoạt động trên nền tảng Android. Điều đó cho thấy rằng nhóm vẫn chưa tận dụng được hết khả năng của Flutter trong việc xây dựng ứng dụng đa nền tảng.

3. Hướng phát triển

Xây dựng lộ trình tự chọn

Tính năng này sẽ cho phép người dùng tùy chỉnh đề xuất lộ trình cho bản thân. Người dùng sẽ có thể tùy chọn những bài tập yêu thích của mình cũng như những món ăn yêu thích của mình. Từ sự tùy chỉnh đó của người dùng, hệ thống sẽ tự động đề xuất sao cho phù hợp với mục tiêu nhưng vẫn đảm bảo được tính khoa học của việc luyện tập và dinh dưỡng.

106 Tính năng này sẽ hỗ trợ cho người dùng theo dõi việc chạy bộ của mình. Tại đây, người dùng có thể theo dõi khoảng cách, thời gian đã chạy/đi bộ cũng như có thể xem quãng đường đã chạy/đi bộ một cách trực quan với bản đồ được tích hợp bên trong ứng dụng.

Thử thách

Tính năng này cho phép người dùng bắt đầu tham gia những hoạt động thử thách và đạt được những thành tựu, thành tích có thể chia sẻ với bạn bè thông qua mạng xã hội. Tại đây, sau khi hoàn thành thử thách, người dùng nhận được một huy hiệu trong ứng dụng và có thể xem thành tích của riêng mình cũng như của những người tham gia khác để thi đua, cạnh tranh và phát triển.

Thành tựu

Tính năng này cung cấp đa dạng những loại huy hiệu mà người dùng có thể đạt được thông qua hoạt động luyện tập, ăn uống, đi bộ, chạy bộ, thực hiện thử thách, v.v.

Âm thanh

Với tính năng này, người dùng có thể tùy chỉnh những bài nhạc sẽ được bật trong phiên luyện tập của mình cũng như có thể tùy chỉnh bật/tắt/thay đổi giọng nói hướng dẫn của phiên tập.

Hơn thế nữa

Hiện tại, hệ thống đề xuất lộ trình của ứng dụng đang hoạt động ở mức đề xuất dựa trên mục tiêu cân nặng. Từ đó cùng với những thông tin từ phía người dùng, hệ thống sẽ gợi ý một mức calories mục tiêu mỗi ngày cho người dùng trong việc luyện tập và ăn uống (kèm theo đó là danh sách bài tập và món ăn theo ngày được gợi ý để đạt được mức calories đó). Tuy nhiên, hệ thống có thể mở rộng mức đề xuất hơn nữa, không chỉ đề xuất dựa trên mục tiêu cân nặng của người dùng, mà thêm vào đó là cả mục tiêu về tăng cơ, giảm mỡ, giữ vóc dáng, v.v. Khi đó, hệ thống sẽ đòi hỏi nhiều thông tin đầu vào hơn từ người dùng, nhưng đổi lại thì việc đề xuất sẽ chính

107 xác hơn khi đầu ra của việc đề xuất sẽ không chỉ là calories mục tiêu mỗi ngày (kèm theo những cái đã kể trên), mà còn có thêm mục tiêu của khối lượng các thành phần dinh dưỡng chính mỗi ngày (protein, fat, carbs). Từ đó thì người dùng có thể linh hoạt hơn trong việc tùy chỉnh các mục tiêu cho việc đề xuất, điều này sẽ làm cho việc đề xuất của hệ thống trở nên phù hợp với từng người dùng khác nhau (đề xuất bài tập, món ăn mỗi ngày với lượng thời gian, thành phần chính xác hơn).

Việc cho phép người dùng có thể tùy chỉnh mục tiêu đề xuất một cách cụ thể là bởi vì đối với mỗi người, trên thực tế, sẽ có lượng calories mỗi ngày khác nhau, và sẽ có chênh lệch so với mức mà ứng dụng đề xuất. Cho nên khi người dùng có thể linh hoạt trong việc tùy chỉnh sẽ giúp cho hệ thống tạo lộ trình một cách chính xác hơn.

108

TÀI LIỆU THAM KHẢO

1. “Flutter documentation”. [Online]. Available: https://docs.flutter.dev/

Một phần của tài liệu Tìm hiểu flutter và xây dựng ứng dụng hỗ trợ tập thể dục (báo cáo cuối kì đồ án 1) (Trang 68 - 109)

Tải bản đầy đủ (PDF)

(109 trang)