1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng hỗ trợ chăm sóc sức khỏe em bé (khóa luận tốt nghiệp)

160 6 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 160
Dung lượng 10,78 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thông qua đó người sử dụng ứng dụng có thể ghi lại toàn bộ sự phát triển của con mình để cung cấp cho bác sĩ nếu như bé có bị bệnh hay gặp phải vấn đề về dinh dưỡng.. Các ứng dụng này đa

Trang 1

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

KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN MINH THẮNG BÙI TRỌNG KHÁNH DUY

KHÓA LUẬN TỐT NGHIỆP

TP HỒ CHÍ MINH, 2022 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN MINH THẮNG BÙI TRỌNG KHÁNH DUY

KHÓA LUẬN TỐT NGHIỆP

TP HỒ CHÍ MINH, 2022

Trang 3

THÔNG TIN HỘI ĐỒNG CHẤM KHÓA LUẬN TỐT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ngày

của Hiệu trưởng Trường Đại học Công nghệ Thông tin

1 - Chủ tịch

2 - Thư ký

3 - Ủy viên

4 - Ủy viên

Trang 4

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA

VIỆT NAM Độc Lập - Tự Do - Hạnh Phúc

TP HCM, ngày tháng năm 2022

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP

(CỦA CÁN BỘ HƯỚNG DẪN) Tên Khóa luận Tốt nghiệp:

Đánh giá Khóa luận Tốt nghiệp:

1 Về cuốn báo cáo:

Một số nhận xét về hình thức cuốn báo cáo:

2 Về nội dung nghiên cứu:

Trang 6

LỜI CẢM ƠN

Sau 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 nhóm 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 Khóa luận Tốt nghiệp của mình

Nhóm em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng đã quan tâm hướng dẫn truyền đạt những kiến thức và kinh nghiệm cho nhóm em trong suốt thời gian học tập

và thực hiện Khóa luận Tốt nghiệp

Cuối cùng, nhóm em xin gửi lời cảm ơn đến tất cả thầy cô trong khoa và bạn bè đã luôn bên cạnh, chỉ bảo, truyền đạt và động viên nhóm em

Trong quá trình làm bài tập môn không tránh khỏi được những sai sót, nhóm em mong nhận được sự góp ý của quý thầy và các bạn để được hoàn thiện hơn

Nhóm em xin chân thành cảm ơn

Thành phố Hồ Chí Minh, ngày tháng năm 2022

Sinh viên

BÙI TRỌNG KHÁNH DUY

NGUYỄN MINH THẮNG

Trang 7

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ

MINH

TRƯỜNG ĐẠI HỌC

CÔNG NGHỆ THÔNG TIN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT

NAM Độc Lập - Tự Do - Hạnh Phúc

Cán bộ hướng dẫn: TS NGUYỄN ĐÌNH HIỀN, THS TRẦN ANH DŨNG

Thời gian thực hiện: Từ ngày 21/02/2022 đến ngày 19/06/2022

Sinh viên thực hiện:

NGUYỄN MINH THẮNG - 18521396

BÙI TRỌNG KHÁNH DUY - 18520654

Trang 8

Nội dung đề tài:

1 Lý do chọn đề tài:

Ở 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

Sau thời gian tìm hiểu và cân nhắc, nhóm thấy vấn đề mang tính thực tế và rất thiết yếu, nên đã chọn vấn đề này để nghiên cứu và phát triển khóa luận

2 Mục tiêu:

Trở thành một trợ thủ đắc lực giúp các bậc bố mẹ có thể kiểm soát được sự chăm sóc cho con cái, làm chủ thời gian hơn Thông qua đó người sử dụng ứng dụng có thể ghi lại toàn bộ sự phát triển của con mình để cung cấp cho bác sĩ nếu như bé có bị bệnh hay gặp phải vấn đề về dinh dưỡng

3 Phạm vi:

Phạm vi môi trường: Di động chạy hệ điều hành Android và iOS

Phạm vi chức năng:

- Chức năng Tạo bản sao chỉ số em bé

- Chức năng Theo dõi, cập nhật và đưa ra thông báo tình trạng BMI của trẻ

- Chức năng Theo dõi, cập nhật và đưa ra thông báo tình trạng chỉ số dinh dưỡng của trẻ

- Chức năng Đưa ra gợi ý thực đơn hàng tuần theo tình trạng dinh dưỡng

- Chức năng Theo dõi chỉ số dinh dưỡng qua thức ăn của các ngày trước đó

- Các mẹo và các cách phòng ngừa và chữa trị các loại bệnh khi trẻ mắc phải

Trang 9

- Recommender system đưa ra gợi ý giúp người dùng dễ dàng mua các vật dụng phù hợp với từng người

5 Phương pháp thực hiện:

Trước khi đi vào nghiên cứu chi tiết cụ thể, nhóm em đã lên kế hoạch tìm hiểu rất nhiều các ứng dụng có sẵn trên thị trường Các ứng dụng này đa số đều rất mới mẻ, chủ yếu

là đáp ứng nhu cầu chăm sóc dinh dưỡng và cơ thể cho người từ 3 tuổi trở lên Chính

vì thế để tạo ra sự khác biệt và đáp ứng những nhu cầu chăm sóc cần thiết cho trẻ em dưới 3 tuổi, nhóm nhóm em đã nghiên cứu tạo ra một ứng dụng có thể làm điều 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 cũng đã tuân theo những quy chuẩn phát triển phần mềm và làm hoàn thiện phần mềm thông qua các bước sau:

Bước 1: Nhóm tiến hành khảo sát người dùng chi tiết, thu thập những nhu cầu người

dùng và những khó khăn của người dùng khi chưa có phần mềm

Bước 2: Nhóm nghiên cứu các sản phẩm hiện có sẵn trên thị trường xem có đáp ứng

được những nhu cầu thực tại không, khó khăn của phần mềm hiện tại là gì

Trang 10

Bước 3: Nhóm phân tích và đặc tả phần mềm theo các mô hình có sẵn về phát triển

phần mềm Vẽ các Use-case cho chức năng và WorkFlow để nhóm cùng thực hiện

Bước 4: Nhóm thiết kế cơ sở dữ liệu và chọn các phương pháp hiện thực cơ sở dữ liệu Bước 5: Thiết kế sơ bộ những chức năng của phần mềm trong tương lai

Bước 6: Nhóm lựa chọn ngôn ngữ lập trình để hiện thực phần mềm của nhóm thành

sản phẩm Qua các sự hội ý, họp hành, nhóm quyết định chọn sử dụng ngôn ngữ dễ học và tiện lợi Dart thông qua Cross platform Flutter để thực hiện việc lập trình

Bước 7: Nhóm thiết kế Giao diện cho ứng dụng trên ứng dụng hỗ trợ thiết kế Figma Bước 8: Nhóm tiến hành cài đặt hoàn thiện cho phần mềm

Bước 9: Nhóm tiến hành sửa chữa các lỗi và nâng cấp một số chức năng có trong phần

7 Kết quả mong đợi:

- Hoàn thiện đầy đủ các chức năng

- Giao diện đẹp mắt, dễ sử dụng

