GIỚI THIỆU CHUNG
Lý do chọn đề tài
Trong cuộc sống thành phố hiện đại, nhiều gia đình trẻ phải đối mặt với áp lực công việc và chăm sóc con cái Bố mẹ thường làm việc từ sáng đến chiều, chỉ có buổi tối để dành thời gian cho con, dẫn đến việc họ không thể quan tâm đầy đủ đến dinh dưỡng, thể chất và tiêm phòng cho trẻ Điều này tạo ra những khó khăn trong việc đảm bảo sức khỏe và sự phát triển toàn diện cho con cái.
Sau khi nghiên cứu và xem xét kỹ lưỡng, nhóm nhận thấy đây là một vấn đề thực tiễn và cần thiết, vì vậy đã quyết định chọn vấn đề này để tiến hành nghiên cứu và phát triển trong môn học.
Tính mới/ khác biệt về chức năng của đề tài so với một số ứng dụng thương mại điện tử hiện nay
● Phân tích từ thức ăn người dùng cho em bé ăn thành các thành phần dinh dưỡng
● Gợi ý người dùng thức ăn cho phù hợp với hàm lượng dinh dưỡng mỗi ngày để giúp bé phát triển tốt
Đối tượng nghiên cứu
- Người làm đề tài: Sinh viên đang học tập và nghiên cứu tại trường Đại học Công nghệ Thông tin Thành phố Hồ Chí Minh
● Sử dụng ngôn ngữ Dart để dùng FrameWork Flutter tạo thành app mobile
● Sử dụng công nghệ Storage của FireBase để lưu trữ dữ liệu
- Đối tượng trong phạm vi đề tài hướng đến:
Phần mềm chủ yếu hướng đến các bậc phụ huynh có con nhỏ dưới 3 tuổi và những người chăm sóc trẻ từ sơ sinh đến 3 tuổi.
Các bậc phụ huynh và người chăm sóc trẻ nhỏ ở thành phố thường gặp khó khăn trong việc ghi nhớ thông tin dinh dưỡng và lịch tiêm phòng cho con Vì vậy, họ cần những ứng dụng hỗ trợ quản lý thông tin này, giúp việc chăm sóc trẻ trở nên dễ dàng và hiệu quả hơn.
Ứng dụng này là một công cụ hữu ích giúp cha mẹ quản lý việc chăm sóc con cái và tối ưu hóa thời gian Người dùng có thể ghi lại toàn bộ quá trình phát triển của trẻ, cung cấp thông tin quan trọng cho bác sĩ khi trẻ gặp vấn đề về sức khỏe hoặc dinh dưỡng.
Phương pháp nghiên cứu
Trước khi tiến hành nghiên cứu chi tiết, nhóm chúng tôi đã lên kế hoạch khảo sát nhiều ứng dụng hiện có trên thị trường, chủ yếu phục vụ nhu cầu chăm sóc dinh dưỡng và sức khỏe cho người từ 6 tuổi trở lên Nhằm tạo ra sự khác biệt và đáp ứng nhu cầu chăm sóc thiết yếu cho trẻ em dưới 6 tuổi, nhóm đã quyết định phát triển một ứng dụng chuyên biệt cho đối tượng này.
● Nhóm em đã thực hiện đề tài này bằng ngôn ngữ Dart với công nghệ ứng dụng Flutter
Nhóm em đã tuân theo quy chuẩn phát triển phần mềm qua mười bước cụ thể Đầu tiên, nhóm khảo sát người dùng để thu thập nhu cầu và khó khăn khi chưa có phần mềm Tiếp theo, nhóm nghiên cứu các sản phẩm hiện có trên thị trường để đánh giá khả năng đáp ứng nhu cầu và xác định vấn đề của phần mềm hiện tại Sau đó, nhóm phân tích và đặc tả phần mềm theo các mô hình phát triển, vẽ UseCase và WorkFlow cho các chức năng Tiếp đến, nhóm thiết kế cơ sở dữ liệu và lựa chọn phương pháp hiện thực hóa Nhóm cũng thiết kế sơ bộ các chức năng tương lai và chọn ngôn ngữ lập trình Dart qua Cross platform Flutter để phát triển sản phẩm Giai đoạn tiếp theo là thiết kế giao diện ứng dụng bằng Figma, sau đó tiến hành cài đặt hoàn thiện phần mềm Nhóm cũng sửa chữa lỗi và nâng cấp chức năng trước khi hoàn thành phần mềm cùng các tài liệu báo cáo.
TỔNG QUAN
Khảo sát hiện trạng
2.1.1 Hiện trạng chăm sóc trẻ em của bố mẹ ở thành thị:
Trẻ em ở thành phố được chăm sóc tốt trong môi trường học đường và y tế, với sự quan tâm đến sức khỏe, dinh dưỡng và hoạt động thể chất Hầu hết các thành phố đều có cơ sở y tế, tiêm chủng và trung tâm dinh dưỡng cho trẻ, giúp cha mẹ dễ dàng tìm kiếm lời khuyên từ chuyên gia Mức sống hiện đại cung cấp nhiều vật dụng chăm sóc trẻ em, góp phần cải thiện sức khỏe và phát triển của trẻ Tuy nhiên, áp lực kinh tế khiến nhiều gia đình dần thiếu thời gian chăm sóc con cái.
2.1.2 Hiện trạng các ứng dụng chăm sóc trẻ em:
Các ứng dụng chăm sóc trẻ em hiện nay chủ yếu hỗ trợ phụ huynh giảm bớt thời gian chăm sóc và đóng vai trò như một cuốn sổ ghi chú để theo dõi các hoạt động của trẻ Bên cạnh đó, những ứng dụng này cũng cung cấp nhiều kiến thức hữu ích về cách chăm sóc trẻ nhỏ cho các bậc phụ huynh.
Nhận xét về hiện trạng
2.2.1 Các vấn đề tồn đọng: Ở cuộc sống thành thị hiện tại, có rất nhiều gia đình vừa phải đi làm vất vả hằng ngày, vừa phải chăm lo cho con cái của họ Những bậc bố mẹ trẻ tuổi vấp phải rất nhiều khó khăn trong việc chăm sóc con khi làm việc từ sáng đến chiều ở công ty, chỉ có buổi tối mới dành được thời gian ít ỏi trong ngày để chăm sóc con Vì thế nên sự quan tâm về dinh dưỡng, thể chất con người và tiêm phòng cho con khá hời hợt và qua loa
Các ứng dụng hiện nay chủ yếu hỗ trợ ghi nhớ hoạt động của trẻ, nhưng thường cung cấp các kỹ năng chăm sóc trẻ một cách khô cứng và thiếu linh hoạt.
2.2.2 Các vấn đề tập trung trong đề tài: Đề tài của chúng em tập trung giúp người dùng có thể chăm sóc trẻ một cách chủ động hơn bằng cách gợi ý người dùng cung cấp dinh dưỡng cho trẻ một cách đầy đủ nhất Lưu lại chỉ số
Chỉ số BMI là công cụ hữu ích giúp phụ huynh theo dõi sự phát triển của trẻ hàng ngày Bài viết này cung cấp kiến thức về cách chăm sóc trẻ em một cách linh hoạt và chủ động hơn.
Người dùng chỉ cần thực hiện vài bước đơn giản để tiếp cận kiến thức mong muốn Đồng thời, đề tài của chúng tôi ứng dụng khoa học máy tính để gợi ý sản phẩm, giúp phụ huynh lựa chọn tốt hơn khi mua sắm các sản phẩm chăm sóc trẻ em.
TÌM HIỂU CÔNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI
Tổng quan về công nghệ Flutter
Trong đề tài này, appservice sẽ được viết bằng Flutter Vì vậy nhóm sinh viên thực hiện cần tìm hiểu về công nghệ này
Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android, được phát triển bởi Google Nền tảng này sử dụng ngôn ngữ lập trình DART, cũng do Google phát triển, và đã được áp dụng để tạo ra nhiều ứng dụng native cho chính Google.
Flutter hỗ trợ rất nhiều cơ sở dữ liệu như: MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC…
Phiên bản đầu tiên của Flutter, được gọi là “Sky”, đã chạy trên hệ điều hành Android và được công bố tại hội nghị nhà phát triển Dart 2015 với mục tiêu đạt tốc độ kết xuất ổn định 120 khung hình trên giây Tại hội nghị Google Developer Days ở Thượng Hải, Google đã giới thiệu phiên bản Flutter Release Preview 2, phiên bản lớn cuối cùng trước khi ra mắt Flutter 1.0 Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 chính thức được phát hành tại sự kiện Flutter Live, đánh dấu phiên bản “ổn định” đầu tiên của khung ứng dụng này.
Flutter cho phép bạn giao tiếp gần như trực tiếp với hệ thống, mang lại trải nghiệm "native" đúng nghĩa Bộ Engine của Flutter hoàn toàn đảm nhiệm việc render UI, giúp bạn tạo ra các hiệu ứng và đồ họa tùy ý cho cả hai nền tảng iOS và Android.
Flutter sử dụng ngôn ngữ kiểu tĩnh với cú pháp hiện đại, tương tự như JavaScript, Python và Java Trình biên dịch của Flutter linh hoạt, hỗ trợ cả AOT cho sản phẩm cuối và JIT cho quá trình phát triển thông qua tính năng Hot Reload.
Hot Reload là một tính năng tuyệt vời khi làm việc với giao diện người dùng, giúp lập trình viên cảm thấy thoải mái hơn Đặc biệt, Flutter còn cung cấp khả năng ghi nhớ trạng thái của ứng dụng, mang đến trải nghiệm lập trình ấn tượng So với React Native, điểm này thực sự là một lợi thế nổi bật của Flutter.
Flutter cho phép kiểm soát chặt chẽ hiệu suất ứng dụng nhờ khả năng chạy giả lập di động trên trang web, mang lại sự thuận tiện cho quá trình phát triển Bên cạnh đó, các chỉ số hiệu suất được hỗ trợ sẵn giúp các nhà phát triển dễ dàng theo dõi và tối ưu hóa hiệu suất của ứng dụng.
Flutter dễ dàng nâng cấp nhờ vào quy trình cập nhật đơn giản chỉ cần sử dụng dòng lệnh, mà không gặp trở ngại nào cho ứng dụng sau khi nâng cấp Điều này thể hiện sự trưởng thành của Flutter, trái ngược với React Native, nơi các phiên bản như 0.25 và 0.48 yêu cầu sửa đổi thủ công để hoạt động, gây khó khăn cho người dùng.
Kết luận: Flutter, với những tính năng vượt trội, hiện đang là một trong những ngôn ngữ lập trình phổ biến nhất và được ưa chuộng bởi các lập trình viên trên toàn cầu, đồng thời hứa hẹn sẽ tiếp tục phát triển mạnh mẽ trong tương lai.
Ngôn ngữ Dart
3.2.1 Giới thiệu ngôn ngữ Dart:
Dart là ngôn ngữ lập trình đa mục đích được phát triển bởi Google và được Ecma phê chuẩn theo tiêu chuẩn ECMA-408 Ngôn ngữ này được sử dụng để xây dựng ứng dụng web, server, máy tính để bàn và thiết bị di động Dart là ngôn ngữ hướng đối tượng, xác định theo lớp, có cơ chế garbage-collected và sử dụng cú pháp kiểu C để chuyển đổi mã sang JavaScript.
Dart is an open-source, free programming language developed on GitHub, currently available in version 2.23.2.2 It supports features such as interfaces, mixins, abstractions, generics, static typing, and sound typing, ensuring type safety for developers.
Dart nổi bật với cú pháp rõ ràng và súc tích, kết hợp với công cụ đơn giản nhưng mạnh mẽ, giúp nâng cao năng suất lập trình Tính năng type-safe của Dart cho phép phát hiện sớm các lỗi tinh tế, trong khi hệ sinh thái phong phú với hàng ngàn package và các thư viện cốt lõi hỗ trợ tối đa cho việc phát triển ứng dụng.
Dart tối ưu hóa quá trình biên dịch trước thời hạn, mang lại hiệu suất cao và thời gian khởi động nhanh chóng cho các ứng dụng trên thiết bị di động và web.
Dart có khả năng di động cao, cho phép biên dịch thành mã ARM và x86, giúp các ứng dụng di động chạy mượt mà trên iOS, Android và nhiều nền tảng khác Đối với ứng dụng web, Dart có thể chuyển mã sang JavaScript, đảm bảo tính tương thích và hiệu suất tối ưu.
Dart là ngôn ngữ lập trình dễ tiếp cận cho nhiều nhà phát triển, nhờ vào cú pháp thân thiện và định hướng đối tượng rõ ràng Nếu bạn đã quen thuộc với C++, C# hoặc Java, bạn có thể nhanh chóng làm chủ Dart chỉ trong vài ngày.
Dart là ngôn ngữ lập trình lý tưởng cho lập trình Reactive, nhờ vào khả năng quản lý hiệu quả các đối tượng ngắn hạn như widget UI thông qua phân bổ đối tượng nhanh và garbage collection Ngoài ra, Dart còn hỗ trợ lập trình không đồng bộ với các tính năng ngôn ngữ và API, sử dụng các đối tượng Future và Stream để xử lý dữ liệu một cách linh hoạt.
Ứng dụng Figma
Dựa trên kinh nghiệm đã thực hiện từ những đồ án trước, nhóm quyết định chọn Figma làm ứng dụng thiết kế giao diện đồ án
Figma là một công cụ thiết kế vector và thử nghiệm sản phẩm cho website và ứng dụng, hoạt động trên nền tảng đám mây, cho phép người dùng cộng tác trong các dự án từ bất kỳ đâu Mặc dù Figma có nhiều chức năng tương tự như các công cụ thiết kế khác, nhưng điểm nổi bật của nó là khả năng làm việc nhóm hiệu quả trong các dự án Hiện nay, Figma được xem là lựa chọn tối ưu nhất cho các nhà thiết kế.
Vào năm 2011, một nhóm lập trình viên đam mê thiết kế đã phát triển ý tưởng về một công cụ thiết kế hoàn toàn dựa trên nền tảng web, một ý tưởng táo bạo và tiên phong, từng bị cho là điên rồ Thời điểm đó, nhiều người cho rằng web chỉ phù hợp cho các tác vụ văn phòng hoặc giải trí nhẹ nhàng như đọc email hay xem phim, trong khi công việc thiết kế đòi hỏi máy tính với cấu hình mạnh mẽ, khiến việc đưa thiết kế lên nền tảng web trở nên khó khả thi.
Cốt lõi của ý tưởng này:
● Mọi người, mọi nền tảng đều có thể được sử dụng những công cụ thiết kế mạnh mẽ
Tạo ra một nền tảng làm việc nhóm mạnh mẽ và linh hoạt, cho phép người dùng trên toàn thế giới cùng hợp tác trên một file thiết kế duy nhất.
● Có hệ thống quản lý các phiên bản chỉnh sửa tiện lợi, rõ ràng, chi tiết
Năm 2015, nhóm lập trình viên đã sáng lập Figma Inc và ra mắt Figma 1.0, công cụ thiết kế trên nền tảng web đầu tiên trên thế giới, hoàn toàn miễn phí cho người dùng.
Figma đã chiếm được cảm tình của cả những nhà thiết kế chuyên nghiệp và người dùng phổ thông nhờ vào sự mới mẻ, linh hoạt và hiệu quả Qua thời gian, Figma không ngừng phát triển và trở nên phổ biến hơn bao giờ hết.
Figma là công cụ thiết kế duy nhất tương thích trên tất cả các hệ điều hành với trình duyệt web, bao gồm Macs, Windows, Linux và Chromebooks Điều này cho phép người dùng dễ dàng chia sẻ, mở và chỉnh sửa file Figma mà không gặp trở ngại về hệ máy.
Figma hỗ trợ làm việc nhóm hiệu quả nhờ vào tính năng dựa trên trình duyệt, cho phép các thành viên trong team cộng tác giống như trong Google Docs Mỗi người dùng được đại diện bởi một avatar tròn trên thanh công cụ, hiển thị tên riêng và vị trí mà họ đang xem hoặc chỉnh sửa trong file thiết kế Điều này giúp bạn dễ dàng nhận biết ai đang làm việc trên dự án, tạo điều kiện thuận lợi cho sự phối hợp và giao tiếp trong nhóm.
Chia sẻ file Figma trở nên đơn giản khi bạn gửi link cho người khác, cho phép họ truy cập vào file Nếu bạn chọn "Link to selected frame", người nhận sẽ thấy chính xác frame bạn đang chọn tại thời điểm chia sẻ Tính năng này rất hữu ích khi bạn cần chia sẻ một file phức tạp với nhiều frame trong một trang.
Figma cung cấp tính năng bình luận ngay trong ứng dụng, cho phép người dùng dễ dàng đưa ra phản hồi trong cả chế độ thiết kế và prototyping Người dùng cũng có thể theo dõi các bình luận qua Slack hoặc email, giúp tiết kiệm thời gian đáng kể so với việc sử dụng các công cụ khác như Sketch kết hợp với Invision hay Marvel, nơi việc cập nhật thiết kế sau mỗi lần nhận phản hồi thường rất tốn thời gian Với chức năng bình luận trực tiếp trong file thiết kế, Figma đã giải quyết hiệu quả vấn đề này.
Figma cung cấp công cụ hỗ trợ cho các developer bằng cách hiển thị code snippets cho từng đối tượng được chọn, bao gồm CSS và mã dành cho iOS hoặc Android Điều này cho phép developer inspect đối tượng trực tiếp trong file thiết kế mà không cần đến các công cụ bên thứ ba Tuy nhiên, nếu cần thông số phức tạp hơn, Zeplin vẫn là lựa chọn tốt, và Figma đã tích hợp hỗ trợ Zeplin một cách hiệu quả.
Tất cả dữ liệu của bạn được lưu trữ trực tuyến trên cloud, giúp bạn yên tâm không lo mất file hay hỏng máy Bạn có thể tổ chức file theo từng dự án và chia nhỏ mỗi file thành nhiều trang phù hợp với nhu cầu của mình.
Kết luận: Với những ưu điểm vượt trội, Figma hiện đang được nhiều công ty ưa chuộng và là ứng dụng miễn phí, rất phù hợp cho sinh viên.
Tổng quan về Firebase
Firebase là dịch vụ cơ sở dữ liệu thời gian thực trên nền tảng đám mây do Google cung cấp, giúp lập trình viên phát triển ứng dụng nhanh chóng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
Firebase được phát triển từ Evolve, công ty khởi nghiệp do James Tamplin và Andrew Lee thành lập vào năm 2011, chuyên cung cấp API cho chức năng trò chuyện trực tuyến Sau khi nhận thấy dịch vụ trò chuyện được sử dụng để truyền dữ liệu ứng dụng khác ngoài tin nhắn, họ quyết định tách hệ thống trò chuyện và kiến trúc thời gian thực để tạo ra Firebase Công ty Firebase được thành lập độc lập vào năm 2011 và chính thức ra mắt vào tháng 4 năm 2012.
Firebase, ra mắt vào năm 2014 và được Google mua lại vào năm 2016, đã chứng kiến sự tăng trưởng ấn tượng từ 110.000 lên 470.000 nhà phát triển Nền tảng này được ưa chuộng nhờ khả năng giúp các nhà phát triển xây dựng hệ thống Client – Server một cách hiệu quả, giảm thiểu đáng kể công sức và chi phí cho phần Server.
Vào tháng 5 năm 2016, tại hội nghị Google I/O, Firebase đã giới thiệu Firebase Analytics và công bố mở rộng dịch vụ thành nền tảng BaaS cho các nhà phát triển di động Hiện nay, Firebase tích hợp với nhiều dịch vụ của Google như Google Cloud Platform, AdMob và Google Ads, mang đến sản phẩm đa dạng cho các nhà phát triển Đặc biệt, Google Cloud Messaging đã được thay thế bằng Firebase Cloud Messaging, cho phép gửi thông báo đẩy đến cả iOS và thiết bị web.
Hình 3.1: Giới thiệu về Framework Google Firebase
3.4.2 Các chức năng chính của Google Firebase: a Realtime Database – Cơ sở dữ liệu thời gian thực:
Firebase lưu trữ dữ liệu dưới dạng JSON và đồng bộ hóa cơ sở dữ liệu theo thời gian thực cho tất cả người dùng Điều này tạo điều kiện cho việc xây dựng hệ thống đa nền tảng, cho phép tất cả người dùng chia sẻ một cơ sở dữ liệu duy nhất Đặc biệt, Firebase tự động cập nhật dữ liệu mỗi khi có sự thay đổi Firebase Authentication cung cấp một hệ thống xác thực an toàn và hiệu quả.
Firebase cho phép tích hợp dễ dàng các công nghệ xác thực từ các nhà cung cấp lớn như Google và Facebook, cũng như hỗ trợ hệ thống xác thực tùy chỉnh cho ứng dụng trên mọi nền tảng, bao gồm Android và iOS Bên cạnh đó, Firebase Storage cung cấp giải pháp lưu trữ hiệu quả cho dữ liệu của ứng dụng.
Firebase Storage allows for easy storage of various data types, including files, images, and videos It seamlessly integrates with Google security, facilitating convenient uploads and downloads for Firebase applications Additionally, Firebase Cloud Messaging enhances communication capabilities within these applications.
Firebase cung cấp dịch vụ Cloud Messaging, một giải pháp đa nền tảng cho phép gửi tin nhắn miễn phí theo thời gian thực, giúp người dùng kết nối hiệu quả hơn.
3.4.3 Lợi ích của Google Firebase: a Triển khai ứng dụng cực nhanh:
Firebase giúp lập trình viên tiết kiệm thời gian trong việc xây dựng và phát triển cơ sở dữ liệu nhờ vào khả năng đồng bộ nhanh chóng và tự động thông qua các API Hơn nữa, việc phát triển ứng dụng đa nền tảng trở nên dễ dàng hơn với sự hỗ trợ của Firebase cho nhiều nền tảng khác nhau.
Quá trình đăng ký và đăng nhập vào ứng dụng trở nên tiện lợi và dễ dàng nhờ vào hệ thống xác thực của Firebase, đồng thời đảm bảo tính bảo mật cao cho người dùng.
Firebase hoạt động trên nền tảng đám mây, sử dụng giao thức bảo mật SSL để đảm bảo an toàn cho dữ liệu và kết nối giữa client và server Hệ thống phân quyền người dùng được đơn giản hóa bằng cú pháp JavaScript, chỉ cho phép những người được cấp phép chỉnh sửa dữ liệu Ngoài ra, Firebase còn nổi bật với tính linh hoạt và khả năng mở rộng, giúp đáp ứng nhu cầu phát triển của ứng dụng.
Firebase cung cấp cho các nhà phát triển khả năng xây dựng server riêng, giúp việc quản lý trở nên dễ dàng hơn Hệ thống quản trị cơ sở dữ liệu NoSQL của Firebase cho phép mở rộng bảng và trường linh hoạt, đáp ứng nhu cầu của từng lập trình viên.
Tổng quan về Dialogflow
Dialogflow, trước đây được biết đến là API.AI, là dịch vụ của Google hỗ trợ lập trình viên trong việc phát triển sản phẩm giao tiếp với người dùng thông qua hội thoại bằng văn bản hoặc giọng nói.
Dialogflow sử dụng trí tuệ nhân tạo (AI) giúp phân tích ngôn ngữ tự nhiên để hiểu được những gì người dùng đưa vào Hiện Dialogflow có 2 phiên bản:
• Standard: Hoàn toàn miễn phí để sử dụng
• Và Enterprise: Cần trả một ít tiền
Hình 3.2 Giới thiệu về Dialogflow
Theo từ điển vdict.com, INTENT là danh từ có nghĩa là ý định, mục đích hoặc nghĩa Theo dialogflow.com, INTENT đại diện cho sự ánh xạ giữa những gì người dùng nhập vào và hành động mà phần mềm sẽ thực hiện Ví dụ, khi bạn phát triển một Chatbot dự báo thời tiết, nếu người dùng hỏi bot về thời tiết, INTENT sẽ xác định phản hồi phù hợp từ bot.
• Ngày mai ở Hà Nội trời có mưa không?
• Hay, Thứ 6 này đến Đà Nẵng thì có cần mang áo ấm không?
Khi lập trình Chatbot để trả lời các câu hỏi liên quan đến dự báo thời tiết, bạn chỉ cần tạo một INTENT duy nhất cho cả hai câu hỏi Điều này giúp tối ưu hóa quy trình và nâng cao hiệu quả tương tác của người dùng với Chatbot.
Nói một cách khác, một INTENT là một tập những gì người dùng nói mà chúng có cùng một ý nghĩa
Theo từ điển vdict.com, "ENTITY" là danh từ chỉ thực thể hoặc sự tồn tại của một vật Trên dialogflow.com, "ENTITIES" là công cụ dùng để trích xuất giá trị tham số từ ngôn ngữ tự nhiên, giúp nhận diện thông tin mà người dùng cung cấp Mỗi thông tin bạn muốn khai thác từ nội dung của người dùng đều có một ENTITY tương ứng.
Ví dụ như “Ngày mai” hay “Thứ 6 này” đại diện cho một thực thể thời gian, trong khi Hà Nội, Đà Nẵng, New York, và các địa điểm khác là những thực thể vị trí.
Trong dialogflow.com, AGENT là khái niệm đại diện cho mô-đun NLU (Natural Language Understanding), giúp phân tích đầu vào của người dùng (dưới dạng văn bản hoặc giọng nói) và chuyển đổi thành dữ liệu có thể xử lý qua lập trình.
Bạn sẽ sử dụng một AGENT để quản lý các đoạn hội thoại thông qua INTENTS, ENTITIES
3.5.4 Ứng dụng Dialogflow vào ứng dụng BabyCare:
Dialogflow sẽ hoạt động như một API để ứng dụng truy cập và lấy giá trị tin nhắn cần thiết Nhóm chúng tôi sẽ thiết lập các Intent, Entity và Agent một cách hợp lý để tạo ra các kịch bản và câu hỏi liên quan Khi người dùng gửi tin nhắn liên quan đến kịch bản đã được định sẵn, ứng dụng sẽ gọi Dialogflow để nhận tin nhắn tương ứng.
• Ứng dụng sử dụng ngôn ngữ dart để thiết lập kết nối giữa flutter và dialogflow.
Hệ thống khuyến nghị
Hệ thống khuyến nghị là một kỹ thuật lọc thông tin chuyên biệt, giúp người dùng tìm kiếm và nhận diện các nội dung như tin tức, phim ảnh, âm nhạc và trang web mà họ quan tâm.
Hệ thống gợi ý đóng vai trò quan trọng trong sự thành công của thương mại điện tử và công nghệ thông tin, ngày càng trở nên phổ biến trong nhiều ứng dụng như Netflix, Google, YouTube và Amazon Theo thống kê, hai phần ba số phim trên Netflix được xem nhờ vào hệ thống gợi ý, trong khi 38% lượng nhấp chuột trên Google News và 35% sản phẩm bán được trên Amazon cũng xuất phát từ các gợi ý của hệ thống này.
Hệ thống khuyến nghị tự động xây dựng dựa trên hồ sơ người dùng, so sánh với các đặc điểm tài liệu tham khảo để dự đoán đánh giá mà người dùng có thể đưa ra cho nội dung chưa được đánh giá Kết quả của hệ thống là dự đoán đánh giá cho sản phẩm cụ thể hoặc danh sách sản phẩm mà người dùng có khả năng yêu thích.
Thông tin về người sử dụng được dùng cho hệ thống khuyến nghị tự động có thể chia thành hai loại: thông tin ẩn và thông tin hiện:
Thông tin ẩn, hay còn gọi là phản hồi ngầm, được thu thập từ các lượt thích và không thích của người dùng thông qua hành động như nhấp chuột, tìm kiếm và mua sắm Mặc dù việc thu thập dữ liệu này khá dễ dàng, nhưng thường gặp phải độ nhiễu cao và thiếu sự tương tác trực tiếp với người dùng, vì hệ thống tự động ghi lại lịch sử hành động Hơn nữa, những phản hồi tiêu cực thường không được ghi nhận, dẫn đến việc thiếu sót trong việc hiểu rõ nhu cầu và mong muốn của người dùng.
Thông tin hiện (Explicit Feedback) là những phản hồi trực tiếp từ người dùng về sản phẩm, bao gồm đánh giá như thích/không thích, chấm điểm và bình luận Mặc dù việc thu thập những thông tin này thường khó khăn hơn so với thông tin ẩn, nhưng chúng mang lại độ chính xác cao hơn và rất hữu ích cho việc đưa ra khuyến nghị.
Recommendation system thường được chia làm hai nhóm lớn:
Hệ thống dựa trên nội dung đánh giá các đặc tính của các mục được đề xuất Chẳng hạn, nếu một người dùng thường xuyên xem các bộ phim liên quan đến cảnh sát hình sự, hệ thống sẽ gợi ý một bộ phim có đặc điểm tương tự từ cơ sở dữ liệu Phương pháp này yêu cầu phân loại các mục thành từng nhóm hoặc xác định các đặc trưng của từng mục Tuy nhiên, có những mục không thuộc nhóm cụ thể, và việc xác định nhóm hoặc đặc trưng của chúng đôi khi có thể gặp khó khăn.
Collaborative filtering is a recommendation system that suggests items based on the similarity between users and items This approach operates on the principle that an item is recommended to a user by analyzing the behaviors of other users who exhibit similar preferences.
Mục tiêu của hệ thống khuyến nghị:
Gia tăng doanh số là kết quả của việc sử dụng Hệ thống Gợi ý, giúp tăng cường khả năng bán hàng hoặc số lượt đặt chỗ so với các trang web không áp dụng công nghệ này Khi Hệ thống Gợi ý đưa ra những đề xuất chính xác và phù hợp với nhu cầu của người dùng, doanh thu của website sẽ được nâng cao một cách rõ rệt.
Hệ thống gợi ý được thiết kế và triển khai hiệu quả sẽ nâng cao trải nghiệm người dùng, đáp ứng nhu cầu của khách hàng một cách chính xác và hấp dẫn Với giao diện người dùng hợp lý, khách hàng sẽ có xu hướng quay lại trang web để khám phá thêm.
Hệ thống gợi ý (Recommendation System) không chỉ giúp đề xuất sản phẩm mà còn cho phép thu thập phản hồi từ khách hàng Nếu khách hàng không ưa thích những gợi ý mà bạn đưa ra, thông tin này vẫn có thể được ghi nhận và sử dụng để nâng cao độ chính xác của hệ thống gợi ý trong tương lai.
3.6.2 Một số phương pháp trong hệ thống khuyến nghị a Hệ thống khuyến nghị theo nội dung (Content-based)
Đề xuất dựa trên nội dung là một phương pháp mà các hệ thống gợi ý sản phẩm sử dụng để cung cấp sản phẩm cho người dùng, dựa vào mô tả của từng sản phẩm và hồ sơ sở thích cá nhân của người dùng.
In a content-based system, it is essential to create a profile for each item, represented mathematically as a feature vector In simpler cases, the feature vector can be directly extracted from the item itself For instance, when analyzing the features of a song for use in recommendation systems, relevant attributes may include the artist, songwriter, year of composition, and genre.
Các đề xuất được thiết kế riêng cho từng người dùng hiện tại mà không cần dữ liệu từ người dùng khác, điều này giúp mở rộng quy mô đến nhiều người dùng mà không tốn bộ nhớ hay thời gian tính toán.
- Có thể nắm bắt sở thích cụ thể của người dùng và có thể đề xuất các sản phẩm thích hợp mà rất ít người dùng khác quan tâm
- Cần phải trích xuất được các đặc điểm của sản phẩm
Khi xây dựng mô hình cho người dùng, các hệ thống dựa trên nội dung không khai thác thông tin từ những người dùng khác, mặc dù thông tin này rất quý giá Hành vi mua sắm của người dùng thường được phân loại thành một số nhóm đơn giản; nếu nắm bắt được hành vi mua hàng của một số người dùng trong nhóm, hệ thống có thể suy luận hành vi của các người dùng còn lại.
- Vấn đề người dùng mới b Hệ thống khuyến nghị lọc cộng tác (Collaborative Filtering)
Những nhược điểm của phương pháp Content-based có thể được khắc phục thông qua lọc cộng tác, một kỹ thuật dựa trên việc thu thập và phân tích dữ liệu hành vi, sở thích của người dùng Phương pháp này dự đoán sở thích của người dùng bằng cách so sánh với những người dùng khác có hành vi tương tự Nó không chỉ ghi nhận những sản phẩm mà người dùng yêu thích mà còn xem xét những sản phẩm được ưa chuộng bởi những người có sở thích giống nhau, từ đó đưa ra gợi ý sản phẩm phù hợp cho người dùng.
CƠ SỞ LÝ THUYẾT
Chỉ số BMI của trẻ
Từ khi sinh ra đến hết tuổi dậy thì, cơ thể trẻ sẽ phát triển liên tục, vì vậy chiều cao và cân nặng chuẩn từ 0 đến 18 tuổi là tiêu chí quan trọng để theo dõi sự phát triển Ngoài ra, sự phát triển của bé trai và bé gái cũng có những khác biệt nhất định.
Bảng đo tiêu chuẩn chiều cao cân nặng của trẻ do WHO công bố là nguồn thông tin đáng tin cậy cho bố mẹ trong việc chăm sóc con cái Trong 10 năm đầu đời, việc theo dõi chiều cao và cân nặng của trẻ là rất quan trọng và cần được thực hiện một cách sát sao.
Hình 4.1: Bảng chiều cao và cân nặng chuẩn của trẻ từ 0-18 tuổi chuẩn WHO Trong đó:
● TB (Trung bình): Trẻ đang ở mức phát triển bình thường theo chuẩn WHO
● Kết quả dưới -2SD: Trẻ bị suy dinh dưỡng, thiếu cân
● Kết quả trên +2SD: Trẻ mắc chứng béo phì (theo cân nặng) hoặc quá cao (theo chiều cao)
Ngoài việc tham khảo bảng chiều cao cân nặng của trẻ, bố mẹ nên chú ý đến nhiều tiêu chuẩn khác nhau để theo dõi sự phát triển của bé Ở mỗi độ tuổi nhất định, cần có những lưu ý riêng trong việc kiểm tra cân nặng của trẻ.
4.1.1 Đối với bé từ 0-5 tuổi Đây là giai đoạn bé bắt đầu làm quen với thế giới xung quanh cũng như phát triển mạnh mẽ nhất Có 3 chỉ số chính mà bố mẹ cần lưu ý trong giai đoạn này là:
Chỉ số cân nặng theo tuổi cho biết nếu kết quả dưới -2SD, bé chỉ đạt khoảng 80% mức chuẩn cân nặng bình thường, điều này cho thấy trẻ bị suy dinh dưỡng thể nhẹ cân.
Chỉ số chiều cao theo tuổi là yếu tố quan trọng để đánh giá sự phát triển của trẻ Nếu chiều cao của bé thấp hơn -2SD so với mức trung bình, điều này cho thấy trẻ đang bị suy dinh dưỡng thể thấp còi.
Chỉ số cân nặng theo chiều cao là một yếu tố quan trọng để đánh giá tình trạng dinh dưỡng của trẻ Nếu chỉ số này thấp hơn -2SD so với mức trung bình, có khả năng cao bé đang bị suy dinh dưỡng Do đó, bố mẹ cần xem xét và điều chỉnh chế độ ăn uống cũng như thói quen sinh hoạt hàng ngày của trẻ để cải thiện tình trạng sức khỏe.
4.1.2 Đối với trẻ từ 5-15 tuổi
Từ 5 đến 15 tuổi là thời điểm vàng để các bé phát triển, đặc biệt là về chiều cao Lúc này, ngoài bảng đo cân nặng tiêu chuẩn, đối với trẻ sau 10 tuổi, bố mẹ cần đặc biệt chú ý đến chỉ số BMI Công thức tính chỉ số BMI khá đơn giản vì chỉ cần dựa vào chiều cao và cân nặng của trẻ
Cụ thể, bạn chỉ cần lấy cân nặng của trẻ chia cho bình phương của chiều cao là ra.
Chỉ số dinh dưỡng của trẻ
4.2.1 Tầm quan trọng của chế độ dinh dưỡng cho trẻ 3 tuổi
Theo các chuyên gia Nhi khoa, não bộ của trẻ em phát triển mạnh mẽ trong giai đoạn 3 tuổi Khi trẻ 1 tuổi, não chỉ đạt khoảng 70% sự phát triển so với người lớn, nhưng đến 3 tuổi, con số này có thể tăng lên 80%.
Trẻ em 3 tuổi đang trong giai đoạn tăng trưởng mạnh mẽ về thể chất và cần nhiều năng lượng hơn khi tham gia các hoạt động ngoài trời tại trường mầm non Do đó, một chế độ dinh dưỡng hợp lý sẽ hỗ trợ sự phát triển toàn diện cho bé, không chỉ về thể chất mà còn về trí tuệ.
Hệ tiêu hóa của trẻ em vẫn chưa hoàn thiện mặc dù có sự phát triển mạnh mẽ, vì vậy phụ huynh cần chú ý đến chế độ dinh dưỡng phù hợp để hỗ trợ hệ tiêu hóa Việc này giúp hạn chế các rối loạn liên quan đến tiêu hóa và hấp thu thức ăn.
4.2.2 Đặc điểm sinh lý của trẻ 3 tuổi
Hiểu rõ đặc điểm sinh lý của trẻ 3 tuổi giúp phụ huynh điều chỉnh chế độ dinh dưỡng phù hợp Hệ tiêu hóa và dạ dày của trẻ ở độ tuổi này chưa hoàn thiện như người lớn, vì vậy, các bậc phụ huynh nên ưu tiên lựa chọn thực phẩm mềm và dễ tiêu hóa cho trẻ.
Hình 4.2: Khủng hoảng tuổi lên 3
Trẻ 3 tuổi có chiều cao trung bình từ 95,1 đến 96,1 cm và cân nặng khoảng 13,9 đến 14,3 kg Trong giai đoạn này, trí tuệ của trẻ phát triển nhanh chóng, hỗ trợ quá trình học hỏi Để trẻ phát triển toàn diện, một chế độ dinh dưỡng đầy đủ và hợp lý là rất cần thiết.
Ở độ tuổi ba, trẻ bắt đầu phát triển cái tôi và thể hiện sự quan tâm đến thế giới xung quanh Đây cũng là thời điểm trẻ có khả năng bộc lộ cảm xúc rõ ràng hơn, nhưng có thể gặp phải "khủng hoảng tuổi lên 3" Do đó, bố mẹ không nên tạo áp lực cho trẻ trong việc ăn uống.
4.2.2 Nhu cầu cơ bản trong chế độ dinh dưỡng cho trẻ 3 tuổi
Nhu cầu cơ bản đối với chế độ dinh dưỡng cho trẻ 3 tuổi bao gồm:
● 150 đến 200 gram cơm tẻ Nếu mẹ cho bé ăn bún, mì, nui, phở,… thì giảm cơm đi một phần
● 150 đến 200 gram chất đạm Những thực phẩm giàu đạm điển hình như: thịt bò, thịt lợn, thịt gà, cá, trứng, sữa giàu đạm, các cây họ đậu,…
● 3 thìa cà phê dầu thực vật mỗi ngày, chia đều cho 3 bữa ăn chính
● 150 đến 200 gram chất xơ như rau xanh, củ cà rốt, củ dền,…
● 400 đến 500 ml sữa tách béo hoặc ít béo
● 700 đến 800 ml nước chín trong 1 ngày
Ở độ tuổi 3, trẻ có khả năng ăn giống như người lớn và bắt đầu thể hiện sở thích về món ăn Do đó, mẹ cần chú ý chuẩn bị thực phẩm một cách kỹ lưỡng để đáp ứng nhu cầu dinh dưỡng của bé.
● Ninh nhừ hoặc băm nhỏ thịt
● Đối với món cá, mẹ cần lấy sạch xương trước khi cho trẻ ăn
● Rau nên được cắt nhỏ và luộc hoặc nấu cho mềm hơn, dễ tiêu hơn
● Củ nên gọt vỏ, rửa sạch, thái miếng nhỏ và nấu cho mềm
● Sữa nên pha bằng nước sôi 100 độ C, khuấy tan hoàn toàn, để hơi ấm và cho trẻ uống.
XÂY DỰNG HỆ THỐNG
Mô hình use-case
Hình 5.1 Sơ đồ Use-case tổng quát
Hình 5.2 Sơ đồ Use-case chức năng bổ sung
STT Tên Actor Ý nghĩa/Ghi chú
Phụ huynh là người điều hành chính trong việc quản lý tài khoản trên hệ thống, có quyền cấp quyền hạn cho người khác và quản lý thông tin của trẻ Họ cũng chịu trách nhiệm theo dõi quá trình chăm sóc trẻ và đưa ra các quyết định dựa trên báo cáo nhận được.
Là người quản lý sức khỏe của trẻ, bạn được ủy quyền bởi phụ huynh để theo dõi và điều chỉnh tình trạng thể chất của em bé Bạn có quyền quản lý chỉ số khối cơ thể và dinh dưỡng, đảm bảo trẻ phát triển khỏe mạnh.
Người quản lý bữa ăn của em bé là một cá nhân được phụ huynh ủy quyền, có trách nhiệm và quyền hạn trong việc quản lý và trực tiếp điều hành các bữa ăn cho trẻ.
Bác sĩ là người phụ trách tiêm ngừa cho trẻ em, được ủy quyền bởi phụ huynh Họ có quyền quản lý và thực hiện các quy trình tiêm chủng cho trẻ, đảm bảo sức khỏe và an toàn cho các em.
Bảng 5.1 Danh sách các actor
5.1.3 Danh sách các use-case:
1 Đăng ký tài khoản Phụ huynh đăng ký tài khoản định danh để đăng nhập và sử dụng chức năng trong ứng dụng
2 Đăng nhập Phụ huynh sử dụng tài khoản đã đăng ký trước để đăng nhập và sử dụng chức năng trong ứng dụng
3 Lấy lại mật khẩu Phụ huynh yêu cầu lấy lại mật khẩu trong trường hợp quên mật khẩu
4 Ủy quyền quản lý em bé Phụ huynh ủy quyền cho tài khoản khách các quyền trong nhóm quyền quản lý em bé
5 Khởi tạo em bé Khởi tạo một thể hiện của em bé gồm các thông tin cơ bản để sử dụng các tính năng liên quan
6 Hiển thị thông tin chung Hiển thị các thông tin cơ bản của một thể hiện em bé
7 Quản lý "chỉ số khối cơ thể"
Hiển thị, cập nhật và đưa ra thông báo về tình trạng của chỉ số khối cơ thể của em bé
8 Quản lý "chỉ số dinh dưỡng"
Hiển thị, cập nhật và đưa ra thông báo về tình trạng của chỉ số dinh dưỡng của em bé
9 Quản lý "bữa ăn" Thống kê các bữa ăn trước đó và lên kế hoạch cho các bữa ăn tiếp theo
Quản lý tiêm ngừa hiệu quả bao gồm việc thống kê lịch sử tiêm ngừa, lên kế hoạch cho các mũi tiêm tiếp theo, cập nhật tình trạng tiêm ngừa mới và thông báo về tình trạng tiêm ngừa của trẻ.
11 Tổng kết báo cáo Xuất ra báo cáo gồm toàn bộ các thông tin liên quan của thể hiện em bé
12 Cẩm nang chăm sóc trẻ Hiển thị danh sách và chi tiết các bài viết hữu ích trong quá trình chăm sóc em bé
13 Chatbot hỗ trợ người dùng tự động trả lời các câu hỏi liên quan đến chăm sóc trẻ em, đồng thời cung cấp đường dẫn tới các bài viết chi tiết.
Bảng 5.2 Danh sách các use-case
5.1.4 Đặc tả use-case: a Đặc tả Use-case Đăng ký tài khoản
Name Đăng ký tài khoản
Description Use case này cho phép Phụ huynh đăng ký tài khoản định danh để đăng nhập và sử dụng chức năng trong ứng dụng
Trigger ❖ Khi người dùng nhấn vào nút “Create New Account”
Pre-condition ❖ Màn hình hiện tại là Màn hình Đăng nhập
❖ Các tham số cần thiết để tạo tài khoản được nhập đầy đủ, đúng format
Post-condition ❖ Khi thành công: Người dùng tạo tài khoản định danh trên hệ thống thành công, tài khoản có thể dùng để đăng nhập vào ứng dụng
❖ Chuyển sang Màn hình Trang chủ
❖ Khi thất bại: Thông báo lỗi tương ứng với lỗi xảy ra Bảng 5.3 Đặc tả Use-case Đăng ký tài khoản
Hình 5.2 Hình minh họa hoạt động use-case Đăng ký tài khoản
Hình 5.3 Sơ đồ tuần tự Đăng ký
❖ Client hiển thị Màn hình Đăng ký tài khoản
❖ Khi người dùng nhấn nút “Sign Up” và đợi phản hồi từ Server: Nút
“Sign Up” chuyển sang state “Loading”
Khi người dùng nhấn nút “Sign Up”, Client xác nhận [Username], [Email], [Password], [Confirm Password] có chính xác format của Client hay chưa
[Username] là tập hợp các ký tự thuộc 29 chữ cái hoa và thường trong Bảng chữ cái tiếng Việt và dấu cách ( ) Có phân biệt hoa và thường
Tối đa 49 ký tự trong một [Username]
Bắt buộc có ký tự @ và các ký tự trước và sau @
Trước ký tự @, người dùng cần sử dụng tối đa 20 ký tự, bao gồm các chữ cái hoa và thường trong Bảng chữ cái tiếng Anh cùng các chữ số từ 0 đến 9 Các ký tự này phải được viết liền mà không có khoảng cách.
Sau ký tự @ là chuỗi ký tự gồm 24 chữ cái hoa và thường trong bảng chữ cái tiếng Anh Các ký tự này phải được viết liền, không có khoảng cách, và có thể chứa dấu chấm (.) ở giữa Độ dài tối đa cho chuỗi ký tự này là 20 ký tự.
[Password] là tập hợp 6 ký tự thuộc các ký tự chữ số từ 0 đến
Giống với format của [Password]
❖ Else if [Username] không đúng format của [Username]
❖ Else if [Email] không đúng format của [Email]
❖ Else if [Password] không đúng format của [Password]
❖ If length của [Confirm Password] < 0
Thông báo “Confirm Password Required”
❖ Else if [Confirm Password] không đúng format của [Confirm Password]
Thông báo “Invalid Confirm Password”
❖ Else if [Confirm Password] không giống [Password]
Thông báo “Confirm Password not correct”
❖ Khi [Username], [Email], [Password], [Confirm Password] đều được chấp nhận, Client gửi yêu cầu tạo tài khoản lên Server với [Username], [Email], [Password]
❖ Server xác nhận [Email] vừa được gửi có trùng với bất kỳ email nào trong table Account
❖ Khi xác nhận không trùng, Server tạo một value trong table Account và gửi [CreateAccountSuccess = true] về Client
❖ [Username] tương ứng với field username trong table Account
❖ [Email] tương ứng với field email trong table Account
❖ [Password] tương ứng với field password trong table Account
❖ Client: Chuyển sang Màn hình Trang chủ và ghi nhận định danh hiện tại là định danh của tài khoản vừa tạo
❖ Khi xác nhận xảy ra trùng, gửi [CreateAccountSuccess = false] về Client Client: Thông báo “Email used in another account”
Bảng 5.4: Business Rules Đăng ký tài khoản b Đặc tả Use-case Đăng nhập
Description Use case này cho phép Phụ huynh sử dụng tài khoản định danh đã tạo trước để đăng nhập và sử dụng chức năng trong ứng dụng
Trigger ❖ Khi ứng dụng được khởi động mà người dùng chưa đăng nhập trước đó
Pre-condition ❖ Các tham số cần thiết để của tài khoản dùng để đăng nhập được nhập đầy đủ, đúng format
Post-condition ❖ Khi thành công: Người dùng đăng nhập vào ứng dụng thành công
❖ Chuyển sang Màn hình Trang chủ
❖ Khi thất bại: Thông báo lỗi tương ứng với lỗi xảy ra
Bảng 5.5 Đặc tả Use-case Đăng nhập
Hình 5.4 Hình minh họa hoạt động use-case Đăng nhập tài khoản
Hình 5.5 Sơ đồ tuần tự Đăng nhập
❖ Client hiển thị Màn hình Đăng nhập
❖ Khi người dùng nhấn nút “Login” và đợi phản hồi từ Server: Nút
“Login” chuyển sang state “Loading”
Khi người dùng nhấn nút “Login”, Client xác nhận [Email], [Password] có chính xác format của hệ thống hay chưa
Bắt buộc có ký tự @ và các ký tự trước và sau @
Trước ký tự @, bạn có thể sử dụng các ký tự từ 24 chữ cái hoa và thường trong Bảng chữ cái tiếng Anh, cùng với các chữ số từ 0 đến 9 Phần này phải được viết liền, không có khoảng cách và tối đa không quá 20 ký tự.
Sau ký tự @ là một chuỗi ký tự bao gồm 24 chữ cái hoa và thường trong bảng chữ cái tiếng Anh Chuỗi này phải được viết liền mạch, không có khoảng cách và có thể chứa dấu chấm (.) ở giữa Độ dài tối đa của chuỗi là 20 ký tự.
[Password] là tập hợp 6 ký tự thuộc các ký tự chữ số từ 0 đến 9
❖ Else if [Email] không đúng format của [Email]
❖ Else if [Password] không đúng format của [Password]
❖ Khi [Email], [Password] đều được chấp nhận, Client gửi yêu cầu đăng nhập lên Server với [Email], [Password]
❖ Server xác nhận [Email] vừa được gửi có trùng với bất kỳ email nào trong table Account
❖ [Email] tương ứng với field email trong table Account
❖ [Password] tương ứng với field password trong table Account
❖ Khi xác nhận không trùng, Server gửi [AuthenticationSuccess = false] về Client Client: Thông báo “No email matched”
❖ Khi xác nhận trùng, Server tiếp tục xác nhận [Password] được gửi có khớp với password của Account có email ở trên
❖ Khi xác nhập khớp, Server gửi [AuthenticationSuccess = true] về Client
❖ Client: Chuyển sang Màn hình Trang chủ và ghi nhận định danh hiện tại là định danh của tài khoản vừa tạo
❖ Khi xác nhận không khớp, Server gửi [AuthenticationSuccess = false] về Client Client: Thông báo “Your password is wrong”
Bảng 5.6: Business Rules Đăng nhập tài khoản c Đặc tả Use-case Khởi tạo em bé
Name Khởi tạo em bé
Description Use case này cho phép người dùng khởi tạo em bé để quản lý và chăm sóc
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “Create Baby”
Pre-condition ❖ Người dùng đăng nhập thành công vào ứng dụng
❖ Các tham số cần thiết để tạo em bé được nhập đầy đủ, đúng format
Post-condition ❖ Khi thành công: Người dùng tạo em bé có định danh trên hệ thống thành công
❖ Chuyển sang Màn hình Trang chủ
❖ Khi thất bại: Thông báo lỗi tương ứng với lỗi xảy ra Bảng 5.7: Đặc tả usecase khởi tạo em bé
Hình 5.6 Hình minh họa hoạt động Khởi tạo em bé
Hình 5.7 Sơ đồ tuần tự Khởi tạo em bé
❖ Client hiển thị Màn hình Khởi tạo em bé
❖ Khi người dùng nhấn nút “OK” và đợi phản hồi từ Server: Nút “OK” chuyển sang state “Loading”
Khi người dùng nhấn nút “OK”, hệ thống xác nhận [Name], [Birth] có chính xác format của hệ thống hay chưa
Tương tự format của [Username]
Theo format dd/MM/yyyy
❖ [Gender] là kiểu dữ liệu tự tạo, với 2 value duy nhất
❖ Else if [Name] không đúng format của [Name]
❖ Else if [Birth] không đúng format của [Birth]
❖ Khi [Name], [Birth] đều được chấp nhận, Client gửi yêu cầu tạo tài khoản lên Server với [Name], [Birth], [Gender]
❖ Server tạo một value trong table Baby và gửi [CreateBabySuccess true] về hệ thống
❖ [Name] tương ứng với field babyName trong table Baby
❖ [Birth] tương ứng với field birth trong table Baby
❖ [Gender] tương ứng với field gender trong table Baby
❖ Client: Chuyển sang Màn hình Trang chủ Bảng 5.8: Business Rules Khởi tạo em bé d Đặc tả Use-case Hiển thị thông tin chung
Name Hiển thị thông tin chung
Description Use case này cho phép người dùng theo dõi các thông tin chung của em bé
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút thể hiện của em bé
Pre-condition ❖ Người dùng đăng nhập thành công vào ứng dụng
Post-condition ❖ Chuyển sang Màn hình Chi tiết em bé
❖ Hiển thị đầy đủ các thông tin chung của em bé Bảng 5.9: Đặc tả usecase hiển thị thông tin chung
Hình 5.8 Hình minh họa hoạt động use-case Hiển thị thông tin chung
Hình 5.9 Sơ đồ tuần tự Hiển thị thông tin chung
❖ Client hiển thị Màn hình Chi tiết em bé
❖ Khi người dùng nhấn nút thể hiện của em bé và đợi phản hồi từ Server: Màn hình hiện tại chuyển sang state “Loading”
Khi người dùng nhấn nút thể hiện của em bé, Client gửi yêu cầu xem chi tiết em bé cùng với [Id Baby] lên Server
❖ [Id Baby] tương ứng với field idBaby trong table Baby
❖ Server gửi [GetBabyDetailSuccess = true], [Baby Name], [Birth] về Client
❖ [Baby Name] tương ứng với field babyName trong table Baby
❖ [Birth] tương ứng với field birth trong table Baby
❖ Client: Chuyển sang Màn hình Chi tiết em bé Bảng 5.10: Business Rules Hiển thị thông tin chung e Đặc tả Use-case Hiển thị Chỉ số khối cơ thể
Name Hiển thị Chỉ số khối cơ thể
Description Use case này cho phép người dùng theo dõi các chỉ số BMI của em bé
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “BMI Detail”
Pre-condition ❖ Người dùng đăng nhập thành công vào hệ thống
❖ Màn hình hiện tại là Màn hình Chi tiết em bé
Post-condition ❖ Chuyển sang Màn hình BMI em bé
❖ Hiển thị đầy đủ các thông tin về chỉ số BMI của em bé Bảng 5.11: Đặc tả usecase hiển thị chỉ số khối
Hình 5.10 Hình minh họa hoạt động use-case Hiển thị chỉ số khối cơ thể
Hình 5.11 Sơ đồ tuần tự Hiển thị chỉ số khối
❖ Client hiển thị Màn hình BMI em bé
❖ Khi người dùng nhấn nút “BMI Detail” và đợi phản hồi từ Server: Nút “BMI Detail” chuyển sang state “Loading”
Khi người dùng nhấn nút “BMI Detail”, Client gửi yêu cầu xem BMI em bé cùng với [Id Baby] lên Server
❖ [Id Baby] sử dụng ở Màn hình Chi tiết em bé
❖ [Id Baby] tương ứng với field idBaby trong table Baby
❖ Server gửi [GetBabyBMISuccess = true], [Height Value], [Weight Value] về Client
❖ [Height Value] tương ứng với field value trong table BMI có type Height
❖ [Weight Value] tương ứng với field value trong table BMI có type Weight
❖ Client: Chuyển sang Màn hình BMI em bé Bảng 5.12: Business Rules Hiển thị chỉ số khối f Đặc tả Use-case Cập nhật Chỉ số khối cơ thể
Name Cập nhật Chỉ số khối cơ thể
Description Use case này cho phép người dùng cập nhật BMI hiện tại của em bé lên database
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “Update”
Pre-condition ❖ Người dùng đăng nhập thành công vào hệ thống
❖ Màn hình hiện tại là Màn hình BMI em bé
❖ Các tham số cần thiết để cập nhật BMI được nhập đầy đủ
Post-condition ❖ Chuyển sang Màn hình Cập nhật BMI em bé
❖ Các tham số liên quan đến tham số mà người dùng nhập vào được thay đổi trên database
Bảng 5.13: Đặc tả usecase cập nhật chỉ số khối
Hình 5.12 Hình minh họa hoạt động use-case Cập nhật chỉ số khối cơ thể
Hình 5.13 Sơ đồ tuần tự Cập nhật chỉ số khối
❖ Client hiển thị Màn hình Cập nhật BMI em bé
❖ Khi người dùng nhấn nút “OK” và đợi phản hồi từ Server: Nút “OK” chuyển sang state “Loading”
Khi người dùng nhấn nút “OK”, Client gửi yêu cầu cập nhật BMI lên Server với [New Height], [New Weight], [Id Baby]
❖ [New Height] là giá trị của slider height mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 150, [Step Size] = 10
❖ [New Weight] là giá trị của slider weight mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 40000, [Step Size] = 100
❖ [Id Baby] sử dụng ở Màn hình BMI em bé
❖ Server thay đổi value trong table BMI và gửi [UpdateBMISuccess true] về hệ thống
❖ [New Height] tương ứng với field value trong table BMI có type =
Height và idBaby = [Id Baby]
❖ [New Weight] tương ứng với field value trong table BMI có type =
Weight và idBaby = [Id Baby]
❖ Client: Chuyển sang Màn hình BMI em bé Bảng 5.14: Business Rules Cập nhật chỉ số khối g Đặc tả Use-case Thông báo tình trạng Chỉ số khối cơ thể
Name Thông báo tình trạng Chỉ số khối cơ thể
Description Use case này cho phép người dùng theo dõi tình trạng của BMI của em bé đang có dấu hiệu như thế nào
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “Check Status”
Pre-condition ❖ Người dùng đăng nhập thành công vào hệ thống
❖ Màn hình hiện tại là Màn hình BMI em bé
Post-condition ❖ Chuyển sang Màn hình Status BMI em bé
❖ Hiển thị thành công tình trạng hiện tại của BMI của em bé Bảng 5.15: Đặc tả usecase thông báo tình trạng chỉ số khối
Hình 5.14 Hình minh họa hoạt động use-case Thông báo tình trạng chỉ số khối cơ thể
Hình 5.15 Sơ đồ tuần tự Thông báo tính trạng chỉ số khối cơ thể
❖ Client hiển thị Màn hình Status BMI em bé
❖ Khi người dùng nhấn nút “Check Status” và đợi phản hồi từ Server: Nút
“Check Status” chuyển sang state “Loading”
Khi người dùng nhấn nút “Check Status”, Client sử dụng [Height Value], [Weight Value], [Birth] để kiểm tra tình trạng BMI
❖ [Height Value], [Weight Value], [Birth] sử dụng ở Màn hình BMI em bé
❖ Dựa vạo [Birth] tính toán được số tuổi hiện tại của em bé theo đơn vị tháng = [Age]
❖ Client có một Biểu đồ giá trị height tăng trưởng chung cho trẻ = [Chart Height] Ở mỗi một [Chart Age] có một [Height Standard]
❖ Client có một Biểu đồ giá trị weight tăng trưởng chung cho trẻ [Chart Weight] Ở mỗi một [Chart Age] có một [Weight Standard]
If [Height] = [Height Standard] o [Height Status Good] = true
If [Height] [Height Standard] o [Height Status Good] = false
If [Weight] = [Weight Standard] o [Weight Status Good] = true
If [Weight] [Weight Standard] o [Weight Status Good] = false
The client receives notifications indicating that both height and weight status are good, as outlined in Table 5.16, which details the business rules for reporting body mass index (BMI) status This use case specification emphasizes the display of nutritional indicators effectively.
Name Hiển thị Chỉ số dinh dưỡng
Description Use case này cho phép người dùng theo dõi các chỉ số NI của em bé
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “NI Detail”
Pre-condition ❖ Người dùng đăng nhập thành công vào hệ thống
❖ Màn hình hiện tại là Màn hình Chi tiết em bé
Post-condition ❖ Chuyển sang Màn hình NI em bé
❖ Hiển thị đầy đủ các thông tin về chỉ số NI của em bé Bảng 5.17: Đặc tả usecase hiển thị chỉ số dinh dưỡng
Hình 5.16 Hình minh họa hoạt động use-case Hiển thị chỉ số dinh dưỡng
Hình 5.17 Sơ đồ tuần tự Hiển thị chỉ số dinh dưỡng
❖ Client hiển thị Màn hình NI em bé
❖ Khi người dùng nhấn nút “NI Detail” và đợi phản hồi từ Server: Nút “NI Detail” chuyển sang state “Loading”
Khi người dùng nhấn nút “NI Detail”, Client gửi yêu cầu xem NI em bé cùng với [Id Baby] lên Server
❖ [Id Baby] sử dụng ở Màn hình Chi tiết em bé
❖ [Id Baby] tương ứng với field idBaby trong table Baby
❖ Server gửi [GetBabyNISuccess = true], [Carbohydrate Value], [Fat Value], [Protein Value], [Vitamin A Value], [Vitamin B Value], [Vitamin C Value], [Vitamin D Value], [Iron Value], [Calcium Value], [Iodine Value] về Client
❖ [Carbohydrate Value] tương ứng với field value trong table NI có type
❖ [Fat Value] tương ứng với field value trong table NI có type Fat
❖ [Protein Value] tương ứng với field value trong table NI có type Protein
❖ [Vitamin A Value] tương ứng với field value trong table NI có type
❖ [Vitamin B Value] tương ứng với field value trong table NI có type
❖ [Vitamin C Value] tương ứng với field value trong table NI có type
❖ [Vitamin D Value] tương ứng với field value trong table NI có type
❖ [Iron Value] tương ứng với field value trong table NI có type Iron
❖ [Calcium Value] tương ứng với field value trong table NI có type
❖ [Iodine Value] tương ứng với field value trong table NI có type Iodine
❖ Client: Chuyển sang Màn hình NI em bé Bảng 5.18: Business Rules Hiển thị chỉ số dinh dưỡng i Đặc tả Use-case Cập nhật Lượng thức ăn tiêu thụ
Name Cập nhật Lượng thức ăn tiêu thụ
Description Use case này cho phép người dùng cập nhật lượng thức ăn tiêu thụ của em bé
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “Update”
Pre-condition ❖ Người dùng đăng nhập thành công vào hệ thống
❖ Màn hình hiện tại là Màn hình NI em bé
❖ Các tham số cần thiết để cập nhật lượng thức ăn tiêu thụ được nhập đầy đủ
Post-condition ❖ Chuyển sang Màn hình Cập nhật NI em bé
Bảng 5.19: Đặc tả usecase cập nhật lượng tiêu thụ thức ăn
Hình 5.18 Hình minh họa hoạt động use-case Cập nhật lượng thức ăn tiêu thụ
Hình 5.19 Sơ đồ tuần tự Cập nhật lượng thức ăn tiêu thụ
❖ Client hiển thị Màn hình Cập nhật NI em bé
When users click the "OK" button, the Client saves the following items: Porridge, Milk, Meat, Fish, Egg, Green Vegetables, Red Vegetables, and Citrus Fruit, and then transfers this information to the Nutrition Index Update module.
❖ [Porridge] là giá trị của slider porridge mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 1000, [Step Size] = 100
❖ [Milk] là giá trị của slider milk mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 1000, [Step Size] = 100
❖ [Meat] là giá trị của slider meat mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 1000, [Step Size] = 100
❖ [Fish] là giá trị của slider fish mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 1000, [Step Size] = 100
❖ [Egg] là giá trị của slider egg mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 10, [Step Size] = 1
❖ [Green Vegets] là giá trị của slider green vegetables mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 1000, [Step Size] 100
❖ [Red Vegets] là giá trị của slider red vegetables mà người dùng nhập vào Slider có [Min Value] = 0, [Max Value] = 1000, [Step Size] = 100
The Citrus Fruit slider allows users to input values ranging from a minimum of 0 to a maximum of 1000, with increments of 100 This functionality is crucial for updating food consumption data and is detailed in the business rules outlined in Table 5.20, which also includes specifications for use-case scenarios related to updating nutritional indices.
Name Cập nhật Chỉ số khối cơ thể
Description Use case này cho phép người dùng cập nhật NI hiện tại của em bé lên database
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “OK”
Pre-condition ❖ Người dùng đăng nhập thành công vào hệ thống
❖ Màn hình hiện tại là Màn hình Cập nhật NI em bé
❖ Các tham số cần thiết để cập nhật NI được nhập đầy đủ
Sau khi người dùng nhập vào các tham số, các thông tin liên quan sẽ được cập nhật trên cơ sở dữ liệu Bảng 5.21 mô tả chi tiết use case cho việc cập nhật chỉ số dinh dưỡng.
Hình 5.20 Hình minh họa hoạt động use-case Cập nhật chỉ số dinh dưỡng
Hình 5.21 Sơ đồ tuần tự Cập nhật chỉ số dinh dưỡng
❖ Client hiển thị Màn hình NI em bé
❖ Khi người dùng nhấn nút “OK” và đợi phản hồi từ Server: Nút “OK” chuyển sang state “Loading”
When users click the "OK" button, the Client sends an update request to the Server containing the new values for Carbohydrates, Fat, Protein, Vitamin A, Vitamin B, Vitamin C, Vitamin D, Iron, Calcium, Iodine, and the Baby ID.
❖ [New Carbohydrate] là giá trị quy đổi từ các tham số mà Use case
Cập nhật Lượng thức ăn tiêu thụ truyền qua
❖ [New Fat] là giá trị quy đổi từ các tham số mà Use case Cập nhật
Lượng thức ăn tiêu thụ truyền qua
❖ [New Protein] là giá trị quy đổi từ các tham số mà Use case Cập nhật
Lượng thức ăn tiêu thụ truyền qua
❖ [New Vitamin A] là giá trị quy đổi từ các tham số mà Use case Cập nhật Lượng thức ăn tiêu thụ truyền qua
❖ [New Vitamin B] là giá trị quy đổi từ các tham số mà Use case Cập nhật Lượng thức ăn tiêu thụ truyền qua
❖ [New Vitamin C] là giá trị quy đổi từ các tham số mà Use case Cập nhật Lượng thức ăn tiêu thụ truyền qua
❖ [New Vitamin D] là giá trị quy đổi từ các tham số mà Use case Cập nhật Lượng thức ăn tiêu thụ truyền qua
❖ [New Iron] là giá trị quy đổi từ các tham số mà Use case Cập nhật
Lượng thức ăn tiêu thụ truyền qua
❖ [New Calcium] là giá trị quy đổi từ các tham số mà Use case Cập nhật Lượng thức ăn tiêu thụ truyền qua
❖ [New Iodine] là giá trị quy đổi từ các tham số mà Use case Cập nhật
Lượng thức ăn tiêu thụ truyền qua
❖ [Id Baby] sử dụng ở Màn hình BMI em bé
❖ Server thay đổi value trong table NI và gửi [UpdateNISuccess = true] về hệ thống
❖ [New Carbohydrate] tương ứng với field value trong table NI có type
= Carbohydrate và idBaby = [Id Baby]
❖ [New Fat] tương ứng với field value trong table NI có type = Fat và idBaby = [Id Baby]
❖ [New Protein] tương ứng với field value trong table NI có type =
Protein và idBaby = [Id Baby]
❖ [New Vitamin A] tương ứng với field value trong table NI có type =
Vitamin A và idBaby = [Id Baby]
❖ [New Vitamin B] tương ứng với field value trong table NI có type =
Vitamin B và idBaby = [Id Baby]
❖ [New Vitamin C] tương ứng với field value trong table NI có type =
Vitamin C và idBaby = [Id Baby]
❖ [New Vitamin D] tương ứng với field value trong table NI có type =
Vitamin D và idBaby = [Id Baby]
❖ [New Iron] tương ứng với field value trong table NI có type = Iron và idBaby = [Id Baby]
❖ [New Calcium] tương ứng với field value trong table NI có type =
Calcium và idBaby = [Id Baby]
❖ [New Iodine] tương ứng với field value trong table NI có type =
❖ Client: Chuyển sang Màn hình NI em bé Bảng 5.22: Business Rules Cập nhật chỉ số dinh dưỡng k Đặc tả Use-case Thông báo tình trạng Chỉ số dinh dưỡng
Name Thông báo tình trạng Chỉ số dinh dưỡng
Description Use case này cho phép người dùng theo dõi tình trạng của NI của em bé đang có dấu hiệu như thế nào
Actor Tất cả người dùng
Trigger ❖ Khi người dùng nhấn vào nút “Check Status”
Pre-condition ❖ Người dùng đăng nhập thành công vào hệ thống
❖ Màn hình hiện tại là Màn hình NI em bé
Post-condition ❖ Chuyển sang Màn hình Status NI em bé
❖ Hiển thị thành công tình trạng hiện tại của NI của em bé Bảng 5.23: Đặc tả usecase thông báo tình trạng chỉ số dinh dưỡng
Hình 5.22 Hình minh họa hoạt động use-case Thông báo tình trạng chỉ số dinh dưỡng
Hình 5.23 Sơ đồ tuần tự Thông báo tình trạng chỉ số dinh dưỡng
❖ Client hiển thị Màn hình Status NI em bé
❖ Khi người dùng nhấn nút “Check Status” và đợi Client kiểm tra tình trạng NI: Nút “Check Status” chuyển sang state “Loading”
Sơ đồ lớp
The account table consists of several key fields: the 'idAccount' serves as the primary key and represents the account code, while 'username' is a mandatory field that indicates the account name Additionally, 'password' is a required string that represents the user's password, and 'email' is also a non-null field that captures the user's email address.
The Baby table consists of several key fields: the 'idBaby' serves as the primary key and uniquely identifies each baby, while the 'name' field is mandatory and captures the baby's name The 'birth date' is also required, providing the baby's date of birth Additionally, the 'image' field, which must not be null, contains the URL link to the baby's image.
The BMI table includes the following fields: 'idBMI', a string that serves as the primary key representing the BMI code; 'type', a non-null string indicating the type of BMI; 'idBaby', a string that acts as a foreign key for the baby's ID; and 'value', a non-null double representing the BMI index.
Vaccination records include essential data such as a unique identifier for each vaccine (idVaccination), the vaccine name (name), the date of administration (injectionDate), and a reference to the baby receiving the vaccine (idBaby) The idVaccination serves as the primary key, ensuring each entry is distinct, while the name and injectionDate fields are mandatory for accurate record-keeping Additionally, the idBaby field acts as a foreign key, linking the vaccination to the specific child.
The article outlines the food data structure with key attributes: the 'idFood' serves as the primary key representing the food code, while 'type' indicates the food category and cannot be null The 'value' reflects the nutritional content of the food and is also a required field Additionally, 'idBaby' acts as a foreign key linking to the baby's code, and 'date' captures the creation date of the food entry, which is mandatory.
The Nutri table includes essential fields for nutritional data management: the primary key 'idNutri' identifies each nutrient, while 'type' specifies the nutrient category and 'value' records the nutrient index The 'updateDate' field tracks the last update of the nutrient information, and 'babyAge' indicates the age of the baby in months Additionally, 'idFood' serves as a foreign key linking the nutrient to specific food items, ensuring comprehensive data integration.
NutriSuggest is a data structure that includes key elements for nutrient suggestion management It features a primary key, idNutriSuggest, which uniquely identifies each nutrient suggestion The value field, a double type, is mandatory and represents the nutrient suggestion index Additionally, the idNutri serves as a foreign key, linking to the specific nutrient code.
FoodSuggest is a structured database that includes essential fields such as idFoodSuggest, a primary key representing the vaccine code, and type, a mandatory string indicating the vaccine name It also contains value, a required date field for the vaccination date, and a foreign key relationship with idBaby, which links to the baby's unique identifier Additionally, idNutriSuggest serves as a foreign key for nutritional suggestion codes, further enhancing the database's functionality in managing vaccination and nutrition data for infants.
FoodSuggest is a structured database that includes key elements such as the primary key 'idTheme', which identifies the article's theme Each theme is defined by a 'title' that cannot be null, ensuring that every entry has a clear designation Additionally, a 'description' provides a detailed overview of the theme and is also mandatory Finally, an 'image' link is required to visually represent the theme, enhancing the overall understanding of the content.
FoodSuggest outlines a structured database for articles, featuring essential fields such as idArticle as the primary key, idTheme as a foreign key linking to the article's theme, and title, induction, image, and category as mandatory fields Each article must have a unique identifier, a relevant theme association, a clear title, an introductory statement, a descriptive image link, and a defined category for effective classification.
FoodSuggest Tên trường Kiểu dữ liệu Ràng buộc Mô tả idDetailArticle string Primary key Mã Bài viết
The article structure includes an IdArticle as a foreign key representing the topic ID, a title that is mandatory, an induction that serves as the introduction, and a category for classification It features an array of headers, which lists the main sections, and an array of bodys that details the content for each section Additionally, it includes an array of images that accompany each section of the article.
Thiết kế giao diện ứng dụng
5.3.1 Thiết kế giao diện Đây là link Design UI cho toàn bộ đồ án, bao gồm cả UI Kit của hệ thống
5.3.2 Màn hình Đăng nhập Đây là Màn hình Đăng nhập của ứng dụng, cho phép người dùng sử dụng Email và Mật khẩu từ tài khoản đã tạo trước để đăng nhập vào hệ thống Người dùng nhấn vào nút Login để thực hiện thao tác Đăng nhập, nhấn vào nút Create New Account để thực hiện thao tác Đăng ký tài khoản
Hình 5.28 Màn hình đăng nhập
5.3.3 Màn hình Đăng ký tài khoản Đây là Màn hình Đăng ký tài khoản của ứng dụng, cho phép người dùng điền Tên người dùng, Email và Mật khẩu để tạo tài khoản và đăng nhập vào hệ thống Người dùng nhấn vào nút Sign Up để thực hiện thao tác Đăng ký tài khoản và Đăng nhập vào ứng dụng, nhấn vào nút Back để quay lại Màn hình Đăng nhập
Hình 5.29 Màn hình đăng ký
5.3.4 Màn hình Trang chủ Đây là Màn hình Trang chủ của ứng dụng, ở đây hệ thống sẽ hiển thị các interface em bé mà tài khoản sở hữu Người dùng nhấn vào bất kỳ interface em bé để thực hiện thao tác Hiển thị thông tin chung của em bé đó
Hình 5.30 Màn hình trang chủ
5.3.5 Màn hình Khởi tạo em bé Đây là các Màn hình Khởi tạo em bé của ứng dụng, cho phép người dùng nhập vào các thông tin cần thiết như Giới tính, Tên, Ngày sinh, Ảnh hiển thị để hệ thống tạo và lưu trữ thông của em bé Với mỗi màn hình, người dùng nhấn vào nút Next sẽ chuyển sang màn hình tiếp theo theo thứ tự bên dưới, nhấn vào nút Back để chuyển về màn hình trước đó Ở màn hình cuối cùng, người dùng nhấn vào nút Next sẽ chuyển về Màn hình Trang chủ
Hình 5.31 Màn hình khởi tạo em bé
5.3.6 Màn hình Hiển thị thông tin chung Đây là Màn hình Hiển thị thông tin chung của em bé trong ứng dụng, hiển thị toàn bộ các thông tin liên quan mà người dùng cần theo dõi Người dùng nhấn vào nút Update ở bảng Body Mass Index để thực hiện thao tác Cập nhật BMI, nhấn vào nút Update ở bảng Nutrition Index để thực hiện thao tác Cập nhật Lượng thức ăn tiêu thụ, nhấn vào nút Meal Suggestion để thực hiện thao tác Xem các thức ăn gợi ý, nhấn vào nút Back để quay về màn hình trước đó
Hình 5.32 Màn hình Hiển thị Thông tin chung
5.3.7 Màn hình Hiển thị, Cập nhật và Thông báo tình trạng BMI Đây là Màn hình Hiển thị, Cập nhật và Thông báo tình trạng BMI của em bé trong ứng dụng, hiển thị cho người dùng các thông tin về Chỉ số khối cơ thể của trẻ và cho phép người dùng cập nhật thông tin về BMI Người dùng kéo thả các thanh trượt trong màn hình để điền chỉ số BMI tăng thêm của trẻ, nhấn vào nút Save để thực hiện thao tác Cập nhật BMI, nhấn vào nút Back để quay về màn hình trước đó
Hình 5.33 Màn hình hiển thị, cập nhật và thông báo tình trạng BMI
5.3.8 Màn hình Hiển thị, Cập nhật và Thông báo tình trạng NI Đây là Màn hình Hiển thị, Cập nhật và Thông báo tình trạng dinh dưỡng của em bé trong ứng dụng, hiển thị cho người dùng các thông tin về Chỉ số dinh dưỡng của trẻ và cho phép người dùng cập nhật thông tin về Lượng thức ăn tiêu thụ Người dùng kéo thả các thanh trượt trong màn hình để điền lượng thức ăn tiêu thụ của trẻ, nhấn vào nút Save để thực hiện thao tác Cập nhật NI, nhấn vào nút Back để quay về màn hình trước đó
Hình 5.34 Màn hình hiển thị, cập nhật và thông báo tình trạng dinh dưỡng
5.3.9 Màn hình Gợi ý bữa ăn Đây là Màn hình Gợi ý bữa ăn của ứng dụng, hiển thị cho người dùng các thông tin về chỉ số dinh dưỡng còn thiếu của trẻ và các thực phẩm có bổ sung cho chất đó đối với mỗi chất bị thiếu Người dùng nhấn vào nút Update Nutrition Index để thực hiện thao tác Cập nhật Lượng thức ăn tiêu thụ, nhấn vào nút Meal history để thực hiện thao tác Xem Thống kê bữa ăn, nhấn vào nút Week Plan để thực hiện thao tác Xem Kế hoạch các bữa ăn tiếp theo, nhấn vào nút Back để quay lại màn hình trước đó
Hình 5.35 Màn hình gợi ý bữa ăn
5.3.10 Màn hình Thống kê bữa ăn Đây là Màn hình Thống kê bữa ăn của ứng dụng, hiển thị cho người dùng chi tiết các bữa ăn mà hệ thống đã ghi nhận của người dùng qua bước Cập nhật Lượng thức ăn tiêu thụ Người dùng nhấn vào nút Back để quay về màn hình trước đó
Hình 5.36 Màn hình thống kê bữa ăn
5.3.11 Màn hình Xem kế hoạch các bữa ăn tiếp theo Đây là Màn hình Xem kế hoạch các bữa ăn tiếp theo của ứng dụng, hiển thị cho người dùng chi tiết các bữa ăn tiếp theo mà hệ thống đã lên kế hoạch để cân bằng dinh dưỡng của trẻ Người dùng nhấn vào nút Back để quay về màn hình trước đó
Hình 5.37 Màn hình xem kế hoạch bữa ăn tiếp theo
5.3.12 Màn hình Cẩm nang chăm sóc trẻ - Danh sách chủ đề Đây là Màn hình Cẩm nang chăm sóc trẻ (phase Danh sách chủ đề) của ứng dụng, hiển thị cho người dùng danh sách các chủ đề đang có trong hệ thống của Cẩm nang chăm sóc trẻ
Hình 5.38 Màn hình cẩm nang chăm sóc trẻ - dạng danh sách chủ đề
5.3.13 Màn hình Cẩm nang chăm sóc trẻ - Danh sách bài viết Đây là Màn hình Cẩm nang chăm sóc trẻ (phase Danh sách bài viết) của ứng dụng, hiển thị cho người dùng danh sách các bài viết thuộc chủ đề đã chọn đang có trong hệ thống của Cẩm nang chăm sóc trẻ
Hình 5.39 Màn hình cẩm nang chăm sóc trẻ - dạng danh sách bài viết
5.3.14 Màn hình Cẩm nang chăm sóc trẻ - Chi tiết bài viết Đây là Màn hình Cẩm nang chăm sóc trẻ (phase Chi tiết bài viết) của ứng dụng, hiển thị cho người dùng thông tin đầy đủ của 1 bài viết, bao gồm Tên bài viết, lời mở đầu, thể loại, các đầu mục, các thân bài của từng mục, các hình ảnh của từng mục trong bài viết
Hình 5.40 Màn hình cẩm nang chăm sóc trẻ - dạng chi tiết bài viết
5.3.15 Màn hình Chat – Center Đây là Màn hình Chat (được bổ sung) của ứng dụng, hiển thị cho người dùng lựa chọn để có thể nhắn tin với chatbot Màn hình này được bổ sung để có thể phát triển sau này, theo hướng nhắn tin với những user khác
Hình 5.41 Màn hình chat – dạng center
5.3.16 Màn hình Chat Đây là Màn hình Chat với chatbot của ứng dụng Ở màn hình này người dùng có thể nhập câu hỏi và gửi cho server, sau đó server sẽ trả về câu trả lời tương ứng