Đang tải... (xem toàn văn)
Ứng dụng này sẽ giúp người dùng tiếp cận được với các thông tin về sức khỏe một cách nhanh chóng và chính xác, đồng thời có thể giải đáp các thắc mắc của người dùng về nhiều vấn đề sức k
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
GIẢNG VIÊN HƯỚNG DẪN: ThS TRẦN ANH DŨNG SINH VIÊN THỰC HIỆN:
LÝ THANH TÚ ANH - 21521823
TP Hồ Chí Minh, tháng 10 năm 2023
Trang 2ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: CareOn – Ứng dụng tư vấn sức khỏe cộng đồng
TÊN ĐỀ TÀI (TIẾNG ANH): CareOn - Community health advice app Cán bộ hướng dẫn:
ThS Trần Anh Dũng
Thời gian thực hiện: Từ ngày 2/10/2023 đến ngày 30/12/2023 Sinh viên thực hiện:
Lý Thanh Tú Anh – 21521823
Nội dung đề tài:
1 Mục tiêu của đề tài
1.1 Bối cảnh chọn đề tài
Sức khỏe là tài sản quý giá nhất của con người Tuy nhiên, trong thời đại hiện nay, khi nhịp sống ngày càng bận rộn, áp lực công việc và học tập tăng cao, thì việc chăm sóc sức khỏe đang trở thành một vấn đề nan giải Nhiều người thường xuyên gặp phải các vấn đề về sức khỏe như mệt mỏi, căng thẳng, đau đầu, nhưng lại không có thời gian hoặc không biết cách để tự chăm sóc sức khỏe bản thân Bên cạnh đó, việc tiếp cận với thông tin y tế chính thống cũng gặp nhiều khó khăn Điều này dẫn đến tình trạng nhiều người bệnh tự ý mua thuốc, điều trị sai cách, gây ra những hậu quả nghiêm trọng
Chính vì vậy, với mục tiêu góp phần nâng cao nhận thức và ý thức chăm sóc sức khỏe, em đã lựa chọn đề tài xây dựng một ứng dụng tư vấn sức khỏe cho cộng đồng, một ý tưởng thiết thực và cần thiết Ứng dụng này sẽ giúp người dùng tiếp cận được với các thông tin về sức khỏe một cách nhanh chóng và chính xác, đồng thời có thể giải đáp các thắc mắc của người dùng về nhiều vấn đề sức khỏe khác nhau cũng như cung cấp hướng giải quyết các vấn đề đó, từ đó người dùng có thể tự theo dõi và chăm sóc sức khỏe bản thân một cách hiệu quả và nhanh chóng
Trang 31.2 Mục đích của đề tài
• Nghiên cứu công cụ DialogFlow, nền tảng chatbot của Google cung cấp khả năng hiểu ngôn ngữ tự nhiên (NLU) và tạo phản hồi tự động để tạo ra chatbot tư vấn sức khỏe người dùng Chatbot sẽ được đào tạo trên một bộ dữ liệu lớn về các câu hỏi và câu trả lời liên quan đến sức khỏe và các thông tin y tế để phục vụ người
dùng
• Nghiên cứu các vấn đề xoay quanh sức khỏe để xây dựng một ứng dụng tư vấn sức khỏe hiệu quả, chính xác, chẳng hạn như các bệnh lý thường gặp, các biện pháp phòng bệnh, Kết quả nghiên cứu sẽ được ứng dụng trong việc xây dựng các tính năng của ứng dụng • Xây dựng và phát triển ứng dụng trên nền tảng di động, với giao diện thân thiện và dễ sử dụng, đáp ứng nhu cầu tư vấn sức khỏe hay tra cứu thông tin y tế của người dùng ở bất cứ đâu, bất kể thời
gian nào
1.3 Ý nghĩa của đề tài Về ý nghĩa đối với người dùng:
• Nâng cao nhận thức về sức khỏe, hỗ trợ người dùng trong việc theo
dõi, chăm sóc và bảo vệ sức khỏe của bản thân và gia đình
• Giúp người dùng tiếp cận được các thông tin y tế, sức khỏe chính
xác, cụ thể, một cách dễ dàng, nhanh chóng
• Ứng dụng cung cấp chức năng tư vấn sức khỏe 24/7, giúp người
dùng tiết kiệm thời gian và chi phí đi lại đến các cơ sở y tế
Về ý nghĩa đối với cá nhân em:
• Đề tài này tạo động lực cho em tìm hiểu và trau dồi những kiến thức mới liên quan đến việc xây dựng chatbot, bởi đây là một công nghệ mới được ứng dụng rộng rãi trong nhiều lĩnh vực, trong đó
có lĩnh vực chăm sóc sức khỏe
Trang 4• Việc xây dựng ứng dụng tư vấn sức khỏe cộng đồng cho em cơ hội nghiên cứu các kiến thức về sức khỏe cộng đồng, về các loại bệnh và hướng chữa trị,… giúp em có thêm kiến thức về đời sống,
giúp ích cho cuộc sống của em sau này
• Đồ án này giúp em có thêm kiến thức và kinh nghiệm thực tế trong việc tham gia dự án phát triển phần mềm, nâng cao kỹ năng lập trình Kinh nghiệm này sẽ giúp em phát triển và nâng cao giá trị
bản thân cho tương lai
1.4 Nhiệm vụ của đề tài
Ứng dụng tư vấn sức khỏe cộng đồng CareOn:
• Chatbot tư vấn sức khỏe • Thư viện tra cứu các loại bệnh • Thư viện video sức khỏe
• Quản lý nhắc nhở cho các hoạt động • Quản lý ghi chú sức khỏe
• Chỉnh sửa thông tin sức khỏe cá nhân • Đăng ký / Đăng nhập / Đăng xuất • Quên mật khẩu / Đổi mật khẩu
2 Phạm vi nghiên cứu
Ứng dụng CareOn được xây dựng với:
• Front-end: Flutter • Back-end: Flutter • Database: Firebase
Tìm hiểu về cách xây dựng chatbot có khả năng hiểu ngôn ngữ tự nhiên, tạo phản hồi tự động
3 Đối tượng nghiên cứu
• Các công nghệ xây dựng ứng dụng di động: • Flutter
Trang 5• Đối tượng người dùng:
• Người có nhu cầu chăm sóc sức khỏe
• Người có nhu cầu tìm kiếm các thông tin y tế
4 Phương pháp nghiên cứu
Em đã sử dụng các phương pháp nghiên cứu: • Phương pháp đọc tài liệu
• Phương pháp phân tích các ứng dụng sức khỏe hiện có • Phương pháp thực nghiệm
5 Kết quả dự kiến
Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, em đã xây dựng ý tưởng thiết kế ứng dụng chăm sóc sức khỏe cần đạt được những mục tiêu sau:
5.1 Đối với người dùng
• Sau khi đăng nhập, người dùng có thể sử dụng các tính năng sau: o Sử dụng chatbot để được giải đáp về vấn đề sức khỏe mà bản
thân đang gặp phải, hoặc hỏi về một bệnh lý hoặc thông tin y tế bất kì
o Truy cập thư viện sức khỏe để tìm đọc thông tin y tế về các loại bệnh hoặc xem các video hướng dẫn các bài tập thể dục, yoga và các video công thức hướng dẫn nấu các món ăn có lợi cho sức khỏe
o Theo dõi tình trạng cơ thể của bản thân qua các chỉ số như cân nặng, chiều cao, chỉ số BMI sau khi đã cung cấp các thông tin trong phần hồ sơ
Trang 6o Ghi chú về cảm giác sức khỏe của họ, triệu chứng, và thuốc đã sử dụng hoặc các thông tin cần nhớ như thông tin bệnh viện, bác sĩ,…
o Cài đặt thông báo về việc nhắc nhở bản thân về các hoạt động liên quan đến sức khỏe như uống nước, tập luyện, điều trị, uống thuốc
5.2 Hệ thống chatbot tư vấn sức khỏe
• Cung cấp thông tin chính xác và đáng tin cậy về sức khỏe dựa trên cơ sở dữ liệu kiến thức y tế đáng tin cậy
• Thông tin sức khỏe cần được cập nhật thường xuyên để đảm bảo tính mới nhất
• Cung cấp thông tin toàn diện về nhiều vấn đề sức khỏe khác nhau, bao gồm các bệnh lý thường gặp, cách phòng bệnh, cách chăm sóc
Hướng phát triển của đề tài
Nếu tiến độ công việc đạt được đúng như mong đợi, sẽ mở rộng thêm các tính năng như:
• Nâng cấp hệ thống chatbot, ứng dụng Machine Learning và AI để có thể đưa ra các câu trả lời chính xác và trò chuyện tự nhiên hơn với người dùng
• Chatbot hỗ trợ tư vấn tâm lý: Ngoài tư vấn về sức khỏe, cung cấp hỗ trợ tư vấn tâm lý cho người dùng có nhu cầu
• Cung cấp số liệu: đưa ra các số liệu liên quan đến sức khỏe và các số liệu chuẩn của ngành y tế
Trang 7Thực hiện chức năng Đăng nhập, Đăng ký, Quên mật khẩu Tìm hiểu, nghiên cứu DialogFlow và cách xây dựng chatbot Thiết kế và xây dựng chức năng chatbot tư vấn sức khỏe 5
(18/11 - 30/11)
Tìm kiếm các nguồn thông tin y tế tin cậy
Thiết kế và xây dựng chức năng thư viện thông tin sức khỏe
6 (1/12 - 12/12)
Tìm kiếm nguồn video sức khỏe
Thiết kế và xây dựng chức năng thư viện video
7
(13/12 - 20/12)
Thiết kế và xây dựng chức năng công cụ theo dõi sức khỏe Thiết kế và xây dựng chức năng thông báo, nhắc nhở, ghi chú
8
(21/12 - 30/12)
Thực hiện kiểm thử toàn bộ ứng dụng Hoàn thiện tài liệu
Trang 9LỜI CẢM ƠN
Trong quá trình học tập và rèn luyện tại khoa Công nghệ phần mềm trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM, em đã được trang bị các kiến thức cơ bản, các kỹ năng thực tế để có thể hoàn thành Đồ án của mình
Để hoàn thành đồ án này, em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin
Em xin gửi lời cảm ơn chân thành đến quý Thầy Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM và quý Thầy Cô khoa Công nghệ phần mềm đã giúp cho em có những kiến thức cơ bản làm nền tảng để thực hiện đề tài này
Em xin gửi lời cảm ơn chân thành và lòng biết ơn sâu sắc nhất đến ThS Trần Anh Dũng đã tận tình giúp đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sức quý báu không chỉ trong quá trình thực hiện đồ án này mà còn là hành trang tiếp bước cho em trong quá trình học tập và lập nghiệp sau này
Trong quá trình làm đồ án này em không tránh khỏi được những sai sót, em kính mong nhận được sự chỉ dẫn và góp ý của quý Thầy Cô để hoàn thiện kiến thức, kỹ năng mà em đã được học tập, đó sẽ là hành trang quý giá để em tiếp tục thực hiện các đề tài khác trong tương lai tốt hơn
Em xin chân thành cảm ơn! Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người
Thành phố Hồ Chí Minh, ngày 30 tháng 12 năm 2023 Sinh viên thực hiện
Lý Thanh Tú Anh
Trang 10NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
GVHD
ThS Trần Anh Dũng
Trang 11Chương 3.PHÂN TÍCH THIẾT KẾ HỆ THỐNG 10
3.1.Danh sách các yêu cầu 10
3.1.1.Yêu cầu nghiệp vụ 10
3.1.2.Yêu cầu hệ thống 11
3.1.3.Yêu cầu chất lượng 11
Trang 123.2.Sơ đồ Usecase 13
3.2.1.Sơ đồ tổng quan 13
3.2.2.Đặc tả Usecase 16
3.3.Sơ đồ cơ sở dữ liệu 38
3.3.1.Sơ đồ dữ liệu tổng quan 38
3.3.2.Mô tả sơ đồ dữ liệu 39
3.4.Thiết kế hệ thống 41
3.4.1.Kiến trúc hệ thống 41
3.4.2.Mô tả các thành phần hệ thống 41
3.4.3.Lý do nên dùng mô hình MVP 42
Chương 4.HIỆN THỰC ĐỀ TÀI 43
4.1.Danh sách giao diện 43
4.2.Mô tả chi tiết giao diện 44
4.2.1.Màn hình Đăng nhập 44
4.2.2.Màn hình Đăng ký 45
4.2.3.Màn hình Trang chủ 46
4.2.4.Màn hình Chat tư vấn sức khỏe 47
4.2.5.Màn hình Tra cứu thông tin các loại bệnh 48
4.2.6.Màn hình Xem video sức khỏe 49
Trang 136.4.Hướng phát triển 57
TÀI LIỆU THAM KHẢO 58
DANH MỤC HÌNH ẢNH Hình 2.1: Cách Agent quản lý một cuộc hội thoại giữa người dùng và hệ thống 7
Hình 3.1: Sơ đồ Usecase tổng quan 14
Hình 3.2: Biểu đồ hoạt động của Usecase Đăng ký 16
Hình 3.3: Biểu đồ trình tự của Usecase Đăng ký 17
Hình 3.4: Biểu đồ hoạt động của Usecase Đăng nhập 18
Hình 3.5: Biểu đồ trình tự của Usecase Đăng nhập 18
Hình 3.6: Biểu đồ hoạt động của Usecase Đăng xuất 19
Hình 3.7: Biểu đồ trình tự của Usecase Đăng xuất 20
Hình 3.8: Biểu đồ hoạt động của Usecase Tra cứu thông tin các loại bệnh 21
Hình 3.9: Biểu đồ trình tự của Usecase Tra cứu thông tin các loại bệnh 21
Hình 3.10: Biểu đồ hoạt động của Usecase Xem video sức khỏe 22
Hình 3.11: Biểu đồ trình tự của Usecase Xem video sức khỏe 23
Hình 3.12: Biểu đồ hoạt động của Usecase Chat tư vấn sức khỏe 24
Hình 3.13: Biểu đồ trình tự của Usecase Chat tư vấn sức khỏe 24
Hình 3.14: Biểu đồ hoạt động của Usecase Tạo nhắc nhở 26
Hình 3.15: Biểu đồ trình tự của Usecase Tạo nhắc nhở 26
Hình 3.16: Biểu đồ hoạt động của Usecase Điều chỉnh nhắc nhở 27
Hình 3.17: Biểu đồ trình tự của Usecase Điều chỉnh nhắc nhở 28
Hình 3.18: Biểu đồ hoạt động của Usecase Xóa nhắc nhở 29
Hình 3.19: Biểu đồ trình tự của Usecase Xóa nhắc nhở 29
Hình 3.20: Biểu đồ hoạt động của Usecase Tạo ghi chú 30
Hình 3.21: Biểu đồ trình tự của Usecase Tạo ghi chú 31
Hình 3.22: Biểu đồ hoạt động của Usecase Sửa ghi chú 32
Hình 3.23: Biểu đồ trình tự của Usecase Sửa ghi chú 32
Hình 3.24: Biểu đồ hoạt động của Usecase Xóa ghi chú 34
Hình 3.25: Biểu đồ trình tự của Usecase Xóa ghi chú 34
Hình 3.26: Biểu đồ hoạt động cho Usecase Điều chỉnh thông tin cá nhân 35
Hình 3.27: Biểu đồ trình tự cho Usecase Điều chỉnh thông tin cá nhân 36
Hình 3.28: Biểu đồ hoạt động cho Usecase Quên mật khẩu 37
Trang 14Hình 3.29: Biểu đồ trình tự cho Usecase Quên mật khẩu 38
Hình 3.30: Sơ đồ dữ liệu tổng quan 38
Hình 3.31: Mô hình kiến trúc MVP 41
Hình 4.1: Giao diện Đăng nhập 44
Hình 4.2: Giao diện Đăng ký 45
Hình 4.3: Giao diện Trang chủ 46
Hình 4.4: Giao diện Chat tư vấn sức khỏe 47
Hình 4.5: Giao diện Tra cứu thông tin các loại bệnh 48
Hình 4.6: Giao diện Xem video sức khỏe 49
Hình 4.7: Giao diện Quản lý ghi chú 50
Hình 4.8: Giao diện Quản lý nhắc nhở 51
Hình 4.9: Giao diện Hồ sơ 53
Hình 4.10: Giao diện Đổi mật khẩu 54
DANH MỤC BẢNG BIỂU Bảng 3.1: Bảng tính tiến hóa 12
Bảng 3.8: Usecase Đăng xuất 19
Bảng 3.9: Usecase Tra cứu thông tin các loại bệnh 21
Bảng 3.10: Usecase Xem video sức khỏe 22
Bảng 3.11: Usecase Chat tư vấn sức khỏe 23
Bảng 3.12: Usecase Tạo nhắc nhở 25
Bảng 3.13: Usecase Sửa nhắc nhở 27
Bảng 3.14: Usecase Xóa nhắc nhở 29
Bảng 3.15: Usecase Tạo ghi chú 30
Bảng 3.16: Usecase Sửa ghi chú 32
Bảng 3.17: Usecase Xóa ghi chú 33
Trang 15Bảng 3.18: Usecase Điều chỉnh thông tin cá nhân 35
Bảng 3.19: Usecase Quên mật khẩu 37
Bảng 3.20: Mô tả dữ liệu User 39
Bảng 3.21: Mô tả dữ liệu Disease 39
Bảng 3.22: Mô tả dữ liệu Video 40
Bảng 3.23: Mô tả dữ liệu Reminder 40
Bảng 3.24: Mô tả dữ liệu Note 40
Bảng 4.1: Danh sách giao diện 43
Bảng 4.2: Bảng mô tả giao diện Đăng nhập 44
Bảng 4.3: Bảng mô tả giao diện Đăng ký 45
Bảng 4.4: Bảng mô tả giao diện Trang chủ 46
Bảng 4.5: Bảng mô tả giao diện Chatbot tư vấn sức khỏe 47
Bảng 4.6: Bảng mô tả giao diện Tra cứu thông tin các loại bệnh 48
Bảng 4.7: Bảng mô tả giao diện Xem video sức khỏe 50
Bảng 4.8: Bảng mô tả giao diện Quản lý ghi chú 51
Bảng 4.9: Bảng mô tả giao diện Quản lý nhắc nhở 52
Bảng 4.10: Bảng mô tả giao diện Hồ sơ 53
Bảng 4.11: Bảng mô tả giao diện Đổi mật khẩu 54
Bảng 5.1: Bảng đánh giá mức độ hoàn thành và thử nghiệm ứng dụng 56
Trang 16Chương 1 GIỚI THIỆU CHUNG
1.1 Đặt vấn đề
Sức khỏe là tài sản quý giá nhất của con người Tuy nhiên, trong thời đại hiện nay, khi nhịp sống ngày càng bận rộn, áp lực công việc và học tập tăng cao, thì việc chăm sóc sức khỏe đang trở thành một vấn đề nan giải Nhiều người thường xuyên gặp phải các vấn đề về sức khỏe như mệt mỏi, căng thẳng, đau đầu, nhưng lại không có thời gian hoặc không biết cách để tự chăm sóc sức khỏe bản thân Bên cạnh đó, việc tiếp cận với thông tin y tế chính thống cũng gặp nhiều khó khăn Điều này dẫn đến tình trạng nhiều người bệnh tự ý mua thuốc, điều trị sai cách, gây ra những hậu quả nghiêm trọng
1.2 Lý do chọn đề tài
Dựa trên những vấn đề trên, với mong muốn góp phần nâng cao nhận thức và ý thức chăm sóc sức khỏe, em đã lựa chọn đề tài xây dựng một ứng dụng tư vấn sức khỏe cho cộng đồng Ứng dụng này sẽ giúp người dùng tiếp cận được với các thông tin về sức khỏe một cách nhanh chóng và chính xác, đồng thời có thể giải đáp các thắc mắc của người dùng về nhiều vấn đề sức khỏe khác nhau cũng như cung cấp hướng giải quyết các vấn đề đó, từ đó người dùng có thể tự theo dõi và chăm sóc sức khỏe bản thân một cách hiệu quả và nhanh chóng
1.3 Mục tiêu đề tài
• Nghiên cứu công cụ DialogFlow, nền tảng chatbot của Google cung cấp khả năng hiểu ngôn ngữ tự nhiên (NLU) và tạo phản hồi tự động để tạo ra chatbot tư vấn sức khỏe người dùng Chatbot sẽ được đào tạo trên một bộ dữ liệu lớn về các câu hỏi và câu trả lời liên quan đến sức khỏe và các thông tin y tế để phục
vụ người dùng
• Nghiên cứu các vấn đề xoay quanh sức khỏe để xây dựng một ứng dụng tư vấn sức khỏe hiệu quả, chính xác, chẳng hạn như các bệnh lý thường gặp, các biện pháp phòng bệnh, Kết quả nghiên cứu sẽ được ứng dụng trong việc xây dựng các tính năng của ứng dụng
• Xây dựng và phát triển ứng dụng trên nền tảng di động, với giao diện thân thiện và dễ sử dụng, đáp ứng nhu cầu tư vấn sức khỏe hay tra cứu thông tin y tế của người dùng ở bất cứ đâu, bất kể thời gian nào
Trang 171.4 Đối tượng nghiên cứu
Đồ án này hướng đến nghiên cứu các đối tượng sau:
• Front-end: Flutter • Back-end: Flutter • Database: Firebase • IDE: Visual Studio Code
• Người có nhu cầu chăm sóc sức khỏe
• Người có nhu cầu tìm kiếm các thông tin y tế
1.5 Phạm vi nghiên cứu
❖ Phạm vi môi trường: Application
❖ Phạm vi chức năng: Người dùng có thể sử dụng chatbot để tư vấn sức khỏe; tra cứu thư viện sức khỏe về các loại bệnh, thư viện video; biết được tình trạng sức khỏe của bản thân, đặt nhắc nhở và thông báo cho các hoạt động sức khỏe, tạo ghi chú về các vấn đề sức khỏe
1.6 Phương pháp thực hiện
❖ Phương pháp nghiên cứu
• Phân tích nhu cầu sử dụng của đối tượng người dùng • Nghiên cứu các tài liệu sức khỏe có liên quan
• Phương pháp thực nghiệm ❖ Phương pháp công nghệ
• Tìm hiểu Firebase để lưu trữ và thao tác với dữ liệu qua ứng dụng • Tìm hiểu DialogFlow để xây dựng chatbot tư vấn sức khỏe
Trang 18Chương 2 CƠ SỞ LÝ THUYẾT
2.1 Flutter
Flutter là một Mobile UI Framework dựa trên ngôn ngữ lập trình Dart, được Google phát triển vào tháng 5 năm 2017 Mục đích của Google khi phát triển nền tảng này là để tối ưu thời gian tạo ra các giao diện chất lượng cao trên cả iOS và Android, đáp ứng được việc phát triển các ứng dụng mobile/web một cách nhanh chóng nhưng vẫn đảm bảo sự mượt mà, ổn định trên các nền tảng khác nhau
Flutter được phát triển trên ngôn ngữ Dart (cũng được phát triển bởi Google) Đây là một ngôn ngữ hướng đối tượng, bởi vậy trong quá trình chuyển đổi từ ngôn ngữ lập trình hướng đối tượng này sang ngôn ngữ tương tự khác sẽ diễn ra rất thuận lợi Ngoài ra, Flutter còn cung cấp một bộ UI hoàn toàn miễn phí và có thể tùy chỉnh để nhà phát triển thỏa sức sáng tạo giao diện ứng dụng
• Hot reload: Tính năng này sẽ hiển thị gần như là realtime (thời gian thực) cho những thay đổi trong thiết kế, hay những tùy chỉnh của bạn trên cùng một nền tảng Điều này giúp cho việc thêm tính năng, sửa lỗi hoặc thử nghiệm ý tưởng mới ngay lập tức
• Tiết kiệm thời gian, công sức và tiền bạc: Giống như bất kỳ công nghệ đa nền tảng nào khác, Flutter cho phép bạn sử dụng cùng một cơ sở mã để xây dựng các ứng dụng iOS và Android riêng biệt Điều này đồng nghĩa thời gian test, fix bugs sẽ nhanh hơn, tiết kiệm chi phí xây dựng ứng dụng hơn
• Giao diện đẹp: Flutter cung cấp các bộ UI với các hiệu ứng, hoạt ảnh cực kỳ tiện lợi Do được trang bị rất nhiều UI, đi cùng với các bộ widget phong phú nên các nhà phát triển có thể dễ dàng “hình ảnh hóa” những gì mà mình muốn mà không gặp quá nhiều khó khăn
• Flutter vẫn chưa thật hoàn thiện: Tuy mạnh mẽ nhưng thật khó để Flutter có thể đạt được những điều mà ngôn ngữ Java, C , JavaScript đã làm được Đơn giản là vì Flutter còn khá mới mẻ Thực tế, nhiều tính năng nâng cao của Flutter vẫn chưa được hỗ trợ; nhiều thư viện chưa được thử nghiệm chính thức còn tồn tại hạn chế
Trang 19khi so sánh với các bản sao gốc (như là Google Maps)
• Dart còn khá mới: Ngôn ngữ Dart vẫn còn lạ lẫm với nhiều lập trình viên Tài liệu về chúng cũng không được nhiều như các ngôn ngữ khác Vậy nên dù có thể là dễ học, dễ thực hiện nhưng so với các ngôn ngữ thịnh hành thì đó là một trở ngại Về cơ bản ngôn ngữ lập trình Dart khá giống với Swift và Kotlin, nhưng có ít tính năng hơn, hoặc những tính năng hiện có chưa được toàn diện
• Kích thước file lớn và đôi lúc sự tương thích là chưa ổn định: Việc làm ra một ứng dụng chạy được trên cả Android và iOS tuy rất tuyệt vời, nhưng rõ ràng sự chuyên biệt luôn tốt hơn những thứ tổng hợp Nên đôi khi ứng dụng sẽ gặp một vài lỗi vặt trên cả hai nền tảng và kích thước file của chúng còn khá lớn
2.2 Firebase
Firebase là nền tảng được xây dựng, cung cấp bởi Google, hoạt động trên nền tảng Cloud nhằm hỗ trợ phát triển các ứng dụng trên web và di động dựa trên nguyên tắc đơn giản hóa thao tác lập trình Là một cơ sở dữ liệu có sẵn mang đến khả năng code nhanh chóng, thuận tiện hơn
Dưới sự hỗ trợ của nền tảng này, lập trình viên hoàn toàn không cần để tâm đến backend hay server mà có cơ hội tập trung chủ yếu vào việc phát triển ứng dụng Nền tảng này hướng đến đối tượng chủ yếu là di động, được biết đến như một “backend as an server”
• Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ trợ lập trình viên trong việc phát triển ứng dụng
• Tập trung phát triển chủ yếu về giao diện người dùng: Firebase cho phép lập trình viên tập trung chủ yếu vào phát triển phần giao diện người dùng nhờ kho Backend
Trang 20mẫu phong phú đa dạng
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
Intent đại diện cho một ý định cụ thể mà người dùng muốn diễn đạt hoặc hành động mà họ muốn thực hiện thông qua cuộc trò chuyện với hệ thống AI DialogFlow sử dụng Intent để ánh xạ các cú pháp ngôn ngữ tự nhiên (natural language) từ người dùng với các hành động cụ thể hoặc phản hồi mà bot cần thực hiện
Mỗi Intent có thể có các mẫu câu khác nhau mà người dùng có thể sử dụng để diễn đạt cùng một ý định, và mỗi Intent cũng có thể có các thực hiện khác nhau hoặc phản hồi để đáp ứng cho ý định đó Ví dụ, nếu một người dùng nói "Xin chào" hoặc "Hello" đến chatbot, hệ có thể có một Intent được gán cho hành động chào hỏi, trong đó thống sẽ phản hồi lại bằng cách gửi lời chào lại như "Xin chào! Bạn cần giúp gì hôm nay?" như một cách mở đầu một cuộc trò chuyện
Tóm lại, Intent trong DialogFlow giúp xác định ý định cụ thể của người dùng từ các
Trang 21câu hoặc từ ngữ họ sử dụng và từ đó chuyển hướng hoặc thực hiện các hành động tương ứng của hệ thống AI hay chatbot
Entity đại diện cho các thành phần của thông điệp người dùng, các thành phần đó có thể thay đổi hoặc có ý nghĩa đặc biệt Entity giúp hệ thống hiểu rõ hơn về các thông tin cụ thể mà người dùng cung cấp trong các câu hoặc thông điệp của họ
Entity được sử dụng để trích xuất các thông tin quan trọng từ các dòng văn bản hoặc câu nói mà người dùng gửi đến chatbot hoặc hệ thống AI Điều này giúp DialogFlow nhận biết và xử lý dữ liệu người dùng một cách chính xác, cho phép bot hiểu được ngữ cảnh và cung cấp phản hồi chính xác hơn Ví dụ, trong một câu như "Tôi muốn đặt một chiếc bàn vào thứ Ba tới", "đặt một chiếc bàn" có thể là một Entity loại "Đặt hàng", trong khi "thứ Ba" có thể là một Entity loại "Ngày" DialogFlow cung cấp các loại Entity mặc định như số, ngày tháng, vị trí địa lý,… Người sử dụng cũng có thể tạo các Entity tùy chỉnh để phù hợp với các thông tin cụ thể và yêu cầu của ứng dụng của mình
Tóm lại, Entity trong DialogFlow giúp xác định và trích xuất các thông tin quan trọng từ câu hoặc văn bản người dùng, giúp hệ thống AI hiểu rõ hơn về ý nghĩa và ngữ cảnh của thông điệp và cung cấp phản hồi hoặc xử lý dữ liệu phù hợp
Agent đề cập đến dự án cụ thể mà bạn tạo để xây dựng và triển khai các hệ thống trí tuệ nhân tạo (AI) như chatbot, ứng dụng hội thoại, hoặc ứng dụng hỗ trợ tự động khác Mỗi Agent trong DialogFlow đại diện cho một module NLU (Natural Language Understanding – Phân tích để hiểu ngôn ngữ tự nhiên), giúp người sử dụng phân tích những những gì người dùng đưa vào (text hoặc voice) để chuyển thành những dữ liệu mà người sử dụng có thể xử lý được bằng lập trình
Trang 22Hình 2.1: Cách Agent quản lý một cuộc hội thoại giữa người dùng và hệ thống
Mục tiêu của một Agent trong DialogFlow là để tạo ra một hệ thống AI hoặc chatbot thông minh có khả năng hiểu và phản hồi lại người dùng một cách tự nhiên, giúp cải thiện trải nghiệm người dùng và cung cấp giải pháp cho các tác vụ cụ thể mà Agent được thiết kế để thực hiện
• Hỗ trợ các tính năng mở rộng: Cho phép tích hợp với các webhook và các hệ thống ngoại vi khác để xử lý logic phức tạp và tích hợp dữ liệu từ các nguồn bên ngoài
• Machine Learning và Natural Language Understanding (NLU): DialogFlow có khả năng hiểu và xử lý ngôn ngữ tự nhiên, sử dụng các mô hình machine learning để cải thiện việc hiểu ý định và xử lý ngôn ngữ
• Khả năng hiểu và phản hồi có thể hạn chế: Trong một số trường hợp, khả năng
Trang 23hiểu và phản hồi của bot có thể hạn chế, đặc biệt khi người dùng sử dụng ngôn ngữ phức tạp hoặc có nhiều yếu tố ngữ cảnh
• Phụ thuộc vào kết nối internet: Hoạt động dựa trên kết nối internet, vì vậy sẽ có hạn chế khi không có kết nối mạng
• Giới hạn trong mô hình miễn phí: Phiên bản miễn phí của DialogFlow có giới hạn về số lượng yêu cầu API, giới hạn dung lượng dữ liệu và một số hạn chế về tính năng so với các phiên bản trả phí
• Có thể đòi hỏi kỹ năng lập trình: Đối với những tính năng phức tạp hoặc yêu cầu tích hợp sâu, có thể yêu cầu kiến thức kỹ thuật và lập trình để triển khai
Trang 24Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Danh sách các yêu cầu
• Sau khi truy cập vào ứng dụng, người dùng có thể sử dụng các tính năng sau: o Đăng ký tài khoản
o Cập nhật thông tin cá nhân sau khi đăng ký tài khoản (các thông tin sức khỏe như chiều cao, cân nặng)
o Sử dụng chatbot để được giải đáp về vấn đề sức khỏe mà bản thân đang gặp phải, hoặc hỏi về một bệnh lý hoặc thông tin y tế bất kì
o Truy cập thư viện sức khỏe để tìm đọc thông tin y tế về các loại bệnh hoặc xem các video hướng dẫn các bài tập thể dục, yoga và các video công thức hướng dẫn nấu các món ăn có lợi cho sức khỏe
o Theo dõi tình trạng cơ thể của bản thân qua các chỉ số như cân nặng, chiều cao, chỉ số BMI sau khi đã cung cấp các thông tin cá nhân trong phần hồ sơ sau khi đăng ký tài khoản
o Ghi chú về cảm giác sức khỏe của họ, triệu chứng, và thuốc đã sử dụng hoặc các thông tin cần nhớ như thông tin bệnh viện, bác sĩ,…
o Cài đặt các nhắc nhở thông báo về các hoạt động liên quan đến sức khỏe như uống nước, tập luyện, điều trị, uống thuốc
o Đổi mật khẩu hoặc có thể cài đặt mật khẩu mới khi quên thông qua email • Lưu trữ:
o Thông tin về người dùng: Hệ thống sẽ lưu các thông tin của người dùng như email, họ và tên, tuổi, giới tính, chiều cao, cân nặng
o Thông tin về các loại bệnh: bao gồm các thông tin như tên, tổng quan, nguyên nhân gây bệnh, triệu chứng, đối tượng có nguy cơ mắc bệnh, cách phòng ngừa, các biện pháp chuẩn đoán, các biện pháp điều trị
o Thông tin về các video: bao gồm các thông tin như tiêu đề, thời lượng, hình thu nhỏ, đường liên kết tới video
Trang 25o Thông tin về nhắc nhở các hoạt động: bao gồm các thông tin như tên hoạt động, thời gian bắt đầu, ngày hoạt động, nhãn, nhắc nhở có lặp lại hay không, có đặt thông báo cho nhắc nhở hay không
o Thông tin về ghi chú: bao gồm các thông tin như tiêu đề, nội dung ghi chú, thời gian ghi chú, ngày ghi chú
• Tính toán: Tính toán chỉ số BMI để xác định tình trạng của người dùng và đưa ra lời khuyên thích hợp Tính toán thời gian đặt thông báo cho các hoạt động được tạo nhắc nhở
• Tính an toàn:
o Xác thực người dùng: Yêu cầu người dùng phải đăng nhập, xác thực trước khi truy cập vào ứng dụng, sử dụng phương thức email và mật khẩu để xác minh danh tính người dùng
o Kết nối an toàn: Sử dụng HTTPS để đảm bảo việc truyền dữ liệu giữa ứng dụng và cơ sở dữ liệu Firebase được mã hóa và an toàn
• Tính bảo mật:
o Bảo vệ thông tin cá nhân: Đảm bảo rằng thông tin cá nhân của người dùng được bảo vệ bằng cách mã hóa dữ liệu, như thông tin y tế, tuân thủ các quy định về bảo vệ dữ liệu cá nhân
o Bảo mật cơ sở dữ liệu: Sử dụng Firebase Security Rules để thiết lập quy tắc truy cập cơ sở dữ liệu, xác định quyền truy cập dữ liệu cho người dùng hoặc nhóm người dùng cụ thể
o Bảo mật phần mềm: Đảm bảo rằng phần mềm được cập nhật định kỳ để bảo vệ khỏi các lỗ hổng bảo mật đã biết
• Tính tiến hóa:
1 Thay đổi thông tin cá Họ và tên, tuổi, giới tính, chiều cao, cân
Trang 26Không cần hướng dẫn
2 Tra cứu các loại bệnh
Không cần hướng dẫn
3 Xem video sức khỏe
Không cần hướng dẫn
4 Thêm, xóa, chỉnh sửa ghi chú
Không cần hướng dẫn
5 Thêm, xóa, chỉnh sửa nhắc nhở
Không cần hướng dẫn
6 Xem tình trạng sức khỏe
Không cần hướng dẫn
7 Chỉnh sửa thông tin cá nhân
Không cần hướng dẫn
4 Thay đổi mật khẩu Mật khẩu hiện tại, mật khẩu mới
Bảng 3.1: Bảng tính tiến hóa
Trang 273 Xóa ghi chú Sau 1 giây 4 Thêm nhắc nhở Ngay lập tức <= 1MB
7 Thay đổi thông tin cá nhân
Trang 28❖ Danh sách các tác nhân
Người dùng Người dùng các tính năng cơ bản của ứng dụng
Bảng 3.4: Danh sách các tác nhân
❖ Danh sách Usecase
mới
Hình 3.1: Sơ đồ Usecase tổng quan
Trang 29UC002 Đăng nhập Cho phép người dùng đăng nhập vào ứng dụng
UC003 Đăng xuất Cho phép người dùng thoát khỏi tài khoản hiện tại
UC004 Tra cứu thông tin các loại bệnh
Cho phép người dùng tra cứu thông tin các loại bệnh
UC005 Xem video sức khỏe Cho phép người dùng xem các video liên quan đến sức khỏe
UC006 Chat tư vấn sức khỏe Cho phép người dùng trực tiếp giải đáp thắc mắc về vấn đề sức khỏe bất kì dưới dạng tin nhắn
UC007 Tạo nhắc nhở Cho phép người dùng tạo nhắc nhở cho các hoạt động sức khỏe của bản thân
UC008 Sửa nhắc nhở Cho phép người dùng chỉnh sửa các nhắc nhở đã tạo trước đó
UC009 Xóa nhắc nhở Cho phép người dùng xóa các nhắc nhở đã tạo trước đó
UC010 Tạo ghi chú Cho phép người dùng ghi chú về các thông tin sức khỏe của bản thân UC011 Sửa ghi chú Cho phép người dùng chỉnh sửa nội
dung các ghi chú đã tạo trước đó UC012 Xóa ghi chú Cho phép người dùng xóa các ghi chú
đã tạo trước đó UC013 Điều chỉnh thông tin cá
nhân
Cho phép người dùng điều chỉnh thông tin cá nhân, bao gồm cả các thông tin sức khỏe như chiều cao, cân nặng UC014 Quên mật khẩu Cho phép người dùng tạo lại mật khẩu
mới khi quên thông qua email
Bảng 3.5: Danh sách các Usecase
Trang 303.2.2 Đặc tả Usecase a) Usecase Đăng ký
Tên Usecase Đăng ký
Mô tả Usecase cho phép người dùng đăng ký tài khoản để sử dụng ứng dụng với các chức năng cơ bản dành cho người dùng
Tiền điều kiện Không có
Hậu điền kiện Người dùng đăng ký thành công, chuyển hướng sang màn hình chính của ứng dụng
Dòng sự kiện chính
1 Chọn phần “Đăng ký ngay” 2 Điền các thông tin cần đăng ký 3 Nhấn nút “Đăng ký”
4 Hệ thống ghi nhận đăng ký thành công và chuyển hướng sang màn hình chính
Dòng sự kiện phụ Không có
Dòng sự kiện lỗi 4a Hệ thống thông báo cập nhật thất bại do lỗi thông tin không hợp lệ
Bảng 3.6: Usecase Đăng ký ❖ Biểu đồ hoạt động
Hình 3.2: Biểu đồ hoạt động của Usecase Đăng ký
Trang 31❖ Biểu đồ trình tự
b) Usecase Đăng nhập
Tên Usecase Đăng nhập
Mô tả Usecase cho phép người dùng đăng nhập vào hệ thống để sử dụng các chức năng của ứng dụng
Tiền điều kiện Người dùng đã có tài khoản (đã đăng ký)
Hậu điền kiện Người dùng đăng nhập thành công, chuyển hướng sang màn hình chính của ứng dụng
Dòng sự kiện chính
1 Điền các thông tin đăng nhập 2 Nhấn nút “Đăng nhập”
3 Hệ thống ghi nhận và chuyển hướng sang màn hình chính Dòng sự kiện phụ Không có
Dòng sự kiện lỗi 4a Hệ thống thông báo cập nhật thất bại do lỗi thông tin không xác thực
Bảng 3.7: Usecase Đăng nhập
Hình 3.3: Biểu đồ trình tự của Usecase Đăng ký
Trang 32❖ Biểu đồ hoạt động
❖ Biểu đồ trình tự
Hình 3.4: Biểu đồ hoạt động của Usecase Đăng nhập
Hình 3.5: Biểu đồ trình tự của Usecase Đăng nhập
Trang 33c) Usecase Đăng xuất
Tên Usecase Đăng xuất
Mô tả Usecase cho phép người dùng thoát ra khỏi hệ thống
Tiền điều kiện Người dùng đã đăng nhập
Hậu điền kiện Người dùng thoát ra khỏi hệ thống và hiển thị màn hình đăng nhập
Dòng sự kiện chính
1 Chọn mục “Hồ sơ” 2 Chọn nút “Đăng xuất”
3 Hệ thống hiển thị dialog xác nhận đăng xuất 4 Nhấn nút xác nhận
5 Hệ thống điều hướng sang màn hình đăng nhập
Dòng sự kiện phụ 4a Người dùng không xác nhận, trở về màn hình trước đó Dòng sự kiện lỗi Không có.
Bảng 3.8: Usecase Đăng xuất
❖ Biểu đồ hoạt động
Hình 3.6: Biểu đồ hoạt động của Usecase Đăng xuất
Trang 34❖ Biểu đồ trình tự
d) Usecase Tra cứu thông tin các loại bệnh
Tên Usecase Tra cứu thông tin các loại bệnh
Mô tả Usecase cho phép người dùng tra cứu thông tin các loại bệnh thường gặp
Tiền điều kiện Không có
Hậu điền kiện Hiển thị thông tin loại bệnh người dùng chọn Dòng sự kiện
chính
1 Chọn phần “Tra cứu”
2 Hệ thống hiển thị màn hình tra cứu theo bảng chữ cái 3 Người dùng chọn chữ cái đầu tiên của loại bệnh cần tra cứu 4 Hệ thống hiển thị danh sách các loại bệnh bắt đầu bằng chữ cái người dùng chọn
5 Người dùng chọn loại bệnh mình cần tra cứu (nếu có trong danh sách)
6 Hiển thị màn hình thông tin người dùng chọn Dòng sự kiện phụ 5a Loại bệnh người dùng không có trong danh sách
Hình 3.7: Biểu đồ trình tự của Usecase Đăng xuất
Trang 35Dòng sự kiện lỗi Không có.
Bảng 3.9: Usecase Tra cứu thông tin các loại bệnh
❖ Biểu đồ hoạt động
❖ Biểu đồ trình tự
e) Usecase Xem video sức khỏe
Hình 3.9: Biểu đồ trình tự của Usecase Tra cứu thông tin các loại bệnh Hình 3.8: Biểu đồ hoạt động của Usecase Tra cứu thông tin các loại bệnh
Trang 36Mã Usecase UC005
Tên Usecase Xem video sức khỏe
Mô tả Usecase cho phép người dùng xem các video liên quan đến sức khỏe
Tiền điều kiện Người dùng đã đăng nhập
Hậu điền kiện Hiển thị video player chiếu video mà người dùng chọn xem Dòng sự kiện
chính
1 Chọn phần “Tra cứu” 2 Chọn tab “Video”
3 Hiển thị danh sách các video 4 Người dùng chọn video muốn xem
5 Hệ thống chuyển hướng sang trang chiếu video, tải video và chiếu video khi đã tải xong
Dòng sự kiện phụ Không có Dòng sự kiện lỗi Không có.
Bảng 3.10: Usecase Xem video sức khỏe
❖ Biểu đồ hoạt động
Hình 3.10: Biểu đồ hoạt động của Usecase Xem video sức khỏe