8 Hướng phát triển của đề tài:

Trang 11

- Cải thiện tốc độ xử lý dữ liệu của ứng dụng, cải thiện trải nghiệm người dùng

- Xây dựng module về Tiêm phòng, nơi tổng hợp những kiến thức tiêm phòng cho trẻ đến với người dùng Phổ cập kiến thức tiêm phòng, tổng hợp các mũi tiêm quan trọng kết hợp

với lưu lịch sử tiêm phòng của trẻ và gợi ý những địa điểm tiêm phòng hợp lý

- Xây dựng module Gợi ý lịch hoạt động cho trẻ và cho bố mẹ trong tuần theo tháng Từ

đó cải thiện sức khỏe cho cả gia đình và giúp tạo động lực cho các bố mẹ dành nhiều thời gian hơn với con

- Cải thiện tính chính xác và độ đa dạng cho các thuật toán gợi ý bữa ăn cho trẻ, gợi ý sản phẩm tiêu dùng

9 Kế hoạch làm việc:

Thời gian thực hiện từ ngày 21/02/2022 đến ngày 19/06/2022

Nhóm chia thành 4 giai đoạn cụ thể:

Giai đoạn 1: Hoàn chỉnh ứng dụng hiện tại Giai đoạn này gồm 2 sprint:

Thời gian: 21/02/2022 – 06/03/2022 (2 tuần)

Sprint 1: Lên kế hoạch chi tiết về các sửa đổi, cập nhật cần thiết cho ứng dụng hiện tại Sprint 2: Triển khai chỉnh sửa ở phía Backend (database, server) và ở phía Frontend (cập nhật UI, cải thiện UX, loading, )

Sprint Thời gian Công việc

Trang 12

- Xây dựng CSDL và RESTful API mới

- Triển khai các chỉnh sửa cần thiết sau khi lên kế hoạch

Giai đoạn 2: Hoàn thành module Mẹo chăm sóc trẻ Giai đoạn này gồm 2 sprint:

Thời gian: 07/03/2022 – 27/03/2022 (3 tuần)

Sprint 1: Lên kế hoạch cho module Lên danh sách, phân loại, chọn lọc tất cả các mẹo sẽ

sử dụng Thiết kế UI/UX cho module

Sprint 2: Triển khai chức năng Hiển thị danh sách mẹo và Xem chi tiết Mẹo

Sprint Thời gian Công việc

Sprint

1

07/03/2022 –

13/03/2022

- Lên kế hoạch cho module

- Lên danh sách, phân loại, chọn lọc tất cả các mẹo sẽ sử dụng

- Thiết kế UI/UX cho module

Trang 13

Thời gian: 28/03/2022 – 01/05/2022 (5 tuần)

Sprint 1: Tìm hiểu công nghệ áp dụng cho module, tìm hiểu các thuật toán và ứng dụng của AI về Chatbot có sẵn Lên kế hoạch chi tiết về những chức năng dự định triển khai trong module

Sprint 2: Setup server và Backend phục vụ cho module Thiết kế UI/UX cho module Sprint 3: Triển khai xây dựng UI lên ứng dụng và kết nối API về AI cho ứng dụng Triển khai các chức năng đã lên kế hoạch

Sprint Thời gian Công việc

Sprint

1

28/03/2022 –

03/04/2022

- Tìm hiểu công nghệ áp dụng cho module

- Tìm hiểu các thuật toán và ứng dụng của AI về Chatbot có sẵn

- Lên kế hoạch chi tiết về những chức năng dự định triển khai trong module

Trang 14

Sprint

2

04/04/2022 –

17/04/2022

- Setup server và Backend phục vụ cho module

- Thiết kế UI/UX cho module

Sprint

3

18/04/2022 –

01/05/2022

- Triển khai xây dựng UI lên ứng dụng

- Kết nối API về AI cho ứng dụng

- Triển khai các chức năng đã lên kế hoạch

Giai đoạn 4: Hoàn thành module Recommender System có sử dụng nhiều thuật toán kết

hợp và Đóng dự án Giai đoạn này gồm 4 sprint:

Thời gian: 02/05/2022 – 19/06/2022 (7 tuần)

Sprint 1: Tìm hiểu công nghệ áp dụng cho module, tìm hiểu các thuật toán, phân tích thuật toán Lên kế hoạch chi tiết về những chức năng dự định triển khai trong module

Sprint 2: Setup server và Backend phục vụ cho module Thiết kế UI/UX cho module Sprint 3: Triển khai xây dựng UI lên ứng dụng và kết nối API về thuật toán cho ứng dụng Triển khai các chức năng đã lên kế hoạch

Sprint 4: Tổng hợp tài liệu cho toàn bộ dự án Chuẩn bị nội dung, bản trình chiếu cho buổi trình bày

Sprint Thời gian Công việc

Trang 15

Sprint

1

02/05/2022 –

08/05/2022

- Tìm hiểu công nghệ áp dụng cho module

- Tìm hiểu các thuật toán và phân tích ưu, nhược điểm của các thuật toán

- Lên kế hoạch chi tiết về những chức năng dự định triển khai trong module

Sprint

2

09/05/2022 –

22/05/2022

- Setup server và Backend phục vụ cho module

- Thiết kế UI/UX cho module

Sprint

3

23/05/2022 –

05/06/2022

- Triển khai xây dựng UI lên ứng dụng

- Kết nối API về thuật toán cho ứng dụng

- Triển khai các chức năng đã lên kế hoạch

Trang 16

NGUYỄN MINH THẮNG

BÙI TRỌNG KHÁNH DUY

Trang 17

MỤC LỤC

TÓM TẮT KHÓA LUẬN 1

Chương 1 GIỚI THIỆU CHUNG 2

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

1.2 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 2

1.3 Đối tượng nghiên cứu 2

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

Chương 2 TỔNG QUAN 5

2.1 Khảo sát hiện trạng 5

2.1.1 Hiện trạng chăm sóc trẻ em của bố mẹ ở thành thị 5

2.1.2 Hiện trạng các ứng dụng chăm sóc trẻ em 5

2.2 Nhận xét về hiện trạng 5

2.2.1 Các vấn đề tồn đọng 5

2.2.2 Các vấn đề tập trung trong đề tài 6

Chương 3 TÌM HIỂU CÔNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI 7

3.1 Tổng quan về công nghệ Flutter 7

3.1.1 Khái niệm 7

3.1.2 Lịch sử phát triển 7

3.1.3 Ưu điểm của Flutter 7

3.2 Ngôn ngữ Dart 8

3.2.1 Giới thiệu ngôn ngữ Dart 8

3.2.2 Ưu điểm của Dart 9

3.3 Ứng dụng Figma 9

3.3.1 Giới thiệu Figma 9

Trang 18

3.3.2 Lịch sử phát triển 10

3.3.3 Ưu điểm 10

3.4 Tổng quan về Firebase 12

3.4.1 Giới thiệu về Firebase 12

3.4.2 Các chức năng chính của Google Firebase 13

a Realtime Database – Cơ sở dữ liệu thời gian thực 13

