đồ án xây dựng ứng dụng hỗ trợ giảm cân

44 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án xây dựng ứng dụng hỗ trợ giảm cân

Đ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

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 3

1.4 Phương pháp nghiên cứu 7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ 8

4.1 Thiết kế use case 19

4.1.1 Sơ đồ use case 19

4.1.4.3 Cập nhật thông tin cá nhân 24

4.1.4.4 Chi tiết món ăn, bài tập có sẵn của ứng dụng 24

4.1.4.5 Tham khảo kế hoạch của các người dùng khác 25

4.1.4.6 Tạo món ăn 26

4.1.4.7 Tạo bài tập 26

4.1.4.8 Xóa bài tập 27

Trang 4

4.1.4.9 Xóa món ăn 27

4.1.4.10 Tạo kế hoạch 28

4.1.4.11 Xóa kế hoạch 28

4.1.4.12 Đánh giá, bình luận 29

4.1.4.13 Xóa đánh giá, bình luận 29

4.2 Thiết kế cơ sở dữ liệu 30

4.2.1 Sơ đồ database: 30

4.2.2 Mô tả các bảng 31

4.2.2.1 Bảng User: thông tin người dùng 31

4.2.2.2 Bảng Plan: thông tin kế hoạch 31

4.2.2.3 Bảng DayPlan: thông tin của từng ngày trong kế hoạch 31

4.2.2.4 Bảng DayFood: thông tin về từng bữa ăn trong kế hoạch 32

4.2.2.5 Bảng DayExercise: thông tin về từng buổi tập trong kế hoạch 32

4.2.2.6 Bảng Food: thông tin món ăn 32

4.2.2.7 Bảng Exercise: thông tin về bài tập 33

4.2.2.7 Bảng Reviews: thông tin về bình luận 33

4.3 Thiết kế giao diện, ứng dụng 34

4.3.10 Màn hình chi tiết món ăn 39

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40

Trang 5

LỜI CẢM ƠN

Trước khi bắt đầu bài báo cáo, em xin gửi lời cảm ơn đến Cô Nguyễn Thị Thanh Trúc – Giảng viên của Khoa Công Nghệ Phần Mềm Trong quá trình thực hiện môn Đồ Án 1, cô đã hướng dẫn, chia sẻ những kiến thức, đóng góp ý kiến giúp em xây dựng đồ án đi đúng hướng với đề tài đã lựa chọn

Trên thế giới hiện nay, hai căn bệnh rất phổ biến ở giới trẻ là “thừa cân” và “béo phì”, và ở Việt Nam, số người mắc hai căn bệnh này ngày càng tăng Lý do chính đầu tiên là chế độ ăn uống thiếu khoa học, ưa thích những đồ ăn chiên rán, nhiều dầu mỡ, đồ ăn nhanh, thức ăn, đồ uống chứa nhiều đường, khi nạp vào cơ thể những chất trên, cơ thể mất rất nhiều thời gian để tiêu hóa Lý do thứ hai là lười vận động, khi cơ thể nạp vào quá nhiều Calo từ những đồ ăn trên, nếu bạn không vận động để đốt cháy bớt lượng Calo đó, theo thời gian lượng Calo chênh lệch giữa tiêu thụ và đốt cháy sẽ tăng thêm, chất béo không được tiêu thụ và bạn sẽ bị “thừa cân” và lâu ngày sẽ dẫn đến “béo phì”.

Nhận thức được vấn đề trên, em đã nảy ra ý định xây dựng một Website hỗ trợ giảm cân, để người dùng có thể truy cập và sử dụng mọi lúc, mọi nơi, nắm bắt được tình trạng cơ thể hiện tại của mình như thế nào.

Khi mới bắt tay vào thực hiện đề tài, gặp rất nhiều khó khăn về cách định hướng các chức năng của đồ án, cũng như đối tượng người dùng, cách hoạt động của Website,

Trang 6

nhưng với sự hỗ trợ nhiệt tình của Cô đã giúp em vượt qua các vấn đề khó khăn trong quá trình thực hiện Em sẽ ghi nhớ các kiến thức mà cô đã chỉ dạy để phát triểnthêm đồ án, áp dụng vào các dự án khác trong tương lai.

