hàm lượng calories trong thức ăn, dinh dưỡng mỗi bữa ăn, lượng nước phù hợp cho cơ thể và theo dõi sức khoẻ như cân nặng, chỉ số BMI… Với thời đại công nghệ phát triển nhanh chóng như hi
GIỚI THIỆU ĐỀ TÀI
Tên đề tài
XÂY DỰNG ỨNG DỤNG THEO DÕI SỨC KHOẺ ĂN UỐNG - CALORIES MASTER
Mô tả đề tài
Sức khỏe là tài sản quý giá và vô cùng quan trọng đối với mỗi người, là nền tảng giúp bạn có một cuộc sống khỏe mạnh, vui vẻ và hạnh phúc Muốn duy trì sức khỏe tốt, quá trình chăm sóc bản thân bắt đầu từ một chế độ ăn uống cân đối và hợp lý, vì dinh dưỡng là nền tảng thiết yếu cho cơ thể Vì vậy, ăn uống khoa học và dinh dưỡng hợp lý là yếu tố then chốt mà bất kỳ ai cũng nên quan tâm để bảo đảm sức khỏe lâu dài và nâng cao chất lượng cuộc sống.
Đối với những người mong muốn sống khỏe mạnh, việc tập trung ăn uống lành mạnh và xây dựng chế độ ăn uống khoa học là rất cần thiết, đặc biệt trong thời đại đời sống ngày càng phát triển và nhu cầu sức khỏe ngày càng cao Để cải thiện chế độ ăn uống và sức khỏe lâu dài, chúng ta cần một phương pháp tính toán và hỗ trợ, ví dụ như một ứng dụng có thể tính lượng calo trong thực phẩm, dinh dưỡng của mỗi bữa ăn và lượng nước phù hợp cho cơ thể Ứng dụng này cũng theo dõi các chỉ số sức khỏe như cân nặng và chỉ số BMI, từ đó giúp người dùng điều chỉnh chế độ ăn uống cho phù hợp Với sự phát triển nhanh của công nghệ, các ứng dụng sức khỏe trên điện thoại ngày càng phổ biến, giúp người dùng tiếp cận các phương pháp ăn uống khoa học và dễ dàng theo dõi sức khỏe bản thân.
Thông qua đề tài này, nhóm sẽ xây dựng ứng dụng Calories Master để theo dõi sức khỏe và chế độ ăn uống của người dùng Ứng dụng cung cấp theo dõi các chỉ số dinh dưỡng hàng ngày, chỉ số BMI và tích hợp công cụ tính calories cho từng bữa ăn Các chức năng cơ bản gồm hiển thị lượng calories và lượng nước cần nạp trong ngày, nhắc nhở người dùng uống nước, và tính toán lượng calories dựa trên thực đơn và các hoạt động hàng ngày Ứng dụng không chỉ quản lý calories cá nhân mà còn tạo ra một môi trường cộng đồng gồm những người sống khỏe mạnh và những người ăn kiêng, giúp họ gặp gỡ nhiều chuyên gia trực tuyến mà không cần mất quá nhiều thời gian hay chi phí.
Ứng dụng được thiết kế để tiết kiệm thời gian và tối ưu hóa thói quen ăn uống khoa học cho người dùng Đồng thời, nền tảng cung cấp chức năng tương tác giữa người dùng, cho phép họ chia sẻ trải nghiệm, thành tựu đạt được và các thông tin hữu ích về ăn uống lành mạnh Nhờ sự kết nối này, người dùng có thể nhận động lực từ cộng đồng, cập nhật các mẹo ăn uống khoa học và thực đơn cân bằng, từ đó nâng cao sức khỏe và hình thành thói quen ăn uống bền vững.
Lý do chọn đề tài
Ngày nay tỷ lệ béo phì và thừa cân đang tăng lên rõ rệt; theo thống kê năm 2020, tỷ lệ thừa cân, béo phì ở khu vực thành thị đạt 26,8%, nông thôn 18,3% và miền núi 6,9% Thừa cân chính là nguyên nhân gây ra các bệnh nguy hiểm như tim mạch, tiểu đường và mỡ máu cao Nguy hiểm là vậy nhưng nhiều người thường chỉ nghĩ đến chữa bệnh khi đã phát hiện, khiến chi phí điều trị tăng cao và sức khỏe suy giảm Vậy tại sao chúng ta không chủ động chăm sóc sức khỏe hàng ngày bằng chế độ tập luyện đều đặn và ăn uống lành mạnh ít chất béo? Thực tế cuộc sống ngày càng bận rộn khiến nhiều người thiếu thời gian để quan tâm đúng mức đến sức khỏe và thể chất của mình.
Dự án này tập trung vào phát triển một ứng dụng Android có thể giúp người dùng duy trì sức khỏe và tăng cường mức độ thể chất bằng cách cung cấp công cụ theo dõi tập luyện, chế độ dinh dưỡng và gợi ý cá nhân hóa Vì hầu hết mọi người đều mang theo điện thoại di động, ứng dụng di động trở thành một lựa chọn dễ dàng để duy trì lối sống lành mạnh và nâng cao thể lực từ bất cứ đâu Với ứng dụng của chúng tôi, người dùng có thể xây dựng thói quen tập luyện đều đặn, theo dõi tiến trình và nhận đề xuất tối ưu cho sức khỏe hàng ngày Ứng dụng Android này nhấn mạnh tính tiện lợi, tính cá nhân hóa và hiệu quả trong việc cải thiện sức khỏe cho người dùng.
Khảo sát hiện trạng
Trên thị trường hiện nay có nhiều ứng dụng nổi tiếng theo dõi sức khỏe và hỗ trợ tính toán calo cho người dùng, tiêu biểu như MyFitnessPal, Lifesum và Weight Calorie Watch Những ứng dụng này có giao diện bắt mắt, dễ sử dụng và sở hữu các tính năng tính toán calo cùng theo dõi sức khỏe tiện lợi, nhanh chóng trở thành những công cụ hàng đầu trong lĩnh vực này Sự phổ biến của chúng được thúc đẩy bởi định hướng tối ưu trải nghiệm người dùng, giúp người dùng không phải ghi nhớ calo của thực phẩm và tránh các tính toán phức tạp mỗi ngày, mỗi bữa ăn.
Dựa trên mục tiêu dự án, nhóm thực hiện sẽ xây dựng một ứng dụng theo dõi sức khỏe ăn uống, tích hợp tính năng tính toán calories cho các thực phẩm và theo dõi các chỉ số sức khỏe cơ bản nhằm mang lại trải nghiệm người dùng dễ sử dụng và tiện lợi Ứng dụng còn được tích hợp nhắc nhở uống nước và lưu lại nhật ký các bữa ăn, giúp người dùng dễ dàng theo dõi chế độ dinh dưỡng và sức khỏe hàng ngày.
Công nghệ sử dụng
- Android Studio, Android Virtual Device
Môi trường thiết kế
Công cụ hỗ trợ
CƠ SỞ LÝ THUYẾT
Tổng quan về Android Studio
2.1.1 Giới thiệu về Android Studio:
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát triển ứng dụng Android, được lựa chọn bởi sự tích hợp mạnh mẽ với Gradle và khả năng tăng tốc quá trình xây dựng, giúp quá trình phát triển diễn ra nhanh hơn và hiệu quả hơn Nó nổi bật với tính năng hoàn thành mã tự động vượt trội so với các IDE khác và có giao diện người dùng thân thiện, cho phép sử dụng và tổ chức dự án dễ dàng Nhờ những tiện ích này, Android Studio trở thành lựa chọn hàng đầu cho dự án Android, mang lại hiệu quả làm việc cao và nâng cao năng suất cho nhà phát triển.
2.1.2 Khái niệm cơ bản trong Android Studio
2.1.2.1 Project và cấu trúc tệp:
Mặc định, Android Studio hiển thị các tệp dự án trong chế độ xem dự án trên Android Chế độ xem này cho phép xem cấu trúc dự án theo lát cắt, cung cấp truy cập nhanh vào các tệp nguồn chính của các dự án Android và giúp bạn làm việc với hệ thống dựa trên Gradle.
- Nhóm các build file cho tất cả các module vào một thư mục chung
Hiển thị các thư mục gốc quan trọng nhất ở cấp cao nhất của phân cấp module
- Nhóm tất cả các file kê khai cho từng module vào một thư mục chung
- Hiển thị các tệp tài nguyên từ tất cả các tập nguồn nguồn Gradle
- Nhóm các tệp tài nguyên cho các khu vực và kiểu màn hình khác nhau trong một nhóm duy nhất cho mỗi loại tài nguyên
Chế độ xem project trong Android Studio hiển thị tất cả các build files ở cấp cao nhất của hệ thống phân cấp dự án theo Gradle Scripts, giúp bạn nắm được cấu trúc dự án một cách rõ ràng Mỗi module dự án xuất hiện dưới dạng một thư mục tại cấp cao nhất và chứa bốn thành phần ở cấp cao nhất.
• java/ - Tệp nguồn cho mô-đun
• manifest/ - Tệp kê khai cho mô-đun
• res/ - Tài nguyên tập tin cho mô-đun
• Gradle Scripts/ - Các file Gradle thiết kế và cố định
Hình 2.1: Mô tả cấu trúc của project trên android studio
Android Build là hệ thống công cụ toàn diện được sử dụng để xây dựng, thử nghiệm, chạy và đóng gói ứng dụng Android của bạn, giúp tối ưu hóa quy trình phát triển và đảm bảo chất lượng sản phẩm Hệ thống này thay thế Ant, công cụ build trước đây từng được sử dụng cùng với Eclipse ADT, mang lại tự động hóa cao hơn, quản lý phụ thuộc hiệu quả và tốc độ biên dịch nhanh hơn.
Nó có thể chạy như một công cụ tích hợp từ menu Android Studio và cũng hoạt động độc lập với dòng lệnh Bạn có thể tận dụng các tính năng của hệ thống build để quản lý quá trình build, tự động hóa các tác vụ và tối ưu hóa quá trình biên dịch, kiểm thử, đóng gói và triển khai dự án Việc tích hợp này giúp tăng hiệu quả làm việc và linh hoạt trong việc quản lý dự án, dù bạn làm việc trực tiếp từ IDE hay từ giao diện dòng lệnh.
• Tùy chỉnh, cấu hình và mở rộng quá trình thiết kế, kiến trúc
- Tạo nhiều APK cho ứng dụng của bạn với các tính năng khác nhau bằng cách sử dụng cùng một dự án và module
• Sử dụng lại mã và tài nguyên trên các tập hợp nguồn
Khả năng linh hoạt của hệ thống build Android cho phép bạn đạt được các yếu tố tùy biến mong muốn mà không cần sửa đổi các tệp nguồn cốt lõi của ứng dụng Nhờ các tùy chọn cấu hình build và plug-in tự động, bạn có thể điều chỉnh tính năng, giao diện và môi trường triển khai một cách linh hoạt mà vẫn giữ nguyên mã nguồn gốc Điều này giúp giảm thiểu rủi ro phá vỡ chức năng, tăng tính ổn định và đẩy nhanh quy trình phát triển cũng như triển khai liên tục (CI/CD) Việc tiếp cận linh hoạt này cho phép phân phối các biến thể của ứng dụng trên nhiều thiết bị Android một cách nhanh chóng, nhất quán và tối ưu hóa trải nghiệm người dùng.
Android Studio đã giới thiệu loạt cải tiến nhằm tăng cường gỡ lỗi và tối ưu hiệu suất mã nguồn, nổi bật với công cụ quản lý thiết bị ảo được nâng cấp, tính năng gỡ lỗi inline tiện lợi và các công cụ phân tích hiệu suất mạnh mẽ Những cải tiến này cho phép mô phỏng thiết bị nhanh hơn, gỡ lỗi trực tiếp trên mã nguồn với khả năng xem và cập nhật biến tại điểm dừng, đồng thời theo dõi hiệu suất ứng dụng một cách chi tiết để tối ưu hiệu năng và rút ngắn thời gian phát triển Nhờ đó, nhà phát triển có thể nâng cao chất lượng ứng dụng và mang lại trải nghiệm người dùng tốt hơn.
2.1.2.3 Trình quản lý thiết bị ảo của Android (AVD):
AVD Manager đã cập nhật các liên kết trên màn hình để giúp người dùng dễ dàng chọn cấu hình thiết bị phổ biến nhất, cùng với kích thước màn hình và độ phân giải trong chế độ xem trước.
Trình quản lý AVD liên kết với bộ mô phỏng cho các thiết bị Nexus 6 và Nexus 9, cho phép mô phỏng chi tiết cấu hình và đặc tính của Android trên các thiết bị này AVD cũng hỗ trợ tạo giao diện Android tùy chỉnh dựa trên các đặc tính mô phỏng cụ thể và gán các giao diện đó cho từng cấu hình phần cứng, giúp tối ưu hóa quá trình kiểm thử và phát triển ứng dụng trên nhiều kích thước màn hình và thông số thiết bị.
- Android Studio cài đặt Intel® x86 Hardware Accelerated Execution Manager (HAXM) và tạo bộ mô phỏng mặc định để tạo nhanh ứng dụng mẫu
• Tùy chỉnh, cấu hình và mở rộng quá trình thiết kế, kiến trúc
- Tạo nhiều APK cho ứng dụng của bạn với các tính năng khác nhau bằng cách sử dụng cùng một dự án và module
• Sử dụng lại mã và tài nguyên trên các tập hợp nguồn
Hệ thống build Android có tính linh hoạt cao cho phép bạn đạt được tất cả các yếu tố thiết yếu mà không cần chỉnh sửa các tệp nguồn cốt lõi của ứng dụng Với khả năng cấu hình linh hoạt, quản lý biến môi trường và hỗ trợ các biến thể build, bạn có thể tối ưu hóa hiệu suất, bảo mật và tính tương thích mà vẫn duy trì nguồn mã gốc nguyên vẹn Điều này giúp triển khai nhanh hơn, giảm rủi ro khi thay đổi mã nguồn và dễ dàng áp dụng các cập nhật mà không ảnh hưởng đến cốt lõi của ứng dụng.
Android Studio mang đến nhiều cải tiến hỗ trợ gỡ lỗi và tối ưu hiệu suất mã nguồn Các công cụ được cải tiến bao gồm quản lý thiết bị ảo, chức năng inline debug và công cụ phân tích hiệu suất, giúp phát hiện và khắc phục lỗi nhanh chóng Nhờ những cải tiến này, quá trình gỡ lỗi trở nên hiệu quả hơn và hiệu suất của ứng dụng được cải thiện đáng kể.
Inline debugging là phương pháp gỡ lỗi tại chỗ nhằm tăng cường quy trình code walk-throughs trong chế độ debugging, bằng cách xác thực tham chiếu, theo dõi biểu thức và kiểm tra giá trị biến ngay khi mã nguồn đang chạy Thông tin liên quan đến inline debugging bao gồm việc hiển thị giá trị biến tại từng bước thực thi, kết quả của các biểu thức và trạng thái tham chiếu để người phát triển có thể xác thực đúng sai và đảm bảo luồng điều khiển hoạt động như thiết kế Việc áp dụng inline debugging giúp rút ngắn thời gian sửa lỗi, nâng cao hiệu quả gỡ lỗi và cải thiện chất lượng phần mềm bằng cách tăng tính minh bạch của quá trình kiểm tra và soát các tham chiếu, biểu thức và biến.
• Tham chiếu các đối tượng (các đối tượng này là tham chiếu của một đối tượng đã chọn)
• Phương thức trả về giá trị
• Lambda và biểu thức toán tử
- Tạo nhiều APK cho ứng dụng của bạn với các tính năng khác nhau bằng cách sử dụng cùng một dự án và module
• Sử dụng lại mã và tài nguyên trên các tập hợp nguồn
Khả năng linh hoạt của hệ thống build Android cho phép bạn đạt được tất cả các yếu tố đã nêu mà không cần sửa đổi các tệp nguồn cốt lõi của ứng dụng Nhờ khả năng cấu hình và tuỳ biến sâu, bạn có thể điều chỉnh quy trình biên dịch, cấu hình môi trường và các tham số build một cách linh hoạt, đồng thời giữ nguyên mã nguồn gốc của ứng dụng Điều này giúp tối ưu hóa quá trình phát triển, tăng tính hiệu quả và giảm rủi ro tác động đến các thành phần cốt lõi.
Android Studio mang đến một loạt cải tiến nhằm hỗ trợ gỡ lỗi và tối ưu hiệu suất mã nguồn Các công cụ được cải tiến bao gồm công cụ quản lý thiết bị ảo, tính năng gỡ lỗi inline và công cụ phân tích hiệu suất, giúp tối ưu hiệu suất ứng dụng Android một cách hiệu quả.
2.1.3 Ưu điểm của Android Studio:
- Được tăng trưởng bỏi Google, cũng là chủ sở hữu của hệ quản lý và điều hành android
- Các công cụ tương hộ và được update mới nhất và vừa đủ
- Các tính năng dễ làm quen và giao diện thân thiện, hỗ trợ kéo thả là một điểm cộng lớn
- Có nhiều tài liệu tham khảo và hướng dẫn đầy đủ và rõ ràng cũng như các diễn đàn dành cho các lập trình viên Android
Java
Java là một ngôn ngữ lập trình hiện đại, bậc cao, hướng đối tượng, bảo mật và mạnh mẽ Là một Platform rất phổ biến
Ngôn ngữ Java ban đầu được Sun Microsystems phát triển, do James Gosling khởi xướng và phát hành vào năm 1995 Phiên bản mới nhất của Java Standard Edition là Java SE.
8 Với sự tiến bộ của java và sự phổ biến rộng rãi của nó, nhiều cấu hình đã được xây dựng để phù hợp với nhiều loại nền tảng khác nhau Ví dụ: J2EE cho các ứng dụng doanh nghiệp hoặc di động
2.2.2 Các tính năng của Java:
Trong Java, hướng đối tượng là nguyên tắc cốt lõi khi mọi thứ được coi là một Object Java dễ mở rộng và bảo trì nhờ được xây dựng trên mô hình Object, cho phép tái sử dụng mã, đóng gói dữ liệu và triển khai kế thừa, đa hình một cách tự nhiên Chính đặc trưng dựa trên đối tượng giúp phát triển phần mềm linh hoạt hơn, tối ưu cho sự mở rộng trong tương lai và dễ bảo dưỡng qua thời gian.
Java có đặc tính nền tảng độc lập: khác với nhiều ngôn ngữ lập trình như C và C++, khi được biên dịch, Java không biến đổi thành mã máy của một nền tảng cụ thể mà sang mã bytecode – nền tảng độc lập Mã bytecode này được máy ảo Java (JVM) thông dịch và thực thi trên bất kỳ nền tảng nào có JVM, giúp ứng dụng Java có thể chạy được trên nhiều hệ điều hành khác nhau mà không cần biên dịch lại.
• Đơn giản - Java được thiết kế để dễ học Nếu bạn hiểu khái niệm cơ bản về OOP Java, sẽ rất dễ để trở thành master về java
Trong lĩnh vực bảo mật, Java nổi bật với tính năng an toàn cho phép phát triển các hệ thống không chứa virus và không bị giả mạo Các kỹ thuật xác thực dựa trên mã hóa khóa công khai được tích hợp nhằm tăng cường tính xác thực và bảo mật cho ứng dụng Nhờ đó, các giải pháp dựa trên Java có thể đảm bảo sự an toàn, tính toàn vẹn dữ liệu và tin cậy cho người dùng và doanh nghiệp.
Trình biên dịch Java tạo ra định dạng tệp đối tượng có kiến trúc độc lập nền tảng (bytecode), giúp mã Java được biên dịch và thực thi trên nhiều bộ vi xử lý và hệ điều hành khác nhau Định dạng bytecode này hoạt động trên Máy ảo Java (JVM), mang lại tính đa nền tảng và tương thích cao cho các ứng dụng Java Nhờ kiến trúc độc lập nền tảng, mã Java có thể triển khai linh hoạt trên nhiều nền tảng phần cứng và hệ điều hành mà vẫn đảm bảo đầy đủ chức năng và hiệu suất.
Portable - Java được thiết kế với kiến trúc tập trung và không có các khía cạnh thực hiện phụ thuộc của đặc tả, giúp Java có khả năng di động cao Trình biên dịch cho Java được viết bằng ANSI C, là một tập con của POSIX.
Java mạnh mẽ và an toàn, nỗ lực loại bỏ các tình huống dễ bị lỗi bằng cách kiểm tra lỗi tại thời gian biên dịch và kiểm tra lỗi tại runtime Phương pháp này giúp bắt lỗi ngay khi biên dịch và xử lý lỗi phát sinh khi chương trình chạy, từ đó tăng độ ổn định và tin cậy cho ứng dụng Java.
Đa luồng là tính năng then chốt của Java cho phép viết các chương trình có thể thực hiện nhiều tác vụ đồng thời, từ đó tăng hiệu suất và đáp ứng nhanh hơn với người dùng Nhờ xử lý song song, các nhà phát triển có thể thiết kế các ứng dụng tương tác chạy trơn tru hơn bằng cách phân tách công việc thành các luồng riêng biệt và tối ưu hóa quản lý tài nguyên Việc tận dụng đa luồng giúp ứng dụng phản hồi nhanh, xử lý đồng thời các tác vụ như tính toán, I/O và giao diện người dùng, nâng cao trải nghiệm người dùng và độ ổn định của hệ thống Đây là yếu tố cốt lõi khi xây dựng các ứng dụng Java chịu tải, có khả năng mở rộng và thích ứng với nhu cầu ngày càng cao.
• Thông dịch - Mã byte Java được dịch trực tiếp tới các máy tính gốc và không được lưu trữ ở bất cứ đâu
• Hiệu năng cao - Với việc sử dụng trình biên dịch Just-In-Time, Java cho phép thực hiện hiệu năng cao
• Phân tán - Java được thiết kế cho môi trường phân tán của Internet
Java được xem là ngôn ngữ năng động hơn C hoặc C++ nhờ thiết kế để thích nghi với môi trường phát triển đang thay đổi Các chương trình Java có thể mang theo một lượng lớn thông tin tại thời gian chạy, được dùng để xác minh và giải quyết các truy cập vào các đối tượng tại thời gian chạy.
Java là một nền tảng độc lập, cho phép chạy mã Java trên bất kỳ máy tính nào mà không cần cài đặt phần mềm đặc biệt Điều này được thực hiện bởi Java Virtual Machine (JVM), giúp ứng dụng Java hoạt động trên nhiều hệ điều hành mà không cần chỉnh sửa mã nguồn Nhờ tính di động và sự nhất quán của Java, việc triển khai trở nên dễ dàng, mang lại trải nghiệm người dùng đồng nhất trên Windows, macOS và Linux.
- Hướng đối tượng: Vì các lớp và đối tượng của nó
- Tính đa luồng: Có thể thực thi nhiều chương trình đồng thời
- Che giấu con trỏ: Java mạnh mẽ vì có nhiều tính năng như thu gom rác, không sử dụng con trỏ rõ ràng, xử lý ngoại lệ
- Ngôn ngữ cấp cao: Ngữ nghĩa, cú pháp tự nhiên dễ hiểu
- Khả năng mở rộng cao: do thuần hướng đối tượng nên hệ thống dễ scale.
AVD Manager
AVD là viết tắt của Android Virtual Device Manager Nó là công cụ tích hợp sẵn của Android studio Điều này cho phép kiểm tra ứng dụng trên một số thiết bị ảo có các đặc điểm khác nhau như cấu hình phần cứng, vùng lưu trữ giao diện, hình ảnh hệ thống Vì vậy, công cụ này đã giúp rất nhiều để kiểm tra ứng dụng trên các thiết bị serval mà không cần thiết bị thực.
Firebase
Firebase là nền tảng phát triển ứng dụng di động và web, cung cấp API đơn giản và mạnh mẽ để xây dựng và triển khai nhanh chóng mà không cần backend hay server Bạn có thể tập trung vào frontend và trải nghiệm người dùng, trong khi các dịch vụ đám mây được quản lý sẵn hỗ trợ lưu trữ, xác thực, cơ sở dữ liệu thời gian thực và hosting cho dự án của mình.
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây, được hỗ trợ bởi hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năng chính của Firebase là giúp người dùng lập trình ứng dụng một cách dễ dàng bằng cách tối giản các thao tác với cơ sở dữ liệu.
Firebase là nền tảng cung cấp API và giao diện lập trình ứng dụng đơn giản, giúp bạn triển khai ứng dụng nhanh chóng Mục đích khi dùng Firebase là tăng số lượng người dùng và tối ưu hóa lợi nhuận cho dự án Dịch vụ của Firebase rất đa năng và có hệ thống bảo mật cao, đồng thời hỗ trợ cả hai nền tảng Android và iOS Không có gì ngạc nhiên khi nhiều lập trình viên chọn Firebase làm nền tảng đầu tiên để xây dựng ứng dụng cho hàng triệu người dùng trên toàn thế giới.
2.4.2 Các tính năng của Firebase:
Đăng ký tài khoản trên Firebase để xây dựng ứng dụng đồng nghĩa với việc bạn có một cơ sở dữ liệu thời gian thực Dữ liệu được trả về ở định dạng JSON và ngay lập tức được đồng bộ thời gian thực tới mọi kết nối client, giúp thông tin hiển thị nhất quán trên tất cả các thiết bị.
- Đối với các ứng dụng đa nền tảng, tất cả các client đều sử dụng cùng một cơ sở dữ liệu
Hệ thống tự động cập nhật dữ liệu mới nhất mỗi khi các lập trình viên phát triển và triển khai ứng dụng, đảm bảo thông tin luôn được cập nhật và đồng bộ Toàn bộ dữ liệu sau đó được truyền qua kết nối SSL an toàn có chứng nhận 2048 bit, tăng cường bảo mật và sự riêng tư cho người dùng.
Trong trường hợp mất mạng, dữ liệu được lưu tại máy người dùng (local) và mọi thay đổi sẽ tự động đồng bộ lên Firebase, đảm bảo dữ liệu luôn được cập nhật Đồng thời, các dữ liệu ở local chưa đồng bộ với server sẽ tự động cập nhật để Firebase luôn phản ánh dữ liệu mới nhất và duy trì sự nhất quán giữa local và server.
- Hoạt động nổi bật của Firebase là xây dựng các bước xác thực người dùng bằng
Email, Facebook, Twitter, GitHub và Google là các nền tảng hỗ trợ xác thực để đăng nhập an toàn và bảo mật Đồng thời, xác thực nặc danh cho các ứng dụng cũng được triển khai, giúp người dùng kết nối mà không tiết lộ danh tính Hoạt động xác thực đóng vai trò thiết yếu trong việc bảo vệ thông tin cá nhân và ngăn ngừa việc tài khoản bị chiếm đoạt, mang lại sự an tâm khi sử dụng các dịch vụ trực tuyến.
Firebase Storage là một dịch vụ đám mây được thiết kế để lưu trữ và quản lý các nội dung mà người dùng ứng dụng tạo ra, như ảnh, video và các dữ liệu ở dạng file Dịch vụ này cho phép tải lên và lưu trữ an toàn, quản lý quyền truy cập, tối ưu hóa tốc độ truy xuất và tích hợp dễ dàng với các công cụ của Firebase, giúp các ứng dụng di động và web xử lý media với hiệu quả và linh hoạt.
Firebase Storage cung cấp các API để tải lên và tải xuống các tập tin từ ứng dụng của bạn một cách bảo mật, giúp bạn không phải lo lắng về chất lượng đường truyền mạng Dịch vụ này tối ưu hóa quá trình truyền dữ liệu và đảm bảo hiệu suất ổn định, mang lại trải nghiệm người dùng mượt mà khi làm việc với các loại file như hình ảnh, video và tài liệu.
- Firebase Storage được xây dựng trên nền tảng Google Cloud Platform nên có nhiều lợi thế
2.4.3 Một số câu lệnh cơ bản:
- Tạo tài khoản mới thông qua Authentication firebase:
Hình 2.2: Authentication firebase hỗ trợ tạo tài khoản cho user
- Ghi dữ liệu lên real-time database:
Hình 2.3: Real-time database hỗ trợ tạo hàm tạo dữ liệu
- Đọc dữ liệu từ real-time database:
Hình 2.4: Real-time database hỗ trợ hàm đọc dữ liệu
- Tạo tài khoản và sử dụng dễ dàng
- Tốc độ phát triển nhanh
- Nhiều dịch vụ trong một nền tảng
- Được cung cấp bởi Google
- Tập trung vào phát triển giao diện người dùng
- Firebase không có máy chủ
- Tạo lưu lượng truy cập
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Sơ đồ Use-case
Hình 3.1 Sơ đồ use case
Đăng nhập
Hình 3.2 Use case đăng nhập
Bảng 1 Đặc tả use case đăng nhập
Tên Use – Case Đăng nhập
Mô tả Use-Case cho phép người dùng đăng nhập vào hệ thống
Actor Khách ( người chửa có tài khoản ) Điều kiện kích hoạt Người dùng nhập email, mật khẩu, sau đó nhấn “Login”
Tiền điều kiện Đã có tài khoản
Hậu điều kiện Người dùng đăng nhập vào hệ thống thành công
1 Hệ thống hiển thị màn hình Welcome
3 Người dùng nhập email và mật khẩu
5 Hệ thống kiểm tra thông tin đăng nhập
6 Nếu thông tin hợp lệ hệ thống thông báo đăng nhập thành công
Mật khẩu hoặc tên đăng nhập sai:
1 Hệ thống hiển thị thông báo đăng nhập không thành công
2 Quay lại bước 3 của Luồng sự kiện chính.
Đăng kí
Hình 3.3 Use case đăng kí
Bảng 2 Đặc tả use case đăng kí
Tên Use – Case Đăng kí
Mô tả Use-Case cho phép người dùng đăng kí tài khoản
Actor Khách ( người chưa có tài khoản ) Điều kiện kích hoạt Người dùng nhấn vào “Sign Up Free”, nhập các thông tin cần thiết và nhấn “Create Account”
Hậu điều kiện Người dùng đăng kí vào hệ thống thành công
1 Hệ thống hiển thị màn hình Welcome
2 Người dùng nhấn “Sign up Free”
3 Người dùng nhập các thông tin
4 Người dùng nhấn “Create Account”
5 Hệ thống kiểm tra thông tin đăng kí
6 Nếu thông tin hợp lệ hệ thống thông báo đăng nhập thành công
Thông tin không hợp lệ
1 Hệ thống hiển thị thông báo thông tin không hợp lệ
2 Quay lại bước 3 của Luồng sự kiện chính.
Đăng xuất
Hình 3.4 Use case đăng xuất
Bảng 3 Đặc tả use case đăng xuất
Tên Use – Case Đăng xuất
Mô tả Use-Case người dùng đăng xuất tài khoản
Actor Người dùng Điều kiện kích hoạt Người dùng nhấn vào “Log out” ở tab “Profile”
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Màn hình trở lại trang Welcome
1 Người dùng chọn tab “Profile”
2 Người dùng nhấn “Log out”
3 Người dùng nhấn “Create Account”
4 Màn hình trở lại trang Welcome Luồng sự kiện phụ
Quản lý Profile
Hình 3.5 Use case quản lý profile
Bảng 4 Đặc tả use case quản lý profile
Use-Case người dùng quản lý các thông tin Profile như : chiều cao, cân nặng, ngày sinh, cường độ hoạt động, giới tính
Vai trò của người dùng (Actor): Người dùng Điều kiện kích hoạt là người dùng đăng nhập vào tài khoản mới hoặc nhấn vào Edit Profile ở tab Profile để cập nhật thông tin, và tiền điều kiện là người dùng đã đăng nhập vào hệ thống.
Hậu điều kiện Lượng Calories hằng ngày cần nạp thay đổi theo thông tin đã nhập
1 Người dùng chọn tab “Profile”, nhấn “Edit Profile” hoặc người dùng đăng nhập tài khoản mới
2 Người dùng thêm, sửa thông tin Profile
3 Người dùng nhấn “Update Profile”
4 Cập nhật Profile thành công
Luồng sự kiện phụ Thông tin profile không hợp lệ
1 Hiển thị thông báo profile không hợp lệ
2 Quay lại bước 2 luồng sự kiện chính.
Tạo món ăn
Hình 3.6 Use case tạo món ăn
Bảng 5 Đặc tả use case tạo món ăn mới
Mô tả Use-Case người dùng tạo món ăn mới
Actor Người dùng Điều kiện kích hoạt Người dùng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Món ăn được thêm mới thành công
1 Người dùng nhấn vào Food ở màn hình Home
2 Nhấn nút “+” trên list món ăn
3 Nhập các thông tin cần thiết
Quản lý lượng nước
Hình 3.7 Use case quản lý lượng nước
Bảng 6 Đặc tả use case quản lý lượng nước
Mô tả Use-Case người dùng quản lý lượng nước : thêm, bớt lượng nước
Actor Người dùng Điều kiện kích hoạt Người dùng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Thêm, bớt lượng nước thành công
1 Người dùng nhấn vào dấu +, - tại mục Water trên màn hình Home
2 Lượng nước được thêm, bớt thành công
Thêm bữa ăn trong ngày
Hình 3.8 Use case thêm bữa ăn trong ngày
Bảng 7 Đặc tả use case thêm bữa ăn trong ngày
Tên Use – Case Thêm bữa ăn trong ngày
Mô tả Use-Case người dùng thêm món ăn đã ăn trong ngày
Actor Người dùng Điều kiện kích hoạt Người dùng nhấn vào bữa ăn tại mục Food trên màn hình
Home Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Thêm món ăn đã ăn trong ngày thành công
1 Người dùng nhấn vào bữa ăn ( Breakfast, Lunch, Dinner, Snack ) trên màn hình Home
2 Nhấn vào món ăn trong list
3 Nhấn “Add to Breakfast” hoặc tương tự
4 Món ăn được thêm vào bữa ăn thành công
5 Kết thúc use – case Luồng sự kiện phụ
Thêm bài tập trong ngày
Hình 3.9 Use case thêm bài tập trong ngày
Bảng 8 Đặc tả use case thêm bài tập trong ngày
Tên Use – Case Thêm bài tập trong ngày
Mô tả Use-Case người dùng thêm bài tập đã tập trong ngày
Actor Người dùng Điều kiện kích hoạt Người dùng thêm bài tập trong mục Workout trong màn hình
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Thêm bài tập đã tập trong ngày thành công
1 Người dùng nhấn chọn bài tập trong mục Workout
2 Chọn thời lượng bài tập
4 Bài tập đã tập được thêm thành công
Thay đổi cân nặng hiện tại
Hình 3.10 Use case thay đổi cân nặng
Bảng 9 Đặc tả use case thay đổi cân nặng hiện tại
Tên Use – Case Thay đổi cân nặng hiện tại
Mô tả Use-Case người dùng thay đổi cân nặng hiện tại
Actor Người dùng Điều kiện kích hoạt Người dùng nhấn vào dấu +, - ở mục Weight hoặc nhấn vào
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Người dùng đã nhập đầy đủ thông tin của profile
Hậu điều kiện Thay đổi cân nặng hiện tại thành công
1 Người dùng nhấn +, - hoặc nhập thông tin cân nặng hiện tại trong mục Record ở phần Weight
3 Cân nặng thay đổi thành công
Thay đổi cân nặng mục tiêu
Hình 3.11 Use case thay đổi cân nặng mục tiêu
Bảng 10 Đặc tả use case thay đổi cân nặng mục tiêu
Tên Use – Case Thay đổi cân nặng mục tiêu
Mô tả Use-Case người dùng thay đổi thông tin cân nặng mục tiêu như cân nặng mong ước, số kg giảm một tuần
Actor Người dùng Điều kiện kích hoạt Người dùng nhấn vào Set Goal ở mục Weight
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Người dùng đã nhập đầy đủ thông tin của profile
Hậu điều kiện Thay đổi cân nặng mục tiêu thành công
1 Người dùng nhấn Set Goal ở mục Weight
3 Nhập các thông tin như: cân nặng mong muốn, số kg giảm 1 tuần
4 Nhấn Submit, thay đổi thành công
Số kg giảm một tuần lớn hơn 1:
1 Hiển thị thông báo lỗi
2 Quay về bước 3 ở luồng sự kiện chính.
Quản lý bài đăng
Hình 3.12 Use case quản lý bài đăng
Bảng 11 Đặc tả use case thêm bài đăng
Tên Use – Case Quản lý bài đăng
Mô tả Use-Case người dùng thêm bài đăng
Actor Người dùng Điều kiện kích hoạt Người dùng viết và đăng bài
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Hậu điều kiện Thêm bài đăng thành công
1 Người dùng nhấn vào nút ở góc phải dưới màn hình khi ở tab Feed
2 Nhập nội dung, chọn ảnh
3 Nhấn nút tick góc phải dưới màn hình
4 Thêm bài đăng thành công
Nội dung đăng bài trống:
1 Hiển thị thông báo “Post is empty”
2 Quay lại bước 2 ở luồng sự kiện chính
Bảng 12 Đặc tả use case xóa, sửa bài đăng
Tên Use – Case Sửa, xóa bài đăng
Mô tả Use-Case người dùng sửa, xóa cái bài viết đã đăng
Actor Người dùng Điều kiện kích hoạt Người dùng nhấn sửa, xóa bài đăng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
Người dùng đã có bài đăng
Hậu điều kiện Sửa, xóa bài đăng thành công
1 Người dùng nhấn vào icon dấu ba chấm ở góc phải của bài đã đăng
2 Nhấn xóa hoặc sửa bài đăng
3 Xóa, sửa bài đăng thành công
Người dùng tương tác Service
Hình 3.13 Use-case người dùng tường tác service Bảng 13 Đặc tả use case tương tác với service
Tên Use – Case Người dùng tương tác service
Mô tả Use-Case người dùng tương tác với các service
Actor Người dùng Điều kiện kích hoạt Người dùng contact hoặc order service của seller
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống Đã có service đăng lên
Hậu điều kiện Contact hoặc order thành công
1 Tại tab Service, người dùng chọn bài đăng
2 Nhấn vào contact hoặc order
Seller đăng Service
Hình 3.14 Use - case Seller đăng service Bảng 14 Đặc tả use case seller đăng service
Tên Use – Case Seller đăng service
Mô tả Use-Case seller đăng các service để người dùng bình thường tường tác
Actor Người dùng Điều kiện kích hoạt Seller đăng service
Tiền điều kiện Người dùng có role seller đã đăng nhập vào hệ thống
Hậu điều kiện Contact hoặc order thành công
1 Tại tab Service, seller nhấn vào icon đăng bài
2 Nhập các thông tin của service
3 Nhấn vào icon xác nhận
Người dùng nhắn tin
Hình 3.15 Use case nhắn tin với user
Bảng 15 Đặc tả use case nhắn tin
Tên Use – Case Người dùng nhắn tin
Mô tả Use-Case người dùng nhắn tin với các user khác
Actor Người dùng Điều kiện kích hoạt Nhắn tin với người dùng khác
Tiền điều kiện Người dùng đã đăng nhập
Hậu điều kiện Nhắn tin thành công
1 Chọn user muốn nhắn tin
2 Nhập nội dung tin nhắn và gửi
Tìm kiếm user
Hình 3.16 Use – case tìm kiếm user
Bảng 16 Đặc tả use case tìm kiếm user
Tên Use – Case Người dùng tìm kiếm user
Mô tả Use-Case người dùng tìm các user nhắn tin, kết bạn
Actor Người dùng Điều kiện kích hoạt Tìm kiếm user
Tiền điều kiện Người dùng đã đăng nhập
Hậu điều kiện Tìm kiếm user thành công
3 Nhập tên user muốn tìm kiếm
Xem Diary
Hình 3.17 Use – case xem diary
Bảng 17 Đặc tả use case xem nhật kí
Tên Use – Case Người dùng xem Diary ( nhật kí )
Mô tả Use-Case người dùng xem nhật kí theo ngày
Actor Người dùng Điều kiện kích hoạt Chọn ngày xem nhật kí
Tiền điều kiện Người dùng đã đăng nhập
Hậu điều kiện Xem nhật kí thành công
3 Chọn ngày muốn xem Diary
Kết bạn
Hình 3.18 Use – case kết bạn
Bảng 18 Đặc tả use case tìm người dùng
Tên Use – Case Người dùng kết bạn
Mô tả Use-Case người dùng kết bạn với nguời dùng khác
Actor Người dùng Điều kiện kích hoạt Kết bạn với người dùng khác
Tiền điều kiện Người dùng đã đăng nhập
Người dùng muốn kết bạn tồn tại
Hậu điều kiện Kết bạn thành công
3 Nhập tên người muốn tìm
THIẾT KẾ GIAO DIỆN
Trang welcome, Đăng ký, Setup Account
Hình 4.1 Giao diện chào mừng người dùng
- Khi click vào nút SIGN UP FREE, sẽ dẫn vào trang Account Type
Hình 4.2 Giao diện Account Type
- Chọn 1 trong 2 checkbox FIND A SERVICE hoặc BECOME A SELLER sẽ dẫn tới màn hình đăng ký
Hình 4.3 Giao diện Create Account
- Sau khi đăng kí thành công sẽ chuyển đến màn hình Setup Account
Hình 4.4 Giao diện Setup Account
- Màn hình Setup Account cần nhập các thông liên quan đến: cân nặng, chiều cao, ngày tháng năm sinh, giới tính, mức độ hoạt động, tên người dùng, avatar
Màn hình Đăng nhập
Hình 4.5 Giao diện Setup Account
- Email: là email tài khoản đã được đăng ký
- Password: là pass email tài khoản đã được đăng ký
- Khi đăng nhập đúng Email sẽ chuyển tới màn hình home
Hình 4.6 Giao diện màn hình home
Màn hình Home
Hình 4.7 Giao diện màn hình home
Hình 4.8 Giao diện màn hình home
Hình 4.9 Giao diện màn hình home
- Khi đăng nhập, trang chủ Home hiện các thông tin của người dùng:
• Goal : Lượng calo cần nạp trong hôm nay
• Food : Lượng calo nạp qua bữa ăn trong hôm nay
• Wordkout: Lượng calo tiêu thụ qua tập thể dục hôm nay
• Remaining : Tổng lượng calo cần nạp còn lại
• Diary: Xem nhật kí thông tin của một ngày nào đó
Hình 4.10 Giao diện màn hình diary
Hình 4.11 Giao diện màn hình diary
Bạn có thể thêm món ăn hôm nay vào các bữa sáng, trưa, tối và bữa phụ để theo dõi chế độ ăn uống hàng ngày Khi nhấn vào "Breakfast", người dùng có thể chọn món ăn cho bữa sáng, sau đó chọn món ăn và nhấn "Add to Breakfast" để lưu món ăn vào bữa sáng.
Hình 4.12 Giao diện màn Food
- Trong giao diện màn hình trên, người dùng có thể nhấn vào icon “+” để them món ăn mới như giao diện dưới Gồm các mục :
• Food name : Tên món ăn
• Serving unit : Đơn vị của món ăn
• Serving size : Số lượng bữa ăn theo đơn vị
• Food Calories: Lượng calories trong số lượng Serving size
• Carb, Fat, Protein : Lượng carb, chất béo, pr
Hình 4.13 Giao diện màn hình Add food
• Workout : Thêm các bài tập mà hôm nay người dùng tập Người dùng có thể nhấn vào bài tập, sau đó nhấn “Add Workout”
Hình 4.14 Giao diện màn hình add Workout
• Water : Hiển thị, them, bớt lượng nước ( tính theo ly ) người dùng uống hôm nay
Trong mục Weight, hệ thống hiển thị trọng lượng hiện tại, cân nặng mục tiêu và các nút tăng/giảm trọng lượng hiện tại Người dùng nhấn vào nút 'Record' để ghi nhận cân nặng hiện tại Người dùng có thể nhấn vào 'Set Goal' để đặt cân nặng mục tiêu và thiết lập mức giảm cân mỗi tuần dưới 1 kg.
Hình 4.15 Giao diện màn hình thiết lập mục tiêu cân nặng
• BMI: Chỉ số BMI dựa vào cân nặng và chiều cao người dùng đã nhập.
Trang Feed
Hình 4.16 Giao diện màn hình Feed
- Người dùng đăng bài để trao đổi với các người dùng khác Người dùng nhấn vào nút ở góc phải dưới màn hình để đăng bài
- Người dùng nhấn vào icon ảnh ở góc phải dưới để chọn ảnh, sau đó nhấn vào icon “tick” để đăng bài
Hình 4.17 Giao diện màn hình Create Post
- Người dùng có thể like, comment của các user khác Bằng cách nhấn vào icon
Hình 4.18 Giao diện màn hình Feed
Hình 4.19 Giao diện màn hình Comments
Màn hình Service cho seller
Hình 4.20 Giao diện màn hình Service
- Màn hình hiển thị nút thêm khi đăng nhập với vai trò là seller
- Giúp seller có thể đăng dịch vụ của mình cho người khác xem và order dịch vụ của mình
- Các seller cũng có thể order được các dịch vụ của các seller khác
Màn hình Create Service
Hình 4.21 Màn hình Create Service
Hình 4.22 Màn hình create Service
- Màn hình create service giúp seller tạo mới một bài viết về dịch vụ của mình
- Chứa tiêu đề dịch vụ (service titile)
- Mô tả về dịch vụ (summary description)
- Tổng quát về dịch vụ (full description)
- Từ khóa tìm kiếm (keyword)
- Thêm hình ảnh cho bài viết
Màn hình Service cho người dùng bình thường
Hình 4.23 Giao diện màn hình service
- Hiển thị các bài đăng service của Seller, người dùng có thể nhấn vào các bài đăng để thao tác với màn hình View Service
Màn hình View Service cho người dùng bình thường
Hình 4.24 Giao diện màn hình View Service
- Người dùng có thể xem chi tiết thông tin service mà seller đăng như là : tên service, rating của service, số lượt orders, thời gian đăng service
- Người dùng có thể nhấn vào Contact để nhắn tin với seller trong màn hình
- Người dùng có thể nhấn vào “Order” để add Service này vào danh sách
Màn hình View Service cho người dùng bình thường
Hình 4.25 Giao diện màn hình giao tiếp với seller
Người dùng có thể giao tiếp với seller đã đăng service mà người dùng chọn.
Màn hình View Service cho người dùng bình thường
Hình 4.26 Màn hình view service
- Màn hình View Service hiển thị thông tin dịch vụ được đăng
Màn hình View Service cho người dùng bình thường
- Màn hình hình tổng hợp lại các tính năng của người dùng có:
- Thông tin cá nhân (cân nặng, chiều cao, email, mức độ tập luyện, ngày sinh, giới tính)
Màn hình Messages
- Khi click vào người dùng có thể chat riêng với họ
- Màn hình Messages giúp người dùng có thể chat với nhau
Màn hình Find
- Màn hình Find giúp tìm kiếm người dùng hoặc một dịch vụ nào đó từ phía seller
Màn hình Requests
- Màn hình Request giúp người dùng có thể xem được những lời mời connect từ user khác ACCEPT để đồng ý connect REJECT để bỏ qua.
Màn hình Connections
- Màn hình Connections: hiển thị những người dùng đang kết nối với bạn
Màn hình Services (chỉ có ở seller)
- Màn hình Services: giúp quản lí các bài viết service từ phía seller
Màn hình Orders (chỉ có ở người dùng bình thường)
Hình 4.36 Màn hình Order Service
- Hiển thị các Services mà người dùng đã Order
- Người dùng có thể nhấn vào Cancel Order để hủy Order Service đó.
Màn hình Services Manager (chỉ có ở seller)
Hình 4.37 Màn hình Service Manager
- Hiển thị nhứng người dùng muốn order dịch vụ của bạn
- FINALIZE THE ORDER kết thúc dịch vụ của bạn đối với user khác
Màn hình Orders
Hình 4.38 Màn hình Order Service
- Hiển thị những dịch vụ mà bạn order từ các seller khác
- View Service để chuyển tới trang View Service
- Cancel Order: bỏ qua dịch vụ order được chọn
Màn hình Post
Hình 4.39 Màn hình quản lí Posts
- Hiển thị những bài post mà người dùng đã đăng
Màn hình Edit Profile
Hình 4.40 Màn hình Edit profile
Hình 4.41 Màn hình Edit Profile
- Giúp update lại các thông tin của người dùng: tên, hình ảnh, cân nặng, chiều cao, ngày sinh, giới tính, mức độ vận động
- Click update Profile để cập nhật Profile