b Firebase Authentication – Hệ thống xác thực Firebase 14

c Firebase Storage 14

d Firebase Cloud Messaging 14

3.4.3 Lợi ích của Google Firebase 14

a Triển khai ứng dụng cực nhanh 14

b Bảo mật 15

c Tính linh hoạt và khả năng mở rộng 15

3.5 Tổng quan về Dialogflow 15

3.5.1 Ứng dụng Dialogflow vào ứng dụng BabyCare 16

3.6 Hệ thống khuyến nghị 16

3.6.1 Giới thiệu 16

3.6.2 Một số phương pháp trong hệ thống khuyến nghị 18

a Hệ thống khuyến nghị theo nội dung (Content-based) 18

b Hệ thống khuyến nghị lọc cộng tác (Collaborative Filtering) 19

3.6.3 So sánh Content-based và Collaborative Filtering 21

Chương 4 TÌM HIỂU CƠ SỞ LÝ THUYẾT 22

4.1 Chỉ số BMI của trẻ 22

4.1.1 Đối với bé từ 0-5 tuổi 24

4.1.2 Đối với trẻ từ 5-15 tuổi 24

4.2 Chỉ số dinh dưỡng của trẻ 25

Trang 19

4.2.2 Đặc điểm sinh lý của trẻ 3 tuổi 25

4.2.2 Nhu cầu cơ bản trong chế độ dinh dưỡng cho trẻ 3 tuổi 26

Chương 5 XÂY DỰNG HỆ THỐNG 28

5.1 Mô hình Use-case 28

5.1.1 Sơ đồ Use-case 28

5.1.2 Danh sách các actor 29

5.1.3 Danh sách các Use-case 30

5.1.4 Đặc tả Use-case 31

a Đặc tả Use-case Đăng ký tài khoản 31

b Đặc tả Use-case Đăng nhập 38

c Đặc tả Use-case Khởi tạo em bé 43

d Đặc tả Use-case Hiển thị thông tin chung 48

e Đặc tả Use-case Hiển thị Chỉ số khối cơ thể 51

f Đặc tả Use-case Cập nhật Chỉ số khối cơ thể 54

g Đặc tả Use-case Thông báo tình trạng Chỉ số khối cơ thể 58

h Đặc tả Use-case Hiển thị Chỉ số dinh dưỡng 62

i Đặc tả Use-case Cập nhật Lượng thức ăn tiêu thụ 65

j Đặc tả Use-case Cập nhật Chỉ số dinh dưỡng 69

k Đặc tả Use-case Thông báo tình trạng Chỉ số dinh dưỡng 73

l Đặc tả Use-case Thống kê bữa ăn 76

m Đặc tả Use-case Lên kế hoạch cho bữa ăn tiếp theo 79

n Đặc tả Use-case Cẩm nang chăm sóc trẻ 83

o Đặc tả Use-case Chatbot hỗ trợ người dùng 87

5.2 Sơ đồ lớp 91

5.2.1 Bảng Account 91

5.2.2 Bảng Baby 92

5.2.3 Bảng BMI 92

5.2.4 Bảng Vaccination 93

Trang 20

5.2.5 Bảng Food 93

5.2.6 Bảng Nutri 94

5.2.7 Bảng NutriSuggest 94

5.2.8 Bảng FoodSuggest 95

5.2.9 Bảng HandbookTheme 95

5.2.10 Bảng ArticleInfo 96

5.2.11 Bảng ArticleDetail 97

5.3 Thiết kế giao diện ứng dụng 97

5.3.1 Thiết kế giao diện 97

5.3.2 Màn hình Đăng nhập 98

5.3.3 Màn hình Đăng ký tài khoản 99

5.3.4 Màn hình Trang chủ 100

5.3.5 Màn hình Khởi tạo em bé 101

5.3.6 Màn hình Hiển thị thông tin chung 102

5.3.7 Màn hình Hiển thị, Cập nhật và Thông báo tình trạng BMI 103

5.3.8 Màn hình Hiển thị, Cập nhật và Thông báo tình trạng NI 104

5.3.9 Màn hình Gợi ý bữa ăn 105

5.3.10 Màn hình Thống kê bữa ăn 106

5.3.11 Màn hình Xem kế hoạch các bữa ăn tiếp theo 107

5.3.12 Màn hình Cẩm nang chăm sóc trẻ - Danh sách chủ đề 108

5.3.13 Màn hình Cẩm nang chăm sóc trẻ - Danh sách bài viết 109

5.3.14 Màn hình Cẩm nang chăm sóc trẻ - Chi tiết bài viết 110

5.3.15 Màn hình Chat – Center 111

5.3.16 Màn hình Chat 112

Chương 6 ÁP DỤNG GỢI Ý SẢN PHẨM BẰNG THUẬT TOÁN RECOMMENDDATION SYSTEMS 113

6.1 Thực nghiệm 113

Trang 21

a Utility Matrix 113

b Similarity Metrics (Các chỉ số tương tự) 114

c Root Mean Squared Error (RMSE) 116

6.1.2 Phương pháp 117

a Chuẩn bị dữ liệu 117

b Content-based Recommender System 118

c Neighborhood-based Recommendation System 119

6.2 Đánh giá 125

6.2.1 So sánh kết quả 125

4.2.2 Nhận xét 126

6.3 Áp dụng vào BabyCare 127

6.3.1 Đề xuất sản phẩm 127

6.3.2 Sản phẩm tương tự 128

Chương 7 KẾT LUẬN, HƯỚNG PHÁT TRIỂN 129

7.1 Kết quả thu được 129

7.2 Khó khăn 129

7.3 Phương hướng phát triển 130

TÀI LIỆU THAM KHẢO 132

Trang 22

DANH MỤC HÌNH ẢNH

Hình 3.1 Giới thiệu về Framework Google Firebase 13 Hình 3.2 Giới thiệu về Dialogflow 16 Hình 4.1 Bảng chiều cao và cân nặng chuẩn của trẻ từ 0-10 tuổi chuẩn WHO 23 Hình 4.2 Khủng hoảng tuổi lên 3 26 Hình 4.3 Thành phần dinh dưỡng cho trẻ 3 tuổi 27 Hình 5.1 Sơ đồ Use-case tổng quát 28 Hình 5.2 Sơ đồ Use-case chức năng bổ sung 29 Hình 5.3 Hình minh họa hoạt động Use-case Đăng ký tài khoản 32 Hình 5.4 Sơ đồ tuần tự Đăng ký 33 Hình 5.5 Hình minh họa hoạt động Use-case Đăng nhập tài khoản 39 Hình 5.6 Sơ đồ tuần tự Đăng nhập 40 Hình 5.7 Hình minh họa hoạt động Khởi tạo em bé 44 Hình 5.8 Sơ đồ tuần tự Khởi tạo em bé 45 Hình 5.9 Hình minh họa hoạt động Use-case Hiển thị thông tin chung 49 Hình 5.10 Sơ đồ tuần tự Hiển thị thông tin chung 49 Hình 5.11 Hình minh họa hoạt động Use-case Hiển thị chỉ số khối cơ thể 52 Hình 5.12 Sơ đồ tuần tự Hiển thị chỉ số khối 52 Hình 5.13 Hình minh họa hoạt động Use-case Cập nhật chỉ số khối cơ thể 55 Hình 5.14 Sơ đồ tuần tự Cập nhật chỉ số khối 56 Hình 5.15 Hình minh họa hoạt động Use-case Thông báo tình trạng chỉ số khối cơ thể 59 Hình 5.16 Sơ đồ tuần tự Thông báo tính trạng chỉ số khối cơ thể 60 Hình 5.17 Hình minh họa hoạt động Use-case Hiển thị chỉ số dinh dưỡng 63 Hình 5.18 Sơ đồ tuần tự Hiển thị chỉ số dinh dưỡng 63 Hình 5.19 Hình minh họa hoạt động Use-case Cập nhật lượng thức ăn tiêu thụ 66 Hình 5.20 Sơ đồ tuần tự Cập nhật lượng thức ăn tiêu thụ 67 Hình 5.21 Hình minh họa hoạt động Use-case Cập nhật chỉ số dinh dưỡng 70