Một lần nữa, em xin gửi lời cảm ơn đến Cô Nguyễn Thị Thanh Trúc, chúc Cô thật nhiều sức khỏe, thành công trong sự nghiệp

Trang 7

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

1.1.Lý do chọn đề tài

Béo phì và thừa cân là hai trong những vấn đề sức khỏe phổ biến ở nhiều quốc gia trên thế giới, hai vấn đề này khiến người bệnh có nguy cơ cao mắc phải các bệnh mãn tính như: tiểu đường, bệnh tim mạch, huyết áp cao, ung thư…… Nhiều người béo phì đang tìm kiếm giải pháp giảm cân, cải thiện sức khỏe của mình để có một cơ thể khỏe mạnh.

Trong một thời kỳ internet phát triển, phổ biến như hiện nay, người bệnh có thể tự tìm cho mình một chế độ ăn uống, tập luyện phù hợp, với thể trạng để tự giảm cân tại nhà thông qua các ứng dụng trên điện thoại, hoặc Website trên máy tính.

Việc xây dựng một Website, hoặc ứng dụng hỗ trợ giảm cân có thể tác động trực tiếp đến cộng đồng bằng cách giúp đỡ người dùng giảm cân, đây là một giải pháp tiện lợi và khả thi, người dùng có thể truy cập Website, ứng dụng mọi lúc mọi nơi, sử dụng các tính năng của Website, ứng dụng để theo dõi, tự tạo một lộ trình giảm cân phù hợp với thể trạng của mình.

Nắm bắt được nhu cầu cần thiết trên, nhóm em đã tiến hành xây dựng một Website đểngười dùng có thể truy cập nhanh chóng, tham khảo các chế độ ăn uống của các chuyên gia dinh dưỡng, các món ăn, bài tập của Website, để tự tạo một kế hoạch của riêng mình, theo dõi quá trình thực hiện kế hoạch đó, cập nhật cân nặng sau mỗi kế hoạch, để thay đổi khẩu phần ăn và cách tập luyện phù hợp hơn cho các kế hoạch tiếp theo.

Trang 8

1.2.Mục tiêu đề tài

Xây dựng Website có giao diện thân thiện với người dùng, bố cục hợp lý, dễ sử dụng, lược bỏ các tính năng không cần thiết, sử dụng hết điểm mạnh của các công nghệ áp dụng trong Website:

● Từ thông tin cân nặng, chiều cao người dùng cung cấp, tính lượng Calo cần nạp , cần đốt cháy để giảm cân, hoặc thay đổi thói quen sinh hoạt.

● Người dùng có thể tự đăng tải, món ăn, bài tập của riêng mình lên Website● Cho phép đánh giá về độ hiệu quả của kế hoạch, bài tập

● Có thể theo dõi quá trình thực hiện, điều chỉnh kế hoạch

● Cung cấp một thực đơn phong phú phù hợp với người Việt Nam● Hỗ trợ tìm kiếm với bộ lọc trong thực đơn, bài tập

Đề tài hướng đến hai nhóm đối tượng chính:

● Người dùng: sử dụng các kế hoạch có sẵn của chuyên gia dinh dưỡng, hoặc tự tạo kế hoạch của riêng bản thân mình.

● Chuyên gia dinh dưỡng: đưa ra các kế hoạch, món ăn, bài tập, đánh giá độ hiệu quả, để người dùng tin tưởng, tham khảo và sử dụng.

Các hướng nghiên cứu của đề tài:● Tìm hiểu kiến trúc MERN Stack

● Thiết kế thử nghiệm các màn hình, chức năng bằng Figma

● Tìm hiểu các yếu tố liên quan đến việc chuyển hóa năng lượng trong cơ thể

Trang 9

● Xây dựng các chức năng cơ bản và cần thiết cho ứng dụng● Tìm hiểu vể các chỉ số BMI, BMR, PAL của cơ thể

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ

2.1 Cơ sở lý thuyết

2.1.1 Chỉ số BMR, BMI, PAL

a Chỉ số BMR Khái niệm:

- Tốc độ trao đổi chất cơ bản BMR (viết tắt của Basal Metabolic Rate) là lượng năng lượng trên một đơn vị thời gian mà một người cần giữ cho cơ thể hoạt động ở trạng thái nghỉ ngơi,

Trang 10

