1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án xây dựng ứng dụng rèn luyện thể hình

76 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 2,37 MB

Nội dung

ĐẠ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 XÂY DỰNG ỨNG DỤNG RÈN LUYỆN THỂ HÌNH GV HƯỚNG DẪN: Th.S TRẦN ANH DŨNG SV THỰC HIỆN: PHẠM TRƯƠNG HẢI ĐỒN - 20520046 TP HỒ CHÍ MINH, 2023 LỜI CẢM ƠN Sau quãng thời gian học tập rèn luyện trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, môn học ĐỒ ÁN 1, em định chọn thực đề tài: XÂY DỰNG ỨNG DỤNG RÈN LUYỆN THỂ HÌNH nhằm củng cố, tổng kết, nâng cao kiến thức kĩ học Để thực đồ án này, em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng, giảng viên hướng dẫn đồ án, tận tình hỗ trợ, đánh giá định hướng cho em suốt trình làm đồ án Những em học qua q trình làm việc với thầy khơng có ý nghĩa lớn với hoàn thành đồ án mà học quý báu cho trình học tập làm việc sau Đồng thời, em xin gửi lời cảm ơn đến quý thầy trường Đại học Cơng nghệ thơng tin nói chung quý thầy cô khoa Công nghệ phần mềm nói riêng giảng dạy, bồi dưỡng kiến thức kĩ cho em suốt quãng thời gian em học trường Cuối cùng, em muốn gửi lời cảm ơn đến gia đình, bạn bè thấu hiểu, hỗ trợ em mặt tinh thần có góp ý chân thật, thực tế để đồ án ngày hồn thiện Trong q trình làm đồ án khơng tránh khỏi sai sót, em kính mong nhận dẫn góp ý q thầy để hồn thiện phát triển thêm Một lần nữa, em xin chân thành cảm ơn! Thành phố Hồ Chí Minh, 23 tháng 06 năm 2023 Sinh viên PHẠM TRƯƠNG HẢI ĐỒN MỤC LỤC TĨM TẮT ĐỒ ÁN Chương MỞ ĐẦU .2 1.1 Lý chọn đề tài 1.2 Mục đích nghiên cứu .3 1.2.1 Khách quan 1.2.2 Chủ quan 1.3 Đối tượng nghiên cứu 1.3.1 Đối tượng công nghệ 1.3.2 Đối tượng sử dụng .4 1.4 Phạm vi nghiên cứu .4 1.4.1 Phạm vi môi trường .4 1.4.2 Phạm vi chức Chương CƠ SỞ LÝ THUYẾT 2.1 Android 2.1.1 Hệ điều hành Android 2.1.2 Ngơn ngữ lập trình Kotlin 2.1.3 Jetpack Compose 2.1.4 Lập trình bất đồng với Flow, Coroutine 2.1.4.1 Lập trình bất đồng .8 2.1.4.2 Coroutine 2.1.4.3 Flow 2.2 Firebase 2.2.1 Cloud Firestore 2.2.2 Firebase Authentication .10 2.2.3 Cloud Storage cho Firebase .10 2.3 Full-text search với Algolia 10 2.3.1 Full-text search 10 2.3.2 Algolia .11 2.4 FoodData Central API 12 Chương PHÂN TÍCH, THIẾT KẾ HỆ THỐNG 13 3.1 Phân tích Use Case 13 3.1.1 Sơ đồ Use Case 13 3.1.2 Danh sách tác nhân 13 3.1.3 Danh sách Use Case 13 3.1.4 Đặc tả Use Case 15 3.2 Sơ đồ Sequence 28 3.3 Sơ đồ Activity 32 3.4 Kiến trúc hệ thống .38 3.4.1 Sơ đồ tổng quan 38 3.4.2 Mô tả kiến trúc 38 3.5 Thiết kế Cơ sở liệu 39 3.5.1 Sơ đồ Cơ sở liệu tổng quan 39 3.5.2 Mô tả Cơ sở liệu 39 3.6 Thiết kế Giao diện người dùng 41 3.6.1 Danh sách hình 43 3.6.2 Mơ tả chi tiết Màn hình .45 3.6.2.1 Màn hình Đăng ký 45 3.6.2.2 Màn hình Đăng nhập .46 3.6.2.3 Màn hình Trang chủ .47 3.6.2.4 Màn hình Lịch sử tập luyện 48 3.6.2.5 Màn hình Chi tiết buổi tập .50 3.6.2.6 Màn hình Ghi chép thơng tin buổi tập 51 3.6.2.7 Màn hình Danh sách tập 52 3.6.2.8 Màn hình Chi tiết tập .53 3.6.2.9 Màn hình Thêm tập Custom 54 3.6.2.10 Màn hình Danh sách chương trình tập 55 3.6.2.11 Màn hình Thêm chương trình tập .56 3.6.2.12 Màn hình Lịch sử ăn uống 58 3.6.2.13 Màn hình Danh sách thực phẩm 59 3.6.2.14 Màn hình Chi tiết thực phẩm .60 3.6.2.15 Màn hình Điều chỉnh Profile .61 3.6.2.16 Màn hình Ghi chép số đo thể 62 Chương KẾT LUẬN .64 4.1 Thành 64 4.2 Hạn chế 64 4.3 Hướng phát triển 64 TÀI LIỆU THAM KHẢO 65 DANH MỤC HÌNH Hình 2.1 Logo Android, quyền nắm giữ Google (Nguồn: Wikimedia Commons) Hình 2.2 Logo ngơn ngữ lập trình Kotlin (Nguồn: Wikimedia Commons) Hình 2.3 Logo Firebase (Nguồn: Wikimedia Commons) Hình 2.4 Logo Algolia (Nguồn: Wikipedia) 11 Hình 2.5 Logo USDA - Bộ Nông nghiệp Hoa Kỳ (Nguồn: Wikimedia Commons) 12 Hình 3.1 Sơ đồ Use Case tổng quan 13 Hình 3.2 Sơ đồ Sequence cho Use Case Đăng ký 28 Hình 3.3 Sơ đồ Sequence cho Use Case Xem lịch sử tập luyện 28 Hình 3.4 Sơ đồ Sequence cho Use Case Ghi chép buổi tập .29 Hình 3.5 Sơ đồ Sequence cho Use Case Xem danh sách chương trình tập .30 Hình 3.6 Sơ đồ Sequence cho Use Case Tạo chương trình tập .30 Hình 3.7 Sơ đồ Sequence cho Use Case Ghi chép ngày ăn 31 Hình 3.8 Sơ đồ Sequence cho Use Case Theo dõi tiến 32 Hình 3.9 Sơ đồ Activity Use Case Xem lịch sử tập luyện 32 Hình 3.10 Sơ đồ Activity cho Use Case Ghi chép buổi tập 33 Hình 3.11 Sơ đồ Activity cho Use Case Xem danh sách Chương trình tập 33 Hình 3.12 Sơ đồ Activity cho Use Case Tạo chương trình tập 34 Hình 3.13 Sơ đồ Activity cho Use Case Ghi chép ngày ăn 35 Hình 3.14 Sơ đồ Activity cho Use Case chỉnh sửa Profile 36 Hình 3.15 Sơ đồ Activity cho Use Case Theo dõi tiến 37 Hình 3.16 Sơ đồ kiến trúc tổng quan .38 Hình 3.17 Sơ đồ Cơ sở liệu tổng quan 39 Hình 3.18 Màn hình Đăng ký 45 Hình 3.19 Màn hình Đăng nhập .46 Hình 3.20 Màn hình Trang chủ 47 Hình 3.22 Màn hình Lịch sử tập luyện 48 Hình 3.23 Màn hình Chi tiết buổi tập 50 Hình 3.24 Màn hình Đăng ký 51 Hình 3.25 Màn hình Danh sách tập 52 Hình 3.26 Màn hình Chi tiết tập .53 Hình 3.27 Màn hình Thêm tập Custom 54 Hình 3.28 Màn hình Danh sách chương trình tập 55 Hình 3.29 Màn hình Thêm chương trình tập 56 Hình 3.30 Màn hình Lịch sử ăn uống 58 Hình 3.31 Màn hình Danh sách thực phẩm 59 Hình 3.32 Màn hình Chi tiết thực phẩm 60 Hình 3.33 Màn hình Điều chỉnh Profile 61 Hình 3.34 Màn hình Đăng ký 62 DANH MỤC BẢNG Bảng 3.1 Danh sách tác nhân 13 Bảng 3.2 Danh sách Use Case 15 Bảng 3.3 Đặc tả Use Case Đăng ký 16 Bảng 3.4 Đặc tả Use Case Đăng nhập .16 Bảng 3.5 Đặc tả Use Case Xem lịch sử tập luyện 17 Bảng 3.6 Đặc tả Use Case Ghi chép buổi tập 18 Bảng 3.7 Đặc tả Use Case Bắt đầu buổi tập .19 Bảng 3.8 Đặc tả Use Case Xem danh sách chương trình tập 20 Bảng 3.9 Đặc tả Use Case Tạo chương trình tập .21 Bảng 3.10 Đặc tả Use Case Xem danh sách tập 22 Bảng 3.11 Đặc tả Use Case Tạo tập Custom .23 Bảng 3.12 Đặc tả Use Case Ghi chép ngày ăn 24 Bảng 3.13 Đặc tả Use Case Xem thông tin dinh dưỡng thực phẩm 24 Bảng 3.14 Đặc tả Use Case Chỉnh sửa Profile 25 Bảng 3.15 Đặc tả Use Case Thêm số đo thể .26 Bảng 3.16 Đặc tả Use Case Theo dõi tiến 27 Bảng 3.17 Mô tả Collection User .40 Bảng 3.18.Mô tả Collection Food .40 Bảng 3.19 Mô tả Collection Routine .40 Bảng 3.20 Mô tả Collection EatingDay 41 Bảng 3.21 Mô tả Collection Workout 41 Bảng 3.22 Mô tả Collection Exercise 42 Bảng 3.23 Mô tả Collection DefaultMeasurements 42 Bảng 3.24 Mô tả Collection Exercise 42 Bảng 3.25 Mô tả Collection Exercise 43 Bảng 3.26 Danh sách hình 44 Bảng 3.27 Mơ tả Màn hình Đăng ký 46 Bảng 3.28 Mơ tả Màn hình Đăng nhập 47 Bảng 3.29 Mô tả Màn hình Trang chủ .48 Bảng 3.30 Mơ tả Màn hình Lịch sử tập luyện 49 Bảng 3.31 Mơ tả Màn hình Chi tiết buổi tập 50 Bảng 3.32 Mơ tả Màn hình Ghi chép thơng tin buổi tập 52 Bảng 3.33 Mô tả Màn hình Danh sách tập 53 Bảng 3.34 Mô tả Màn hình Chi tiết tập 54 Bảng 3.35 Mơ tả Màn hình Thêm tập Custom 55 Bảng 3.36 Mơ tả Màn hình Danh sách chương trình tập 56 Bảng 3.37 Mô tả Màn hình Thêm chương trình tập 57 Bảng 3.38 Mơ tả Màn hình Lịch sử ăn uống 59 Bảng 3.39 Mơ tả Màn hình Danh sách thực phẩm 59 Bảng 3.40 Mơ tả Màn hình Chi tiết thực phẩm 60 Bảng 3.41 Mô tả Màn hình Điều chỉnh Profile 62 Bảng 3.42 Mơ tả Màn hình Ghi chép số đo thể 63 DANH MỤC TỪ VIẾT TẮT Từ viết tắt API Từ đầy đủ Ý nghĩa Application Programming Interface FDC FoodData Central JVM Java Virtual Machine Giao diện lập trình ứng dụng Bộ liệu dinh dưỡng, thực phẩm phát triển USDA Máy ảo Java cho phép chạy chương trình Java Tập hợp trình biên dịch công nghệ cho phép phát triển frontend, LLVM backend cho ngơn ngữ lập trình, kiến trúc SaaS Software as a service Phần mềm dạng dịch vụ UI User Interface Giao diện người dùng USDA U.S Department of Bộ Nông nghiệp Hoa Kỳ Agriculture Add Set Button Thêm hiệp tập cho tập Delete Button Xóa hiệp tập Add exercise Button Thêm tập vào buổi tập Bảng 3.32 Mô tả Màn hình Ghi chép thơng tin buổi tập 3.6.2.7 Màn hình Danh sách tập Hình 3.24 Màn hình Danh sách tập STT Tên Thành phần Loại Mô tả/Ghi 52 Di chuyển đến hình thêm tập Add Button Search Button Tìm kiếm tập Filter Button Lọc tập theo phân loại, nhóm ExerciseItem Card Custom Di chuyển đến hình Chi tiết tập Bảng 3.33 Mơ tả Màn hình Danh sách tập 3.6.2.8 Màn hình Chi tiết tập Hình 3.25 Màn hình Chi tiết tập 53 STT Tên Thành phần Loại Mô tả/Ghi Back Button Di chuyển đến hình trước ExerciseImage Image Hình ảnh động tác tập Bảng 3.34 Mơ tả Màn hình Chi tiết tập 3.6.2.9 Màn hình Thêm tập Custom Hình 3.26 Màn hình Thêm tập Custom STT Tên Thành phần Loại Back Button Mô tả/Ghi Di chuyển đến hình trước 54 Save Button Tạo tập Custom Image Button Chọn hình ảnh cho tập Name TextField Điền tên tập Instruction TextField Điền hướng dẫn thực tập Category Dropdown Chọn phân loại tập MuscleGroup Chip Group Chọn nhóm tập Bảng 3.35 Mơ tả Màn hình Thêm tập Custom 3.6.2.10 Màn hình Danh sách chương trình tập Hình 3.27 Màn hình Danh sách chương trình tập 55 STT Tên Thành phần Loại Add Button Search Button More Button Work Out Button Mô tả/Ghi Di chuyển đến hình Thêm chương trình tập Tìm kiếm chương trình tập Xem thêm thao tác chương trình tập Di chuyển đến hình Ghi chép thơng tin buổi tập Bảng 3.36 Mơ tả Màn hình Danh sách chương trình tập 3.6.2.11 Màn hình Thêm chương trình tập Hình 3.28 Màn hình Thêm chương trình tập 56 STT Tên Thành phần Loại Mơ tả/Ghi Back Button Di chuyển hình trước Save Button Thêm chương trình tập Name TextField Add Set Button Thêm hiệp tập cho tập Delete Button Xóa hiệp tập Add exercise Button Thêm tập vào chương trình tập More Button Xem thêm thao tác tập Tên chương trình tập Bảng 3.37 Mơ tả Màn hình Thêm chương trình tập 57 3.6.2.12 Màn hình Lịch sử ăn uống Hình 3.29 Màn hình Lịch sử ăn uống Tên Thành phần Loại Calendar Button Back, Next Button Total Calories Pie Chart STT Mô tả/Ghi Xem lịch ngày có ghi chép dinh dưỡng Di chuyển đến ngày trước đó/tiếp theo Thể tổng lượng calo cần tiêu thụ lượng calo tiêu thụ Total Macros Line Thể tổng lượng chất dinh dưỡng macro cần tiêu thụ lượng macro tiêu thụ Food Entry Text Điều chỉnh khối lượng thực phẩm tiêu thụ 58 Add food Thêm thực phẩm vào bữa ăn Button Bảng 3.38 Mô tả Màn hình Lịch sử ăn uống 3.6.2.13 Màn hình Danh sách thực phẩm Hình 3.30 Màn hình Danh sách thực phẩm STT Tên Thành phần Loại Search Button FoodItem Card Mơ tả/Ghi Tìm kiếm thực phẩm theo tên Di chuyển đến hình Chi tiết thực phẩm Bảng 3.39 Mơ tả Màn hình Danh sách thực phẩm 59 3.6.2.14 Màn hình Chi tiết thực phẩm Hình 3.31 Màn hình Chi tiết thực phẩm STT Tên Thành phần Loại Back Button Nutrient Ratio Pie Chart Nutrient Detail Text Mô tả/Ghi Di chuyển đến hình trước Thể hàm lượng chất dinh dưỡng quan trọng tổng calo Thể hàm lượng chất dinh dưỡng Bảng 3.40 Mơ tả Màn hình Chi tiết thực phẩm 60 3.6.2.15 Màn hình Điều chỉnh Profile Hình 3.32 Màn hình Điều chỉnh Profile STT Tên Thành phần Loại Mô tả/Ghi Back Button Di chuyển hình trước Save Button Lưu thông tin Profile Name TextField Tên hiển thị người dùng Age TextField Độ tuổi người dùng Sex Dropdown Giới tính người dùng 61 Activity Level Dropdown Mức độ vận động người dùng Weight Goal Dropdown Mục tiêu cân nặng người dùng Bảng 3.41 Mơ tả Màn hình Điều chỉnh Profile 3.6.2.16 Màn hình Ghi chép số đo thể Hình 3.33 Màn hình Đăng ký STT Tên Thành phần Loại Mô tả/Ghi Back Button Di chuyển hình trước Add Button Thêm thơng tin số đo 62 Measurement Tên giá trị số đô Text Bảng 3.42 Mơ tả Màn hình Ghi chép số đo thể 63 Chương KẾT LUẬN 4.1 Thành - Xây dựng ứng dụng với đầy đủ tính đề ra, đáp ứng yêu cầu ứng dụng rèn luyện thể hình - Giao diện ứng dụng dễ nhìn, trực quan, đẹp mắt - Đồ án áp dụng best practice thư viện đại, quan trọng việc lập trình Android: Paging 3, Retrofit, Jetpack Compose… 4.2 Hạn chế - Ứng dụng chưa tối ưu, xử lý số chỗ cịn chưa tốt - Các tính cịn tương đối đơn giản - Nguồn liệu thực phẩm cịn hạn chế - Tính full-text search cho tập hạn chế dịch vụ Algolia tương đối đắt đỏ 4.3 Hướng phát triển - Tối ưu xử lý cho ứng dụng - Tích hợp thêm nhiều nguồn liệu thực phẩm khác - Nghiên cứu thêm số dịch vụ full-text search khác - Thực thêm nhiều tính nâng cao: Quét mã vạch thực phẩm, Đo số bước… 64 TÀI LIỆU THAM KHẢO [1] Android, "Build better apps faster with Jetpack Compose," [Online] Available: https://developer.android.com/jetpack/compose [Accessed 23 06 2023] [2] Android, "Kotlin flows on Android," [Online] Available: https://developer.android.com/kotlin/flow [Accessed 24 06 2023] [3] Firebase, "Cloud Firestore," [Online] Available: https://firebase.google.com/docs/firestore [Accessed 23 06 2023] [4] Firebase, "Cloud Storage for Firebase," [Online] Available: https://firebase.google.com/docs/storage [Accessed 23 06 2023] [5] Firebase, "Firebase Authentication," [Online] Available: https://firebase.google.com/docs/auth [Accessed 23 06 2023] [6] Kotlin, "Asynchronous programming techniques," [Online] Available: https://kotlinlang.org/docs/async-programming.html [Accessed 24 06 2023] [7] Kotlin, "Coroutines," [Online] Available: https://kotlinlang.org/docs/coroutines-overview.html [Accessed 24 06 2023] [8] MongoDB, "What is Full-Text Search and How Does it Work?," [Online] Available: https://www.mongodb.com/basics/full-text-search [Accessed 24 06 2023] [9] Wikipedia, "Algolia," [Online] Available: https://en.wikipedia.org/wiki/Algolia [Accessed 24 06 2023] [10] Wikipedia, "Android (operating system)," [Online] Available: https://en.wikipedia.org/wiki/Android_(operating_system) [Accessed 23 06 2023] 65 [11] Wikipedia, "Asynchrony (computer programming)," [Online] Available: https://en.wikipedia.org/wiki/Asynchrony_(computer_programming) [Accessed 24 06 2023] [12] Wikipedia, "Kotlin (programming language)," [Online] Available: https://en.wikipedia.org/wiki/Kotlin_(programming_language) [Accessed 23 06 2023] [13] U.S Department of Agriculture, "FoodData Central About Us," [Online] Available: https://fdc.nal.usda.gov/about-us.html [Accessed 24 06 2023] 66

Ngày đăng: 04/09/2023, 20:29

w