Trang 23

Hình 5.23 Hình minh họa hoạt động Use-case Thông báo tình trạng chỉ số dinh dưỡng 74 Hình 5.24 Sơ đồ tuần tự Thông báo tình trạng chỉ số dinh dưỡng 74 Hình 5.25 Hình minh họa hoạt động Use-case Thống kê lịch sử bữa ăn 77 Hình 5.26 Sơ đồ tuần tự Thống kê lịch sử bữa ăn 77 Hình 5.27 Hình minh họa hoạt động Use-case Lên kế hoạch cho bữa ăn tiếp theo 80 Hình 5.28 Sơ đồ tuần tự Lên kế hoạch cho bữa ăn tiếp theo 80 Hình 5.29 Hình minh họa hoạt động Use-case Cẩm nang chăm sóc trẻ 84 Hình 5.30 Sơ đồ tuần tự Cẩm nang chăm sóc trẻ 85 Hình 5.31 Hình minh họa hoạt động Use-case Chatbot hỗ trợ người dùng 88 Hình 5.32 Sơ đồ tuần tự Chatbot hỗ trợ người dùng 89 Hình 5.33 Màn hình đăng nhập 98 Hình 5.34 Màn hình đăng ký 99 Hình 5.35 Màn hình trang chủ 100 Hình 5.36 Màn hình khởi tạo em bé 101 Hình 5.37 Màn hình Hiển thị Thông tin chung 102 Hình 5.38 Màn hình hiển thị, cập nhật và thông báo tình trạng BMI 103 Hình 5.39 Màn hình hiển thị, cập nhật và thông báo tình trạng dinh dưỡng 104 Hình 5.40 Màn hình gợi ý bữa ăn 105 Hình 5.41 Màn hình thống kê bữa ăn 106 Hình 5.42 Màn hình xem kế hoạch bữa ăn tiếp theo 107 Hình 5.43 Màn hình cẩm nang chăm sóc trẻ - dạng danh sách chủ đề 108 Hình 5.44 Màn hình cẩm nang chăm sóc trẻ - dạng danh sách bài viết 109 Hình 5.45 Màn hình cẩm nang chăm sóc trẻ - dạng chi tiết bài viết 110 Hình 5.46 Màn hình chat – dạng center 111 Hình 5.47 Màn hình chat 112 Hình 6.1 Utility Matrix 113 Hình 6.2 Cosine Similarity 115 Hình 6.3 Sự tương đồng giữa hai vector 116 Hình 6.4 Kết quả load dữ liệu Content-based 118

Trang 24

Hình 6.5 Ví dụ feature vector của các item 119 Hình 6.6 Kết quả dự đoán theo Content-based 119 Hình 6.7 RMSE của Content–based 119 Hình 6.8 Bảng số sao user u rate cho item I 120 Hình 6.9 Mô tả các bước thực hiện User-user Collaborative Filtering 122 Hình 6.10 Kết quả dự đoán theo Neighborhood-based Collaborative Filtering 125 Hình 6.11 RMSE của Neighborhood-based Collaborative Filtering 125 Hình 6.12 Màn hình gợi ý sản phẩm được nhiều người bình chọn tích cực nhất 127 Hình 6.13 Màn hình gợi ý sản phẩm tương tự 128

Trang 25

DANH MỤC BẢNG

Bảng 3.1 So sánh giữa Content-based và Collaborative Filtering 21 Bảng 5.1 Danh sách các actor 29 Bảng 5.2 Danh sách các Use-case 30 Bảng 5.3 Đặc tả Use-case Đăng ký tài khoản 31 Bảng 5.4 Business Rules Đăng ký tài khoản 37 Bảng 5.5 Đặc tả Use-case Đăng nhập 38 Bảng 5.6 Business Rules Đăng nhập tài khoản 43 Bảng 5.7 Đặc tả Use-case khởi tạo em bé 43 Bảng 5.8 Business Rules Khởi tạo em bé 47 Bảng 5.9 Đặc tả Use-case hiển thị thông tin chung 48 Bảng 5.10 Business Rules Hiển thị thông tin chung 50 Bảng 5.11 Đặc tả Use-case hiển thị chỉ số khối 51 Bảng 5.12 Business Rules Hiển thị chỉ số khối 53 Bảng 5.13 Đặc tả Use-case cập nhật chỉ số khối 54 Bảng 5.14 Business Rules Cập nhật chỉ số khối 57 Bảng 5.15 Đặc tả Use-case thông báo tình trạng chỉ số khối 58 Bảng 5.16 Business Rules Thông báo tình trạng chỉ số khối cơ thể 62 Bảng 5.17 Đặc tả Use-case hiển thị chỉ số dinh dưỡng 62 Bảng 5.18 Business Rules Hiển thị chỉ số dinh dưỡng 65 Bảng 5.19 Đặc tả Use-case cập nhật lượng tiêu thụ thức ăn 65 Bảng 5.20 Business Rules Cập nhật lượng thức ăn tiêu thụ 69 Bảng 5.21 Đặc tả Use-case cập nhật chỉ số dinh dưỡng 69 Bảng 5.22 Business Rules Cập nhật chỉ số dinh dưỡng 73 Bảng 5.23 Đặc tả Use-case thông báo tình trạng chỉ số dinh dưỡng 73 Bảng 5.24 Business Rules Thông báo tính trạng chỉ số dinh dưỡng 76 Bảng 5.25 Đặc tả Use-case thống kê bữa ăn 76 Bảng 5.26 Business Rules Thống kê lịch sử bữa ăn 78

Trang 26

Bảng 5.27 Đặc tả Use-case lên kế hoạch cho bữa ăn tiếp theo 79 Bảng 5.28 Business Rules Lên kế hoạch cho bữa ăn tiếp theo 82 Bảng 5.29 Đặc tả Use-case Cẩm nang chăm sóc trẻ 83 Bảng 5.30 Business Rules Cẩm nang chăm sóc em bé 86 Bảng 5.31 Đặc tả Use-case Chatbot hỗ trợ người dùng 87 Bảng 5.32 Business Rules Chatbot hỗ trợ người dùng 90 Bảng 6.1 So sánh kết quả RMSE 125 Bảng 6.2 Nhận xét Content-based và Neighborhood-based 126