một trong những hoạt động đó là: thở, tuần hoàn máu, co cơ…… Chỉ số BMR ảnh hưởng đến tốc độ mà một người đốt cháy calo và có thể dự đoán rằng liệu người đó có duy trì, tăng hoặc giảm cân hay không Chỉ số BMR chiếm khoảng 60 đến 75% chi tiêu calo hằng ngày của một người.

Cách tính:

- Một trong những phương pháp phổ biến để tính chỉ số BMR là sử dụng phương trình Harris-Benecdit, phương trình này có thể được sử dụng để hỗ trợ giảm cân bằng cách giảm số lượng Calo tiêu thụ dưới mức chỉ số BMR tính được

Phương trình Harris-Becnedit:

Với đàn ông: BMR=[10 x trọng lượng (kg)] + [6,25 x chiều cao(cm)] – [5 x tuổi ( năm)] + 5Với phụ nữ: BMR=[10 x trọng lượng (kg)] + [6,25 x chiều cao(cm)] – [5 x tuổi ( năm)] -161(phương trình này được sửa đổi lần cuối cùng vào năm 1990 bởi Miffin và St Joer, và trở nênphổ biến nhất)

b Chỉ số BMI Khái niệm:

- Chỉ số khối cơ thể BMI viết tắt của (Body Mass Index), là một cách nhận định cơ thể của một người là gầy hay béo bằng một chỉ số BMI có thể được tính theo công thức hoặc chiếu theo bảng tiêu chuẩn của WHO.

Phân loại cho người Châu Âu:

Trang 11

Phân loại cho người Châu Á – Thái Bình Dương

c Chỉ số PAL Khái niệm:

- Mức độ hoạt động thể chất PAL( viết tắt của Physical Activities Level) là một chỉ số thể hiệnhoạt động thể chất hàng ngày của một người dưới dạng số và được sử dụng để ước tính tổng chi tiêu năng lượng của một người Khi kết hợp nó với chỉ số BMR, ta có thể tính được năng lượng thực phẩm mà một người cần tiêu thụ để duy trì một lối sống.

Cách tính:

Trang 12

-Hiện tại vẫn chưa có công thức cụ thể, và chính xác để tính được chỉ số PAL, nhưng ta có một công thức liên hệ giữa chỉ số PAL và BMR để tính được lượng thực phẩm cần tiêu thụ để duy trì lối sống, hoặc tăng, giảm cân.

Trong đó: TEE là tổng chi tiêu năng lượng của người đóBMR: tỷ lệ trao đổi chất cơ bản

PAL: mức độ hoạt động thể chất Bảng tham khảo về chỉ số PAL cho một vài hoạt động:

(Bảng số liệu này chỉ là tham khảo, bởi mỗi người có một cách vận động khác nhau, tùy vào tình trạng của cơ thể)

d Áp dụng vào đề tài:

- Những người giảm cân hoặc có kế hoạch giảm cân, theo các nghiên cứu, cứ 1kg cân nặng thì cần tạo ra 7700 Calo thâm hụt (lượng Calo tiêu thụ lớn hơn lượng Calo nạp vào), hay cứ một 1000 Calo thì sẽ giảm 0.13kg

- Dựa vào 3 chỉ số cơ bản trên, trước khi bắt đầu tạo kế hoạch giảm cân, người dùng sẽ cần phải cập nhật cân nặng, chiều cao của bản thân (2 chỉ số này có thể thay đổi được) Website sẽ tính chỉ số BMI, BMR, PAL, để xác định là người đó đang ở trong tình trạng nào dựa vào bảng phân loại của WHO Trong quá trình tạo kế hoạch cho từng ngày, Website sẽ tính tổng Calo thâm hụt cho bạn, gợi ý lượng Calo phù hợp cho từng ngày.

Trang 13

2.2 Công nghệ sử dụng2.2.1 Ngôn ngữ lập trình

Giới thiệu về Javascript

Javascript là một ngôn ngữ lập trình thông dịch được phát triển từ các ý niệm nguyên mẫu Javascript nhẹ và hoạt động đa nền tảng và đa mô hình Nó được sử dụng phổ biến trong việc lập trình các ứng dụng Web và là một phần quan trọng của các công nghệ như HTML, CSS và các thư viện và framework như React, Angular, Vue

Trang 14

Giới thiệu về MongoDB