Trang 27

DANH MỤC TỪ VIẾT TẮT

CSDL Cơ sở dữ liệu Cơ sở dữ liệu cho ứng dụng

Framework

Các đoạn code đã được viết sẵn, cấu thành nên một bộ khung và các thư viện lập trình được đóng gói Cung cấp các tính năng có sẵn như mô hình, API và các yếu tố khác để tối giản cho việc phát triển các ứng dụng web

Learning Máy học

AI Artificial

Intelligence

Trí thông minh nhân tạo - Sự thông minh của máy móc

do con người tạo ra, đặc biệt tạo ra cho máy tính, robot, hay các máy móc có các thành phần tính toán điện tử

Giao diện người dùng và Trải nghiệm người dùng

App Application Ứng dụng

BMI Body Mass Index Chỉ số khối cơ thể

NI Nutrition Index Chỉ số dinh dưỡng

WHO World Health Organization Tổ chức Y tế Thế giới

Trang 28

TÓM TẮT KHÓA LUẬN

Khóa luận “XÂY DỰNG ỨNG DỤNG CHĂM SÓC SỨC KHỎE EM BÉ” gồm 07 chương:

Chương 1: Giới thiệu về đề tài, đưa ra lý do chọn đề tài Thông qua việc khảo sát

và đánh giá các ứng dụng tương tự, đưa ra những điểm nổi bật của các ứng dụng đó

từ đó áp dụng vào ứng dụng của nhóm, đồng thời đưa ra những chức năng mà ứng dụng của nhóm nổi bật hơn so với các ứng dụng trước Ngoài ra, chương 1 cũng đề cập đến đối tượng nghiên cứu, phạm vi đề tài Và cuối chương 1 là phần bố cục của khóa luận

Chương 2: Trình bày các khảo sát liên quan đến hiện trạng, tồn động của hiện trạng

và cách giải quyết vấn đề của ứng dụng với hiện trạng

Chương 3: Giới thiệu về các công nghệ, các thuật toán, … mà nhóm sử dụng để

xây dựng ứng dụng, cũng như các công cụ để tạo ứng dụng như Firebase, Flutter, Dart,

Chương 4: Tìm hiểu các cơ sở lý thuyết về chất dinh dưỡng, mức độ phát triển thể

chất của trẻ nhỏ

Chương 5: Xây dựng hệ thống của ứng dụng, phân tích yêu cầu của người dùng từ

đó thiết kế cơ sở dữ liệu và thiết kế giao diện dựa trên kết quả đã phân tích

Chương 6: Tập trung trình bày thuật toán gợi ý sản phẩm Các kiến thức cần nắm,

các loại gợi ý, các số đo, thực nghiệm và kết quả thực nghiệm, sau đó áp dụng vào ứng dụng chăm em bé

Chương 7: Kết luận, tổng kết những thành quả đã đạt được thông qua quá trình thực

hiện khóa luận, từ đó đưa ra ưu điểm cũng như khuyết điểm của khóa luận và đưa

Trang 29

Chương 1 GIỚI THIỆU CHUNG 1.1 Lý do chọn đề tài

Ở 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 Sau thời gian tìm hiểu và cân nhắc, nhóm thấy vấn đề mang tính thực tế và rất thiết yếu, nên đã chọn vấn đề này để nghiên cứu và phát triển khóa luận

1.2 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

- Thêm ý tưởng:

● 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

1.3 Đố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

- Các công nghệ:

● Sử dụng ngôn ngữ Dart để dùng framework Flutter tạo thành ứng dụng 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:

Trang 30

● Nhóm đối tượng chủ yếu của phần mềm chính là các bậc phụ huynh có con nhỏ dưới 3 tuổi, hay người chăm sóc những trẻ nhỏ trong độ tuổi từ lúc mới sinh đến 3 tuổi

● Những người chăm sóc trẻ nhỏ hay các bậc phụ huynh ở thành thị, không có thời gian ghi nhớ những dinh dưỡng đã cung cấp cho con, hay lịch sử tiêm phòng của con mình Đối với những đối tượng này, họ cần những ứng dụng có thể giúp họ ghi nhớ và giúp đỡ họ trong việc chăm sóc con của mình

● Chính vì thế nên ứng dụng này là một trợ thủ đắc lực giúp các bậc bố mẹ có thể kiểm soát được sự chăm sóc cho con cái, làm chủ thời gian hơn Thông qua đó người

sử dụng ứng dụng có thể ghi lại toàn bộ sự phát triển của con mình để cung cấp cho bác sĩ nếu như bé có bị bệnh hay gặp phải vấn đề về dinh dưỡng

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

● Trước khi đi vào nghiên cứu chi tiết cụ thể, nhóm em đã lên kế hoạch tìm hiểu rất nhiều các ứng dụng có sẵn trên thị trường Các ứng dụng này đa số đều rất mới mẻ, chủ yếu là đáp ứng nhu cầu chăm sóc dinh dưỡng và cơ thể cho người từ 3 tuổi trở lên Chính vì thế để tạo ra sự khác biệt và đáp ứng những nhu cầu chăm sóc cần thiết cho trẻ em dưới 3 tuổi, nhóm nhóm em đã nghiên cứu tạo ra một ứng dụng có thể làm điều 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 cũng đã tuân theo những quy chuẩn phát triển phần mềm và làm hoàn thiện phần mềm thông qua các bước sau:

o Bước 1: Nhóm tiến hành khảo sát người dùng chi tiết, thu thập những nhu

cầu người dùng và những khó khăn của người dùng khi chưa có phần mềm

o Bước 2: Nhóm nghiên cứu các sản phẩm hiện có sẵn trên thị trường xem có

Trang 31

o Bước 3: Nhóm phân tích và đặc tả phần mềm theo các mô hình có sẵn về

phát triển phần mềm Vẽ các Use-case cho chức năng và Workflow để nhóm cùng thực hiện

o Bước 4: Nhóm thiết kế cơ sở dữ liệu và chọn các phương pháp hiện thực cơ

sở dữ liệu

o Bước 5: Thiết kế sơ bộ những chức năng của phần mềm trong tương lai

o Bước 6: Nhóm lựa chọn ngôn ngữ lập trình để hiện thực phần mềm của nhóm

thành sản phẩm Qua các sự hội ý, họp hành, nhóm quyết định chọn sử dụng ngôn ngữ dễ học và tiện lợi Dart thông qua framework Flutter để thực hiện việc lập trình

o Bước 7: Nhóm thiết kế Giao diện cho ứng dụng trên ứng dụng hỗ trợ thiết kế

Figma

o Bước 8: Nhóm tiến hành cài đặt hoàn thiện cho phần mềm

o Bước 9: Nhóm tiến hành sửa chữa các lỗi và nâng cấp một số chức năng có

trong phần mềm

o Bước 10: Nhóm hoàn thành phần mềm và các tài liệu báo cáo

Trang 32

Chương 2 TỔNG QUAN 2.1 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 thị được chăm sóc và giúp đỡ rất nhiều ở môi trường trường học và môi trường bệnh viện Trẻ được quan tâm từ sức khỏe ăn uống đến các hoạt động thể chất Đa

số thành thị đều có các cơ sở y tế, cơ sở tiêm ngừa, trung tâm chăm sóc dinh dưỡng cho trẻ Cha mẹ có thể đưa trẻ đến các cơ sở để nhận lời khuyên từ chuyên gia Với mức sống hiện đại, các vật dụng chăm sóc trẻ đều có sẵn trong không gian mỗi gia đình từ đó làm cho sức khỏe của trẻ trở nên tốt hơn rất nhiều, phát triển nhanh và ít bệnh tật Nhưng áp lực về kinh tế đã làm cho các gia đình ở thành thị dần không còn nhiề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 trên thị trường chủ yếu tập trung vào việc giúp cho các bậc phụ huynh giảm tải thời gian chăm sóc cũng như là một quyển sổ ghi chú giúp ghi nhớ các hoạt động của con trẻ Các ứng dụng này còn cung cấp rất nhiều kiến thức chăm sóc trẻ nhỏ cho các bậc phụ huynh

2.2 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 thì chủ yếu là giúp ghi nhớ các hoạt động của trẻ và chủ yếu là cung cấp

Trang 33

2.2.2 Các vấn đề tập trung trong đề tài

Đề tài của nhóm 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ố khối cơ thể và chỉ số dinh dưỡng thường xuyên giúp bố mẹ nhận thấy được cơ thể trẻ lớn lên theo từng ngày

Đề tài nhóm em còn cung cấp kiến thức chăm sóc trẻ em một cách linh động, chủ động hơn Người dùng chỉ cần thực hiện các bước đơn giản để có được kiến thức mình mong muốn

Đồng thời đề tài nhóm em còn ứng dụng khoa học máy tính về gợi ý sản phẩm người dùng, giúp cho các bậc phụ huynh lựa chọn tốt hơn trong việc mua các sản phẩm chăm sóc con trẻ

Trang 34

Chương 3 TÌM HIỂU CÔNG NGHỆ ỨNG DỤNG TRONG ĐỀ TÀI 3.1 Tổng quan về công nghệ Flutter

Trong đề tài này, sản phẩm sẽ được viết trên framework là Flutter Vì vậy nhóm em cần tìm hiểu về công nghệ này

3.1.1 Khái niệm

Flutter là nền tảng phát triển ứng dụng đa nền tảng cho iOS và Android do Google phát triển Flutter sử dụng ngôn ngữ Dart cũng do Google phát triển và Flutter cũng đã được sử dụng để tạo ra các ứng dụng native cho Google

Flutter hỗ trợ rất nhiều cơ sở dữ liệu như: MySQL, Informix, Oracle, Sybase, Solid, PostgreSQL, Generic ODBC… [8]

3.1.2 Lịch sử phát triển

Phiên bản đầu tiên của Flutter được gọi là “Sky” và chạy trên hệ điều hành Android

Nó được công bố tại hội nghị nhà phát triển Dart 2015, với dự định ban đầu để có thể kết xuất ổn định ở mức 120 khung hình trên giây Trong bài phát biểu chính ở hội nghị Google Developer Days tại Thượng Hải, Google công bố phiên bản Flutter Release Preview 2, đây

là phiên bản lớn cuối cùng trước Flutter 1.0 Vào ngày 4 tháng 12 năm 2018, Flutter 1.0 đã được phát hành tại sự kiện Flutter Live, là phiên bản “ổn định” đầu tiên của khung ứng dụng này [8]

3.1.3 Ưu điểm của Flutter

● Native đúng nghĩa: Với Flutter, nhóm em có thể giao tiếp gần như trực tiếp với hệ thống Bộ Engine để render UI hoàn toàn thuộc Flutter, vì vậy nhóm em có thể tạo

ra bất kỳ hiệu ứng và đồ hoạ nào cho cả 2 nền tảng iOS và Android

Trang 35

(Compiler) linh động khi dùng AOT (cho sản phẩm cuối) và JIT (cho quá trình phát triển với Hot Reload)

● Hot reload: Khi làm việc với những thứ liên quan đến UI thì Hot Reload thật khiến cho lập trình viên dễ chịu, càng tuyệt hơn khi Flutter cung cấp khả năng ghi nhớ state của ứng dụng Hot Reload cung cấp cho nhóm em trải nghiệm tuyệt vời khi lập trình Flutter, so với React Native thì điểm này Flutter hơn

● Kiểm soát chặt chẽ hiệu suất của ứng dụng: Flutter có thể chạy được giả lập mobile trên trang web, đây là một điều vô cùng thuận tiện cho việc phát triển Ngoài ra, các chỉ số hiệu suất được hỗ trợ sẵn cũng giúp cho các developer kiểm soát hiệu suất của ứng dụng một cách chặt chẽ

● Dễ dàng nâng cấp: Mặc dù cách cài đặt ban đầu của Flutter là tải về tập tin nén, nhưng khi cập nhật lên phiên bản mới thì chỉ cần dòng lệnh là đủ, và khá dễ dàng Ứng dụng sau khi nâng cấp phiên bản Flutter chạy không gặp trở ngại gì cả Đây là một điểm cộng khá lớn khi xét về độ trưởng thành Khi sử dụng React Native, các phiên bản từ 0.25, 0.48 có những thay đổi phải sửa bằng tay mới chạy, rất khó chịu [8]

Kết luận: Với những tính năng ưu việt của mình, Flutter vẫn, sẽ và đang là một trong những

ngôn ngữ lập trình phổ biến nhất ngày nay và trong tương lai, được các lập trình viên rất

ưa chuộng, và sử dụng rộng rãi trên toàn thế giới [8]

3.2 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 ban đầu được phát triển bởi Google và sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn Nó được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript Nó hỗ trợ interface, mixin, abstract, generic, static typing

Trang 36

và sound type (2 cái cuối có thể hiểu là type-safe) Dart là ngôn ngữ mã nguồn mở và miễn phí, được phát triển trên GitHub Hiện nay Dart đã release phiên bản 2.23.2.2 [6]

3.2.2 Ưu điểm của Dart

● Năng xuất: Cú pháp Dart rõ ràng và súc tích, công cụ của nó đơn giản nhưng mạnh

mẽ Type-safe giúp nhóm em xác định sớm các lỗi tinh tế Dart có các thư viện cốt lõi và một hệ sinh thái gồm hàng ngàn package

● Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động và web

● Khả năng di động cao: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa Đối với các ứng dụng web, chuyển mã từ Dart sang JavaScript

● Dễ tiếp cận: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp và định hướng đối tượng không gây ngạc nhiên của nó

● Reactive: Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản lý các đối tượng tồn tại trong thời gian ngắn, chẳng hạn như các widget UI, thông qua phân bổ đối tượng nhanh Dart hỗ trợ lập trình không đồng bộ thông qua các tính năng ngôn ngữ và API sử dụng các đối tượng Future và Stream [6]

3.3 Ứng dụng Figma

Dựa trên kinh nghiệm đã thực hiện từ những khóa luận trước, nhóm em quyết định chọn Figma làm ứng dụng thiết kế giao diện khóa luận

3.3.1 Giới thiệu Figma

Figma là một công cụ thiết kế vector và thử nghiệm sản phẩm website và ứng dụng Công cụ dựa trên nền tảng đám mây để người dùng có thể cộng tác trong các dự án và làm việc ở bất cứ đâu [19]

Trang 37

Mặc dù Figma có chức năng rất giống các công cụ thiết kế khác, những điểm khác biệt chính là khả năng làm việc với các nhóm trong các dự án Đến nay, Figma có lẽ là lựa chọn phù hợp nhất hiện có [19]

3.3.2 Lịch sử phát triển

Năm 2011, một nhóm các lập trình viên yêu thích thiết kế đã nhen nhóm một ý tưởng

về một công cụ thiết kế chạy hoàn toàn trên nền tảng web, đây là một ý tưởng khá táo bạo, tiên phong và thậm chí là bị đánh giá là điên khùng lúc bấy giờ Bởi lẽ, mọi người tại thời điểm này đều quan niệm web chỉ dành cho các tác vụ văn phòng hay giải trí nhẹ nhàng, như đọc email hay xem phim, … Còn công việc thiết kế, yêu cầu những cỗ máy tính cấu hình siêu mạnh mẽ, thì việc đem nó lên nền tảng web là bất 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 hỗ trợ làm việc nhóm mạnh mẽ, linh hoạt cho phép mọi người trên thế giới đều có thể cùng làm việ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

Vào năm 2015, nhóm lập trình viên ngày nào đã thành lập Figma.Inc và cho ra mắt công cụ thiết kế trên nền tảng web đầu tiên trên thế giới – Figma 1.0, cung cấp hoàn toàn miễn phí cho người dùng tại thời điểm này

Sau một thời gian dài sử dụng, Figma dần có được tình cảm không chỉ của những nhà thiết kế chuyên nghiệp mà còn từ những người dùng phổ thông bởi sự mới mẻ, linh hoạt, năng động và hiệu quả của mình, sau đó Figma được phát triển và ngày càng phổ biến cho đến ngày nay [19]

3.3.3 Ưu điểm

● Tính tương thích: Figma hoạt động tương thích trên tất cả các hệ điều hành có trình duyệt web, từ Macs, Windows, Linux đến Chromebooks đều có thể dùng Figma

Trang 38

Đây là công cụ design duy nhất có thể làm được điều này Tất cả mọi người đều có thể chia sẻ, mở và chỉnh sửa một file Figma dễ dàng dù đang dùng hệ máy nào.

● Hỗ trợ làm việc nhóm hiệu quả: Figma là một công cụ browser-based, do đó mọi người trong team có thể làm việc với nhau tương tự như làm việc trong Google Docs Với mỗi thành viên đang xem hoặc chỉnh sửa file, Figma đại diện bằng một avatar tròn trên thanh công cụ với tên riêng Click vào avatar này nhóm em sẽ được thấy thành viên đó đang nhìn phần nào trên design Chức năng này rất tiện khi nhóm

em muốn biết ai đang làm việc trên file

● Chia sẻ file đơn giản: Một khi nhóm em chia sẻ file Figma qua việc gửi link cho người khác, người nhận link sẽ có khả năng truy cập vào file đó Nếu nhóm em lựa chọn Link to selected frame người nhận sẽ nhìn thấy chính xác frame nhóm em đang chọn lúc chia sẻ file Mình rất hay dùng tính năng tiện dụng này khi chia sẻ một file phức tạp, có quá nhiều frame nằm trong một page

● Hỗ trợ feedback tiện lợi: Figma hỗ trợ bình luận ngay trong ứng dụng, cả trong chế

độ design và prototyping Ngoài ra comment còn có thể được theo dõi thông qua Slack hoặc email Nếu nhóm em đã từng sử dụng các công cụ như Sketch kết hợp với Invision, Marvel, nhóm em sẽ thấy việc update design sau mỗi đợt feedback cũng ngốn của nhóm em không ít thời gian Với chức năng comment ngay trong file thiết kế, Figma đã giải quyết được vấn đề trên một cách nhẹ nhàng

● Công cụ hỗ trợ cho các developer: Figma hiển thị code snippets cho từng đối tượng được chọn Code có thể hiển thị dưới dạng CSS, dành cho iOS hay Android Thay

vì sử dụng các công cụ của bên thứ ba, developer có thể inspect đối tượng ngay trên file trong lúc xem thiết kế Mặc dù thế, nếu nhóm em muốn các thông số phức tạp hơn, nhóm em vẫn có thể sử dụng Zeplin Figma đã hỗ trợ Zeplin rất tốt cho tới thời điểm hiện tại

● Tất cả đều được lưu trữ online: Tất cả mọi thứ của nhóm em đề đã được lưu trữ trên

Trang 39

hỡi khác nhóm em có thể sắp xếp file theo project, mỗi file lại được chia ra làm nhiều page tùy theo nhu cầu của nhóm em.

Kết luận: Chính vì những ưu điểm vượt trội đó thì hiện nay, Figma đã và đang được nhiều

công ty tin dùng và đây cũng là ứng dụng miễn phí nên rất phù hợp với các sinh viên

3.4 Tổng quan về Firebase

3.4.1 Giới thiệu về Firebase

Firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu

Firebase phát triển từ Evolve, một công ty khởi nghiệp trước đó được thành lập bởi James Tamplin và Andrew Lee vào năm 2011 Evolve cung cấp cho các nhà phát triển một API cho phép tích hợp chức năng trò chuyện trực tuyến vào trang web của họ Sau khi phát hành dịch vụ trò chuyện, Tamplin và Lee phát hiện ra rằng nó đang được sử dụng để truyền

dữ liệu ứng dụng không phải là tin nhắn trò chuyện Các nhà phát triển đã sử dụng Evolve

để đồng bộ hóa dữ liệu ứng dụng như trạng thái trò chơi trong thời gian thực trên người dùng của họ Tamplin và Lee quyết định tách hệ thống trò chuyện và kiến trúc thời gian thực cung cấp năng lượng cho nó Họ thành lập Firebase như một công ty riêng biệt vào năm 2011 và ra mắt công chúng vào tháng 4 năm 2012

Ra mắt muộn hơn các công nghệ khác, Firebase được ra đời vào năm 2014 và được Google mua lại vào năm 2016 Từ đó Firebase đã tăng từ 110.000 lên 470.000 nhà phát triển và vẫn đang nắm giữ tốc độ tăng trưởng đáng kể Firebase được tin dùng và phổ biến bởi vì nó giúp nhà phát triển có thể xây dựng hệ thống Client – Server mà công sức cũng như chi phí bỏ ra cho phía Server giảm đi đáng kể

Vào tháng 5 năm 2016, tại Google I /O, hội nghị nhà phát triển hàng năm của công ty, Firebase đã giới thiệu Firebase Analytics và tuyên bố rằng họ đang mở rộng dịch vụ của mình để trở thành một nền tảng phụ trợ như một dịch vụ thống nhất (BaaS) cho các nhà