MongoDB là một cơ sở dữ liệu phi quan hệ , mã nguồn mở được thiết kế để lưu trữ và truy vấn dữ liệu bán cấu trúc hoặc không cấu trúc MongoDB sử dụng mô hình lưu trữ dữ liệu JSON, cho phép lưu trữ dữ liệu dưới dạng tài liệu có thể chứa các trường và giá trị tùy ý.MongoDB được sử dụng rộng rãi trong các ứng dụng Web, IOT, và các ứng dụng đòi hỏi khả năng mở rộng và tốc độ truy vấn nhanh.

Lý do sử dụng MongoDB

- Mô hình dữ liệu linh hoạt- Tốc độ truy vấn nhanh

- Khả năng mở rộng, tùy biến cao

- Hỗ trợ các tính năng sharding và replication- Lập trình dễ dàng

Giới thiệu về Cloudinary

Cloudinary là một dịch vụ đám mây cung cấp các tính năng về quản lý, xử lý và lưu trữ hình ảnh và video trên Web, phân phối nội dung và quản lý tài nguyên đa phương tiện

Cloudinary là một giải pháp đáng tin cậy và phổ biến cho việc quản lý, xử lý hình ảnh và video trên đám mây, và được sử dụng rộng rãi trong các ứng dụng Web, di động và thương

Trang 15

mại điện tử.

Lý do sử dụng Cloudinary

- Xử lý hình ảnh và video: Cloudinary cho phép bạn xử lý hình ảnh và video trên đám mây, bao gồm chuyển đổi định dạng, cắt, xoay, thu phóng và tạo ảnh động, tăng tốc độ video, phân tích nội dung video

- Giảm thiểu chi phí lưu trữ, quản lý tài nguyên đa phương tiện

- Tối ưu hóa ảnh và video làm giảm thời gian tải trang và tăng trải nghiệm người dùng- API và SDK : tích hợp ứng dụng Web, di động cho phép tùy chỉnh các tính năng

2.2.3 Thư viện và Framework

a ReactJS

Giới thiệu về ReactJS

ReactJS là một thư viện JavaScript mã nguồn mở được sử dụng để xây dựng các giao diện người dùng động và tương tác trên Web ReactJS được phát triển bởi Facebook và được sử dụng trong các ứng dụng Web lớn như Facebook, Instagram, Netflix và Airbnb ReactJS sử dụng mô hình component để xây dựng giao diện người dùng Mỗi component là một đối tượng độc lập, có thể tái sử dụng, và chứa một phần của giao diện Bằng cách sử dụng các component, ReactJS cho phép xây dựng các giao diện phức tạp bằng cách kết hợp các Component.

Trang 16

Lý do sử dụng ReactJS:

- Có một cộng đồng mạnh mẽ với nhiều tài liệu, framework hỗ trợ

- Tích hợp dễ dàng với các công nghệ khác : HTML, CSS, JavaScript

- Có thể kết hợp các thư viện và framework khác như: React Router, Redux, ….

- Hỗ trợ tính năng Virtual DOM: tối ưu hóa hiệu suất , tăng tốc cập nhật người dùngb NodeJS

Giới thiệu về NodeJS

NodeJS là một nền tảng phát triển mã nguồn mở được xây dựng trên nền tảng V8 Javascript Engine của Google, cho phép chạy mã JavaScript trên máy chủ NodeJS cho phép lập trình viên sử dụng JavaScript để phát triển ứng dụng máy chủ và ứng dụng Web động và các ứng dụng đa nền tảng khác Nó cũng có một cộng đồng phát triển mạnh mẽ với nhiều thư viện và module hỗ trợ cho việc phát triển ứng dụng NodeJS

Lý do sử dụng NodeJS

- Khả năng xử lý các yêu cầu ở chế độ không đồng bộ tăng tốc độ xử lý ứng dụng

- Có thể sử dung module để tách code thành các phần nhỏ hơn, giúp dễ dàng quản lý và tái sử dụng code

- Có thư viện mạnh mẽ

- Tích hợp dễ dàng với các công nghệ khác: MongoDB, ExpressJS, ReactJS

c ExpressJS

Trang 17

Giới thiệu về ExpressJS