Trang 40

phát triển di động Firebase hiện tích hợp với nhiều dịch vụ khác của Google, bao gồm Google Cloud Platform,AdMob và Google Ads để cung cấp các sản phẩm và quy mô rộng hơn cho các nhà phát triển Google Cloud Messaging, dịch vụ của Google để gửi thông báo đẩy đến các thiết bị Android, đã được thay thế bởi một sản phẩm Firebase, Firebase Cloud Messaging, bổ sung chức năng để cung cấp thông báo đẩy cho cả iOS và thiết bị web [11].

Hình 3.1 Giới thiệu về Framework Google Firebase

(Nguồn: firebase.google.com) [11]

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

Dữ liệu được Firebase lưu trữ có dạng JSON và được đồng bộ cơ sở dữ liệu đến tất cả user theo thời gian thực Điều này sẽ giúp xây dựng hệ thống đa nền tảng và tất cả user

Ngày đăng: 17/08/2022, 21:15

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Cô Trương Thu Thủy (2019). “Môn học Cơ sở dữ liệu”. Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin, ĐHQG HCM. Accessed August 2019 Sách, tạp chí
Tiêu đề: Môn học Cơ sở dữ liệu
Tác giả: Cô Trương Thu Thủy
Năm: 2019
[2] TS. Huỳnh Ngọc Tín (2020). “Môn học Nhập môn Công nghệ phần mềm”. Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin, ĐHQG HCM. Accessed February 2020 Sách, tạp chí
Tiêu đề: Môn học Nhập môn Công nghệ phần mềm
Tác giả: TS. Huỳnh Ngọc Tín
Năm: 2020
[3] Thầy Huỳnh Tuấn Anh (2020). “Môn học Lập trình trên thiết bị di động”. Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin, ĐHQG HCM. Accessed August 2020 Sách, tạp chí
Tiêu đề: Môn học Lập trình trên thiết bị di động
Tác giả: Thầy Huỳnh Tuấn Anh
Năm: 2020
[4] TS. Dương Minh Đức (2021). “Môn học Công nghệ phần mềm chuyên sâu”. Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin, ĐHQG HCM. Accessed February 2021 Sách, tạp chí
Tiêu đề: Môn học Công nghệ phần mềm chuyên sâu
Tác giả: TS. Dương Minh Đức
Năm: 2021
[5] Th.S. Trần Anh Dũng (2021). “Môn học Mẫu Thiết kế”. Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin, ĐHQG HCM. Accessed August 2021 Sách, tạp chí
Tiêu đề: Môn học Mẫu Thiết kế
Tác giả: Th.S. Trần Anh Dũng
Năm: 2021
[6] Dart language developers. “Dart documentation”. https://dart.dev/guides. Accessed June 1, 2021 Sách, tạp chí
Tiêu đề: Dart documentation
[7] Flutter Samples. “Dart. 2018. Reprint, Flutter, 2022”. https://github.com/flutter/samples/. Accessed June 2, 2021 Sách, tạp chí
Tiêu đề: Dart. 2018. Reprint, Flutter, 2022
[8] Flutter framework developers. “Flutter documentation”. https://docs.flutter.dev/. Accessed June 2, 2021 Sách, tạp chí
Tiêu đề: Flutter documentation
[9] Many sponsors. “Stack Overflow - Where Developers Learn, Share, & Build Careers.”. https://stackoverflow.com/. Accessed June 16, 2021 Sách, tạp chí
Tiêu đề: Stack Overflow - Where Developers Learn, Share, & Build Careers
[10] Google developers & sponsors. “YouTube – Online video sharing & social media platform”. https://www.youtube.com/. Accessed June 30, 2021 Sách, tạp chí
Tiêu đề: YouTube – Online video sharing & social media platform
[11] Google developers. “Firebase documentation.” https://firebase.google.com/docs . Accessed August 12, 2021 Sách, tạp chí
Tiêu đề: Firebase documentation
[12] Vũ Hữu Tiệp (May 24, 2017). “Neighborhood-Based Collaborative Filtering”. https://machinelearningcoban.com/2017/05/24/collaborativefiltering/. Accessed January 12, 2022 Sách, tạp chí
Tiêu đề: Neighborhood-Based Collaborative Filtering
[13] Vũ Hữu Tiệp (May 17, 2017). “Content-Based Collaborative Filtering”. https://machinelearningcoban.com/2017/05/17/contentbasedrecommendersys/. Accessed January 12, 2022 Sách, tạp chí
Tiêu đề: Content-Based Collaborative Filtering
[14] Dương Tú Anh (Aug 22, 2020). “Firebase là gì? Giải thích những chức năng cơ bản của Firebase”. https://viblo.asia/p/firebase-la-gi-giai-thich-nhung-chuc-nang-co-ban-cua-firebase-bWrZn0jQ5xw. Accessed August 12, 2021 Sách, tạp chí
Tiêu đề: Firebase là gì? Giải thích những chức năng cơ bản của Firebase
[15] Vinmec (Oct 22, 2019). “4 nhóm dưỡng chất quan trọng: Chất bột đường, béo, protein, vitamin và khoáng chất”. https://www.vinmec.com/vi/tin-tuc/thong-tin-suc-khoe/4-nhom-duong-chat-quan-trong-chat-bot-duong-beo-protein-vitamin-va-khoang-chat/. Accessed December 16, 2021 Sách, tạp chí
Tiêu đề: 4 nhóm dưỡng chất quan trọng: Chất bột đường, béo, protein, vitamin và khoáng chất
[16] Lam Mai (Dec 25, 2020). “Bảng chiều cao và cân nặng chuẩn của trẻ từ 0-18 tuổi chuẩn WHO 2021”. https://doppelherz.vn/bang-chieu-cao-va-can-nang-chuan-cua-tre-tu-0-18-tuoi-chuan-who-2021/. Accessed December 16, 2021 Sách, tạp chí
Tiêu đề: Bảng chiều cao và cân nặng chuẩn của trẻ từ 0-18 tuổi chuẩn WHO 2021
[17] Bác sĩ Trần Hồng Hải (Mar 3, 2020). “Chỉ số cân nặng chiều cao của trẻ 0 tháng đến 5 tuổi”. https://benhvienpsnbd.com.vn/tin-tuc-su-kien/suc-khoe-va-doi-song/bieu-do-tang-truong/chi-so-can-nang-chieu-cao-cua-tre-0-thang-den-5-tuoi.htm. Accessed December 16, 2021 Sách, tạp chí
Tiêu đề: Chỉ số cân nặng chiều cao của trẻ 0 tháng đến 5 tuổi
[18] Dialogflow. “Dialogflow support” https://cloud.google.com/dialogflow/docs/support/getting-support. Accessed August 12, 2021 Sách, tạp chí
Tiêu đề: Dialogflow support
[19] Figma. “Figma practices” https://www.figma.com/best-practices/. Accessed August 12, 2021 Sách, tạp chí
Tiêu đề: Figma practices

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w