ExpressJS là một framwork của NodeJS mã nguồn mở và phổ biến nhất hiện nay Nó được sử dụng để phát triển các ứng dụng Web động và API , ExpressJS hỗ trợ xử lý đường dẫn và yêu cầu HTTP cho phép lập trình viên xây dựng các ứng dụng Web nhanh chóng và dễ dàng Lý do sử dụng ExpressJS

- Cho phép lập trình viên xử lý yêu cầu và phản hồi trước khi chúng được xử lý bởi các route của ứng dụng với Middleware

- Tích hợp dễ dàng với các công nghệ khác: ReactJS, MongoDB,

- Có một cộng đồng lớn với nhiều tài liệu thư viện, framework hỗ trợ cho việc phát triển ứng dụng

Trang 18

2.2.4 Kiểm thử

Giới thiệu về Postman

- Postman là 1 ứng dụng REST Client, dùng để thực hiện test, gửi các request, API màkhông cần sử dụng browser

- Gọi Rest API mà không cần viết bất kỳ dòng code nào

- Hỗ trợ mọi phương thức bao gồm: POST, PUT, DELETE, GET, ….

- Cho phép lập trình viên lưu lại lịch sử của các lần Request nên vô cùng tiện lợiLý do sử dụng Postman

Postman được sử dụng song song với việc lập trình APIs của hệ thống, nhằm có thể kiểm thử ngay sau khi lập trình mà không cần kết nối trước với GUI và thực hiện các thao tác.

CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG

3.1 Phân tích kiến trúc hệ thống

Ứng dụng được xây dựng dựa trên MERN Stack: là một bộ công cụ phát triển ứng dụng web toàn diện , bao gồm các công nghệ MongoDB, Express, React, Node.js Ngoài ra còn có thêm framework Bootstrap hỗ trợ React trong việc bố cục các màn hình, và thư viện

Mongoose giúp tương tác giữa Nodejs và MongoDB.

Trang 19

Hệ thống của Website được chia thành 3 tầng ứng dụng: tầng frontend, backend và database.

Ở tầng database, ứng dụng sử dụng cơ sở dữ liệu MongoDB để lưu trữ thông tin như (họ tên , ngày sinh, số điện thoại, tài khoản….) của người dùng, (thông tin về thực đơn, bài tập, kế hoạch…) Cloudinary hỗ trợ quản lý và hiển thị hình ảnh lên tầng front-end.

Ở tầng back-end, Website sử dụng NodeJS và ExpressJS làm công cụ xây dựng các RestAPI phục vụ cho ứng dụng, nhận các yêu cầu từ tầng front-end, thông qua thư viện

Mongoose, lấy dữ liệu từ tầng database và phản hồi lại yêu cầu một cách nhanh chóng Ở tầng front-end, ReactJS là nền tảng chính để xây dựng các màn hình phù hợp với người dùng, Bootstrap hỗ trợ bố cục giao diện một cách nhanh chóng, không mất nhiều thờigian.

3.2 Phân tích yêu cầu hệ thống

Các yêu cầu chức năng:

● Đăng ký: Trước khi bắt đầu sử dụng ứng dụng, người dùng bắt buộc phải đăng ký tài khoản để đăng nhập

Trang 20

● Đăng nhập: Sau khi đăng ký và sở hữu một tài khoản của riêng mình, người dùng có thể đăng nhập vào ứng dụng và bắt đầu “giảm cân”

● Tạo món ăn, bài tập, kế hoạch: Mặc định trong ứng dụng, sẽ có sẵn thực đơn, các bài tập, kế hoạch gợi ý, người dùng có thể xem, bình luận, đánh giá, tham khảo Nếu bạn có sở thích ăn uống của riêng mình, bạn hoàn toàn có thể tự tạo món ăn, bài tập, kế hoạch để sử dụng cho riêng mình.

● Theo dõi kế hoạch: Bạn có thể tự theo dõi quá trình thực hiện kế hoạch, theo từngngày, từng bữa sau khi bắt đầu thực hiện Nếu cảm thấy kế hoạch chưa phù hợp, bạn có thể tùy chỉnh lại số ngày, bữa ăn, bài tập cho phù hợp.

● Đánh giá món ăn, bài tập, kế hoạch: Đánh giá độ hiệu quả của bài tập, món ăn, kế hoạch dựa vào phần bình luận và đánh giá số sao ( 1 đến 5).

Ngày đăng: 15/05/2024, 09:26

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan