ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHÂN MỀM
------------------------------------
BÁO CÁO ĐỒ ÁN 1
ỨNG DỤNG THEO DÕI ĐƯỜNG HUYẾT VÀ KẾT NỐI BỆNH NHÂN
ĐÁI THÁO ĐƯỜNG VỚI BÁC SĨ
Giảng viên hướng dẫn: Ths. Trần Anh Dũng
Sinh viên thực hiện:
Nguyễn Thế Đan – 19521312
Tp.Hồ Chí Minh, tháng 6 năm 2022
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HÒA XÃ HỢI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Đợc lập – Tự do – Hạnh phúc
CÔNG NGHỆ THÔNG TIN
Tp.HCM, ngày 10 tháng 3 năm2022
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI : Ứng dụng theo dõi đường huyết và kết nối bệnh nhân đái tháo
đường với bác sĩ
Cán bộ hướng dẫn : ThS. Trần Anh Dũng
Thời gian thực hiện : Từ ngày 10/3/2022 đến ngày 10/06/2022
Sinh viên thực hiện :
Nguyễn Thế Đan – 19521312
Nội dung đề tài
1. Lý do chọn đề tài :
Ngày nay, khi đời sống con người đã được cải thiện thì sức khỏe luôn
là vấn đề được đặt lên hàng đầu. Trong thời buổi xã hội phải chống chọi
với covid, thì việc luôn luôn ở nhà trong một thời gian dài đã gây ra nhiều
tác động xấu tới cơ thể như suy nhược, béo phì, stress. Sức khỏe không
được đảm bảo gây nên hàng loạt những căn bệnh nguy hiểm tới cơ thể.
Những biểu hiện như béo phì, stress, ăn uống không khoa học chính là
những nguyên nhân chính gây nên căn bệnh đái tháo đường hay còn gọi
là tiểu đường.
Nhận thấy hiện nay, rất nhiều người bị tiếu đường, bao gồm cả những
người thân trong gia đình, nên em quyết định phát triển một ứng dụng có
chức năng giúp người dùng kiểm soát, theo dõi để điều chỉnh lại mức
đường huyết của mình hằng ngày, kết nối với các bác sĩ chuyên khoa để
nhận được lời khuyên kịp thời và chính xác để phòng tránh nguy hiểm sau
này.
Ứng dụng sẽ tập trung cung cấp những chức năng liên quan đến sức
khỏe nói chung và bệnh đái tháo đường nói riêng. Ngoài việc theo dõi
lượng đường huyết và kết nối với bác sĩ chuyên khoa, ứng dụng sẽ giúp
người dùng điều chỉnh khẩu phần ăn mỗi ngày để có một cơ thể chống lại
được bệnh đái tháo đường.
2. Mục tiêu :
2.1.
Xây dựng thuật toán tính toán lượng đường huyết ổn định :
- Người dùng dùng các thiết bị chuyên dụng để đo lượng đường
huyết và nhập lượng đường huyết vào ứng dụng.
- Ứng dụng sử dụng thuật toán để tính toán lượng đường huyết
hiện tại và những lần đo trước, có đáp ứng được sức khỏe của
người dùng hay không.
- Ứng dụng đưa ra lời khuyên, khích lệ khi người dùng duy trì
lượng đường huyết ổn định, và cảnh báo khi người dùng có
lượng đường huyết không ổn định.
2.2.
Xây dựng hệ thống chatroom cho người bệnh đái tháo đường và
bác sĩ chuyên khoa :
- Các bác sĩ được cấp các tài khoản sẽ được hiển thị ở mục kết nối
với bác sĩ của các người dùng
- Người dùng có thể lựa chọn để có cuộc trò chuyện với bác sĩ nào.
2.3.
Quản lý khẩu phần ăn :
- Hệ thống nhận được thông tin số đo, cân nặng để tính toán BMI
của người dùng.
- Từ đó, đưa ra những gợi ý về khẩu phần ăn giúp người dùng giữ
được lượng đường huyết ổn định nhưng vẫn đáp ứng được dinh
dưỡng.
3. Phạm vi :
Phạm vi môi trường : Ứng dụng di động.
Phạm vi chức năng :
- Đối với hệ thống tính toán lượng đường huyết ổn định :
+ Có khả năng nhập dữ liệu đường huyết chính xác đến phần
thập phân.
+ Có khả năng lưu trữ dữ liệu những lần nhập vào lượng đường
huyết trước.
+ Đưa ra lời khuyên chính xác về lượng đường huyết hiện tại.
+ Nhắc nhở người sử dụng lịch đo đường huyết trong tuần.
- Đối với hệ thống chatroom riêng và chatroom cộng đồng :
+ Trong chatroom, người dùng và bác sĩ đều có thể gửi tin nhắn
cho nhau.
+ Có thể lưu trữ tin nhắn.
- Đối với hệ thống gợi ý khẩu phần ăn :
+ Cung cấp chỉ số BMI chính xác dựa trên thông tin được nhập
vào.
+ Cung cấp những bữa ăn đủ dinh dưỡng và hợp lý để duy trì
lượng đường huyết ổn định.
4. Đối tượng sử dụng :
- Tất cả mọi người có mong muốn phòng tránh căn bệnh đái tháo
đường nói chung, cũng như các bệnh nhân đái tháo đường nói
riêng.
- Các bác sĩ có chuyên môn về căn bệnh đái tháo đường có mong
muốn được tư vấn, hỗ trợ cho cộng đồng.
5. Phương pháp thực hiện :
Phương pháp làm việc :
- Làm việc một thành viên dưới sự hướng dẫn của giảng viê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 y học liên quan.
Phương pháp công nghệ :
- Tìm hiểu và xây dựng chatroom dựa trên React-Native-GiftedChat.
- Xây dựng UI bằng Figma.
- Quản lý source code qua Github.
6. Nền tảng công nghệ :
- Frontend : React Native
- Backend : NodeJS
- Database : Firebase
- API : Heroku
- Tools : Visual Studio Code, Expo, Figma
- Library : ExpressJs , React-Navigation, AsyncStorage,…
7. Kết quả mong đợi :
- Ứng dụng không có lỗi, đáp ứng được tất cả mục tiêu đề ra ban
đầu.
- Giao diện đẹp mắt, thân thiện với người dùng.
- Appflow mượt mà, ít delay.
8. Hướng phát triển của đề tài :
- Tính năng quản lý chế độ tập luyện cùng các bài tập bổ trợ sức
khỏe
- Chuyển đổi ngôn ngữ
- Chuyển đổi chủ đề (theme).
- Nâng cấp thêm sự đa dạng trong món ăn trong hệ thống quản lý
khẩu phần ăn.
9. Kế hoạch làm việc:
Thời gian thực hiện từ 10/3/2022 tới ngày kết thúc môn Đồ Án 1
Ứng dụng được thực hiện trong 6 sprint :
Sprint
Sprint1
Thời gian
Công việc dự kiến
10/3/2022 – 24/3/2022 Khởi tạo backend và
frontend
Xây dựng các diagram
liên quan
Thiết kế UI
Sprint2
24/3/2022 – 13/4/2022 Xây dựng Database
Xây dựng UI
Phát triển Appflow cơ
bản
Sprint3
13/4/2022 – 27/4/2022 Tiếp tục xây dựng UI
theo thiết kế
Hoàn thành chức năng
đăng nhập, đăng kí
Sprint4
27/4/2022 – 11/5/2022 Hoàn thành xây dựng
UI
Hoàn thành Applow
Hoàn thành chức năng
quản lý đường huyết
Testing
Sprint5
11/5/2022 – 25/5/2022 Hoàn thành chức năng
quản lý khẩu phần ăn
Implementing
Chatroom
Testing
Sprint6
25/5/2022 đến kết thúc Hoàn thành chức năng
môn học
chatroom
Testing
Tối ưu hóa UI
Viết báo cáo
Tp.HCM, ngày 10 tháng 3 năm 2022
LỜI CẢM ƠN
Đầu tiên, em xin phép gửi lời cảm ơn đến tập thể quý thầy cô của Trường Đại học Công nghệ
Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh cũng như quý thầy cô thuộc Khoa Công
nghệ Phần mềm đã giúp em có những kiến thức nền tảng vững chắc để có thể thực hiện đề tài này.
Đặc biệt, em xin gửi lời cảm ơn chân thành đến thầy Trần Anh Dũng, người đã tạo điều kiện
và hướng dẫn em trong việc thực hiện đề tài này, một đề tài rất hay và thiết thực trong cuộc sống
hiện nay.
Nhờ những kiến thức và kinh nghiệm từ các giảng viên mà em đã có thể tận dụng để thực
hiện đề tài. Tuy nhiên, trong quá trình thực hiện đề tài cũng sẽ không thể tránh khỏi những hạn chế,
thiếu sót. Em mong rằng sẽ nhận được những nhận xét, góp ý từ thầy cũng như các giảng viên khác,
để em có thể ngày mợt tớt hơn và để có thể đóng góp được nhiều hơn nữa. Em sẽ rất biết ơn vì điều
đó.
Một lần nữa, em xin trân trọng cảm ơn!
Thành phố Hồ Chí Minh, ngày 12 tháng 06 năm 2022
Nguyển Thế Đan
Contents
LỜI CẢM ƠN................................................................................................................................................................... 7
Chương 1. TỔNG QUAN................................................................................................................................................ 10
1.1.
Tên đề tài............................................................................................................................................. 10
1.2.
Lí do chọn đề tài .................................................................................................................................. 10
1.3.
Mục tiêu: ............................................................................................................................................. 10
1.3.1.
Xây dựng thuật toán tính toán lượng đường huyết ổn định ................................................................ 10
1.3.2.
Xây dựng hệ thống chatroom cho người bệnh kết nối tới bác sĩ ......................................................... 11
1.3.3.
Quản lý khẩu phần ăn cho người dùng................................................................................................ 11
1.4.
Phạm vi ................................................................................................................................................ 11
1.5.
Đối tượng sử dụng ............................................................................................................................... 11
1.6.
Phương pháp thực hiện........................................................................................................................ 12
1.7.
Nền tảng công nghệ ............................................................................................................................. 12
Chương 2. CƠ SỞ LÝ THUYẾT .................................................................................................................................... 12
2.1. React Native.......................................................................................................................................................... 13
2.2. Cloud Firestore ..................................................................................................................................................... 14
2.3. Redux Toolkit ........................................................................................................................................................ 16
2.4. Áp dụng các công nghệ vào đồ án ........................................................................................................................ 17
2.4.1.
React Native ........................................................................................................................................ 17
2.4.2.
Redux Toolkit ....................................................................................................................................... 17
2.4.3.
Cloud Firestore .................................................................................................................................... 17
2.4.4.
Cloud Storage ...................................................................................................................................... 18
Chương 3. MÔ HÌNH USE CASES ................................................................................................................................ 18
3.1. Sơ đồ Use Cases .................................................................................................................................................... 18
3.2. Danh sách actor .................................................................................................................................................... 18
3.3. Danh sách các use cases ....................................................................................................................................... 19
3.3. Đặc tả các use cases.............................................................................................................................................. 19
3.3.1.
Đặc tả use-case “Đăng nhập”.............................................................................................................. 19
3.3.2.
Đặc tả use-case “Đăng xuất”............................................................................................................... 20
3.3.3.
Đặc tả use-case “Đăng ký” .................................................................................................................. 21
3.3.4.
Đặc tả use-case “Quản lý thông tin tài khoản” ................................................................................... 22
3.3.5.
Đặc tả use-case “Theo dõi đường hút”............................................................................................ 23
3.3.6.
Đặc tả use-case “Tính tốn BMI” ........................................................................................................ 24
3.3.7.
Đặc tả use-case “Gợi ý khẩu phần ăn” ................................................................................................ 25
3.3.8.
Đặc tả use-case “Chatroom” ............................................................................................................... 26
Chương 4. PHÂN TÍCH .................................................................................................................................................. 34
4.1. Sơ đồ lớp (Class diagram) ..................................................................................................................................... 34
4.2. Danh sách các lớp đối tượng và quan hệ ............................................................................................................. 34
4.3. Mô tả chi tiết từng lớp đối tượng......................................................................................................................... 35
4.3.1.
Lớp “User” ........................................................................................................................................... 35
4.3.2.
Lớp “Health Reports” .......................................................................................................................... 35
4.3.3.
Lớp “Food”........................................................................................................................................... 36
4.3.4.
Lớp “Meal Recommend” ..................................................................................................................... 37
4.3.5.
Lớp “Chatroom” .................................................................................................................................. 37
Chương 5. THIẾT KẾ DỮ LIỆU .................................................................................................................................... 38
5.1. Sơ đồ Logic............................................................................................................................................................ 38
5.2. Mô tả chi tiết các kiểu dữ kiệu trong sơ đồ logic .................................................................................................. 38
5.2.1.
Bảng “Users” ....................................................................................................................................... 38
5.2.2.
Bảng “Report” ..................................................................................................................................... 39
5.2.3.
Bảng “Food” ........................................................................................................................................ 40
5.2.4.
Bảng “Meal Recommend” ................................................................................................................... 40
5.2.5.
Bảng “Chat” ......................................................................................................................................... 40
Chương 6. THIẾT KẾ GIAO DIỆN ỨNG DỤNG.......................................................................................................... 41
6.1. Danh sách các màn hình ....................................................................................................................................... 41
6.2. Mơ tả chi tiết mỗi màn hình ................................................................................................................................. 43
6.2.1.
Màn hình chờ ...................................................................................................................................... 43
6.2.2.
Màn hình Onboarding ......................................................................................................................... 43
6.2.3.
Màn hình đăng nhập ........................................................................................................................... 45
6.2.4.
Màn hình đăng kí................................................................................................................................. 46
6.2.5.
Màn hình xác thực OTP ....................................................................................................................... 48
6.2.6.
Màn hình chính ................................................................................................................................... 50
6.2.7.
Màn hình bữa ăn ................................................................................................................................. 52
6.2.8.
Màn hình kết nối bác sĩ ....................................................................................................................... 54
6.2.9.
Màn hình chatroom với bác sĩ............................................................................................................. 56
6.2.10.
Màn hình Health Reports .................................................................................................................... 57
6.2.11.
Màn hình Profile .................................................................................................................................. 59
6.2.12.
Màn hình sửa Profile ........................................................................................................................... 61
6.2.13.
Màn hình đổi mật khẩu : ..................................................................................................................... 62
Chương 7. KẾT LUẬN ................................................................................................................................................... 64
7.1. Môi trường phát triển và môi trường triển khai .................................................................................................. 64
7.1.1. Môi trường phát triển ................................................................................................................................... 64
7.1.2. Môi trường triển khai .................................................................................................................................... 64
7.2. Ưu điểm ................................................................................................................................................................ 64
7.3. Nhược điểm .......................................................................................................................................................... 65
7.4. Hướng phát triển trong tương lai ......................................................................................................................... 65
TÀI LIỆU THAM KHẢO .................................................................................................................................................. 66
Chương 1. TỔNG QUAN
1.1. Tên đề tài
ỨNG DỤNG THEO DÕI ĐƯỜNG HUYẾT VÀ KẾT NỐI BỆNH
NHÂN ĐÁI THÁO ĐƯỜNG VỚI BÁC SĨ
1.2. Lí do chọn đề tài
Ngày nay, khi đời sống con người đã được cải thiện thì sức khỏe luôn là vấn
đề được đặt lên hàng đầu. Trong thời buổi xã hội phải chống chọi với covid, thì việc
luôn luôn ở nhà trong một thời gian dài đã gây ra nhiều tác động xấu tới cơ thể như
suy nhược, béo phì, stress. Sức khỏe không được đảm bảo gây nên hàng loạt những
căn bệnh nguy hiểm tới cơ thể. Những biểu hiện như béo phì, stress, ăn uống không
khoa học chính là những nguyên nhân chính gây nên căn bệnh đái tháo đường hay
còn gọi là tiểu đường.
Nhận thấy hiện nay, rất nhiều người bị tiếu đường, bao gồm cả những người
thân trong gia đình, nên em quyết định phát triển một ứng dụng có chức năng giúp
người dùng kiểm soát, theo dõi để điều chỉnh lại mức đường huyết của mình hằng
ngày, kết nối với các bác sĩ chuyên khoa để nhận được lời khuyên kịp thời và chính
xác để phòng tránh nguy hiểm sau này.
Ứng dụng sẽ tập trung cung cấp những chức năng liên quan đến sức khỏe nói
chung và bệnh đái tháo đường nói riêng. Ngoài việc theo dõi lượng đường huyết
và kết nối với bác sĩ chuyên khoa, ứng dụng sẽ giúp người dùng điều chỉnh khẩu
phần ăn mỗi ngày để có một cơ thể chống lại được bệnh đái tháo đường.
1.3.
Mục tiêu:
1.3.1. Xây dựng thuật toán tính toán lượng đường huyết ổn định
Người dùng dùng các thiết bị chuyên dụng để đo lượng đường
huyết và nhập lượng đường huyết vào ứng dụng.
Ứng dụng sử dụng thuật toán để tính toán lượng đường huyết hiện
tại và những lần đo trước, có đáp ứng được sức khỏe của người dùng hay
không.
Ứng dụng đưa ra lời khuyên, khích lệ khi người dùng duy trì lượng
đường huyết ổn định, và cảnh báo khi người dùng có lượng đường huyết
không ổn định.
1.3.2. Xây dựng hệ thống chatroom cho người bệnh kết nối tới bác sĩ
Các bác sĩ được cấp các tài khoản sẽ được hiển thị ở mục kết nối
với bác sĩ của các người dùng
Người dùng có thể lựa chọn để có cuộc trò chuyện với bác sĩ nào.
1.3.3. Quản lý khẩu phần ăn cho người dùng
Hệ thống nhận được thông tin số đo, cân nặng để tính toán BMI của
người dùng.
Từ đó, đưa ra những gợi ý về khẩu phần ăn giúp người dùng giữ
được lượng đường huyết ổn định nhưng vẫn đáp ứng được dinh dưỡng.
1.4. Phạm vi
Phạm vi môi trường : Ứng dụng di động.
Phạm vi chức năng :
- Đối với hệ thống tính toán lượng đường huyết ổn định :
+ Có khả năng nhập dữ liệu đường huyết chính xác đến phần thập phân.
+ Có khả năng lưu trữ dữ liệu những lần nhập vào lượng đường huyết trước.
+ Đưa ra lời khuyên chính xác về lượng đường huyết hiện tại.
+ Nhắc nhở người sử dụng lịch đo đường huyết trong tuần.
- Đối với hệ thống chatroom:
+ Trong chatroom, người dùng và bác sĩ đều có thể gửi tin nhắn cho nhau.
+ Có thể lưu trữ tin nhắn.
- Đối với hệ thống gợi ý khẩu phần ăn :
+ Cung cấp chỉ số BMI chính xác dựa trên thông tin được nhập vào.
+ Cung cấp những bữa ăn đủ dinh dưỡng và hợp lý để duy trì lượng đường
huyết ổn định.
1.5.
Đối tượng sử dụng
Tất cả mọi người có mong muốn phòng tránh căn bệnh đái tháo đường nói
chung, cũng như các bệnh nhân đái tháo đường nói riêng.
Các bác sĩ có chuyên môn về căn bệnh đái tháo đường có mong muốn được
tư vấn, hỗ trợ cho cộng đồng.
1.6.
Phương pháp thực hiện
Phương pháp làm việc :
- Làm việc một thành viên dưới sự hướng dẫn của giảng viê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 y học liên quan.
Phương pháp công nghệ :
- Tìm hiểu và xây dựng chatroom dựa trên React-Native-Gifted-Chat.
- Xây dựng UI bằng Figma.
- Quản lý source code qua Github.
1.7.
Nền tảng công nghệ
Frontend : React Native
Backend : NodeJS
Database : Firebase
API : Heroku
Tools : Visual Studio Code, Expo, Figma
Library : ExpressJs , React-Navigation, Async Storage,…
Chương 2. CƠ SỞ LÝ THUYẾT
2.1. React Native
Hình 2.1 Biểu tượng React Native
Hiện nay, hầu hết người dùng đang dần có xu hướng sử dụng các ứng dụng di động
hơn là ngồi trước màn hình máy tính để sử dụng một trang web. Nắm bắt được xu hướng
đó, nhóm chúng em quyết định xây dựng đồ án trên nền tảng một ứng dụng di động. Thế
nhưng, câu hỏi đặt ra là chúng em nên xây dựng ứng dụng này bằng công nghệ gì? Sau
nhiều lần đắn đo, chúng em quyết định sử dụng framework React Native – Một Framework
hỗ trợ xây dựng ứng dụng đa nền tảng trên cả Android, IOS và tiết kiệm thời gian học công
nghệ cho các lập trình viên web đã có kinh nghiệm sử thư viện ReactJS trước đó.
Vậy React Native là gì? React Native là một framework do công ty công nghệ nổi
tiếng Facebook phát triển nhằm mục đích giải quyết bài toán hiệu năng của Hybrid và bài
toán chi phí khi mà phải viết nhiều loại ngơn ngữ native cho từng nền tảng di động. Chúng
ta sẽ build được ứng dụng Native, và chúng ta cũng có thể build ứng dụng đó một cách đa
nền tảng (multi-platform) chứ không phải là một “mobile web app”, không phải là
“HTML5 app”, và cũng không phải là một “hybrid app” hay cũng không chỉ build trên iOS
hay Android mà chúng ta build và chạy được cả hai hệ sinh thái. Một điểm hay ho nữa là
giảm chi phí recompile của Native bằng cách sử dụng Hot-Loading tức là bạn không cần
phải build lại ứng dụng từ đầu nên việc chỉnh sửa diễn ra rất nhanh chóng. Giúp cho lập
trình viên có thể thấy được những chỉnh sửa của họ một cách nhanh chóng trực quan, khơng
cịn phải bỏ quá nhiều thời gian trong việc build và run ứng dụng nữa. [2]
Một số ưu và nhược điểm của React Native trong quá trình phát triển ứng dụng mà
chúng ta có thể cân nhắc như sau [3]:
Ưu điểm:
-
Sử dụng ít native code hơn.
-
Thời gian phát triển ứng dụng được rút ngắn.
-
Tiết kiệm chi phí nhân lực cho doanh nghiệp.
-
Khả năng tái sử dụng code cao (75% – 80%).
-
Trải nghiệm người dùng rất tốt.
-
Không cần nhiều kiến thứcnền.
Nhược điểm:
-
Chỉ hỗ trợ 2 nền tảng Android và iOS.
-
Hiệu năng sẽ thấp hơn với ứng dụng thuần native code.
-
Bảo mật khơng cao.
-
Có một sớ thư viện cần trả phí.
-
Khả năng tùy biến khơng thực sự tớt với một vài module.
2.2. Cloud Firestore
Hình 2.2 Biểu tượng Cloud Firestore của Firebase
Sau khi đã tìm được Framework ưng ý, tiết kiệm thời gian và dễ dàng phát triển trên
nền tảng di động là React Native. Bài toán tiếp theo nhóm chúng em cần giải quyết đó là
cơ sở dữ liệu và phát triển code phía back-end.
Tuy nhiên việc phát triển một server và code back-end sẽ tốn kha khá thời gian để
phát triển. Vậy nên, giải pháp ở đây là nhóm chúng em quyết định sẽ sử dụng Firebase
được phát triển bởi google. Firebase sẽ cung cấp cho chúng ta hai tùy chọn là Firebase
realtime database và Cloud Firestore. Ở đờ án 1 kì này, nhóm chúng em quyết định sử dụng
Cloud Firestore.
Vậy Cloud Firestore là gì? Cloud Firestore là cơ sở dữ liệu mới của Firebase phát
triển dành cho ứng dụng di động. Nó là sự kế thừa của Realtime Database với mô hình dữ
liệu mới và trực quan hơn. Cloud Firestore phong phú hơn, nhanh hơn và có khả năng mở
rộng siêu việt hơn so với Realtime Database. Giống như Firebase Realtime Database, nó
giúp dữ liệu của bạn đờng bợ hóa trên các ứng dụng client thông qua việc đăng ký realtime
và cung cấp hỗ trợ ngoại tuyến cho thiết bị di động và web. Cloud Firestore cũng cung cấp
tích hợp với các sản phẩm khác của Firebase và Google Cloud Platform, bao gồm cả Cloud
Functions.
Cloud Firestore cung cấp cho chúng ta một sớ chức năng chính như:
-
Tính linh hoạt: Cloud Firestore hỗ trợ các cấu trúc dữ liệu linh hoạt, phân cấp dữ
liệu. Lưu trữ dữ liệu của bạn trong các document, được tở chức thành các collection. Các
document có thể chứa các đới tượng phức tạp.
-
Truy vấn tượng trưng: Bạn có thể sử dụng các truy vấn để truy xuất các document
riêng lẻ hoặc để truy xuất tất cả các document trong collection khớp với các tham số truy
vấn của bạn. Các truy vấn của bạn có thể bao gồm nhiều bộ lọc, kết hợp giữa bộ lọc và sắp
xếp.
-
Cập nhật thời gian thực: Cloud Firestore sử dụng đồng bộ hóa dữ liệu để cập nhật
dữ liệu trên mọi thiết bị được kết nới. Nó cũng được thiết kế để thực hiện các truy vấn
tìmnạp một lần.
-
Hỗ trợ offline: Cloud Firestore lưu trữ dữ liệu tại local, vì vậy ứng dụng có thể viết,
đọc, nghe và truy vấn dữ liệu ngay cả khi thiết bị ngoại tuyến. Khi thiết bị trở lại trực tuyến,
Cloud Firestore sẽ đồng bộ hóa mọi thay đổi cục bộ lên Cloud Firestore.
-
Khả năng mở rộng: Mang đến khả năng từ Google Cloud Platform thiết kế để sử
dụng cơ sở dữ liệu khó khăn nhất từ các ứng dụng lớn nhất thế giới.
Cách hoạt động của Cloud Firestore:
-
Cloud Firestore là một cơ sở dữ liệu NoQuery được lưu trữ trên đám mây mà các
ứng dụng IOS, Android, Web có thể truy cập trực tiếp thơng qua SDK.Cloud Firestore cũng
có sẵn trong Node.js, Java, Python và Go SDKs, REST và RPC APIs.
-
Được tổ chức theo mơ hình dữ liệu NoQuery của Cloud Firestore, dữ liệu lưu trong
các document ánh xạ tới các giá trị. Các document này được lưu trữ trong các collection
cho bạn tổ chức dữ liệu và thực hiện truy vấn
-
Bảo vệ quyền truy cập vào dữ liệu của bạn trong Cloud Firestore với Firebase
Authentication cho Android, iOS và JavaScript hoặc nhận dạng và quản lý truy cập (IAM).
[4]
2.3. Redux Toolkit
Trong quá trình xây dựng ứng dụng sử dụng React Native, mợt bài tốn các lập trình
viên gặp phải là việc phải quản lý các trạng thái của các thành phần như: nút bấm, trường
nhập liệu,… Các trạng thái này sẽ quyết định dữ liệu hiện lên cho người dùng thông qua
giao diện ứng dụng là gì.
Hình 2.3 Cấu trúc của Redux Toolkit
Quá trình người dùng tương tác với ứng dụng và Redux toolkit cập nhật trạng thái ứng
dụng [5]:
Người dùng tương tác với giao diện ứng dụng (chẳng hạn nhấn một nút bấm),
1.
lúcnày người dùng đã gửi đi một action (hành động) chứa trạng thái mới và trong redux
store.
2.
Redux Store như 1 nơi lưu state global mà tất cả các bộ phận ứng dụng trong
phạmvi của Store đều có thể truy xuất để lấy dữ liệu hoặc cập nhật dữ liệu.
3.
Thông qua reducer trong redux store, các trạng thái được cập nhật mới.
4.
Các trạng thái mới sẽ được hiển thị lên giao diện người dùng.
2.4. Áp dụng các công nghệ vào đồ án
2.4.1. React Native
Đồ án của nhóm em sẽ được xây dựng bằng React Native để nó có thể hoạt động
được trên cả hai nền tảng phổ biến nhất hiện nay là Android và iOS. Nhóm sẽ dùng
JavaScript để viết code cho ứng dụng và thực thi chúng qua React Native CLI.
React Native có thể hiểu đơn giản là tập hợp các thành phần của React (React
components). Mỗi component thể hiện tương ứng với view hoặc component nào đó của
native. Sau đó, nhóm em sẽ viết code xử lí logic cho các component đó có thể tương tác
hoặc thực hiện chức năng của ứng dụng.
2.4.2. Redux Toolkit
Việc sử dụng Redux Toolkit này khá đơn giản so với Redux thông thường, nhóm sẽ
dùng cơng cụ này làm mợt kho lưu trữ chung cho toàn bộ ứng dụng. So với Redux thông
thường, để thay đổi trạng thái của các đối tượng trong ứng dụng như thêm từ vựng, xóa từ
vựng, mẫu câu, ... thì bây giờ cũng đã đơn giản hơn với những cú pháp ngắn gọn, dễ hiểu
cho chúng em trong việc lập trình.
2.4.3. Cloud Firestore
Để lưu trữ dữ liệu của các người dùng và hệ thống, em chọn Cloud Firestore để sử
dụng. Việc lưu tồn bợ tài liệu trực tiếp lên ứng dụng sẽ khiến cho dung lượng của ứng
dụng rất là lớn . Nên việc có một hệ thống database online là rất cần thiết. Với các cú pháp
dễ hiểu từ trang chủ của Firebase, em có thể lấy dữ liệu từ Cloud Firestore khá dễ dàng.
2.4.4. Cloud Storage
Một service của firebase và google cloud giúp em lưu trữ được thông tin dạng file
như hình ảnh, tệp lên public server, và hoàn toàn miễn phí.
Chương 3. MƠ HÌNH USE CASES
3.1. Sơ đờ Use Cases
Hình 3.1 Sơ đồ Use-case tổng quát của ứng dụng
3.2. Danh sách actor
STT Actor
Ý nghĩa
1
Người dùng
Người sử dụng ứng dụng
2
Bác sĩ
Bác sĩ sử dụng ứng dụng
3.3. Danh sách các use cases
STT
Use case
1
Đăng kí
2
Đăng nhập
3
Đăng xuất
4
Quản lý thông tin tài khoản
5
Theo dõi đường huyết
6
Theo dõi BMI
7
Gợi ý khẩu phần ăn
Ý nghĩa
Xem/Chỉnh sửa thông tin cá nhân
Hệ thống gợi ý khẩu phần ăn theo mức độ đường huyết và BMI
hiện tại của người dùng
8
Chatroom
Bác sĩ và bệnh nhân gửi tin nhắn cho nhau
3.3. Đặc tả các use cases
3.3.1. Đặc tả use-case “Đăng nhập”
Tên chức năng
Đăng nhập
Tóm tắt
Chức năng đăng nhập vào hệ thống
Dịng sự kiện chính
1. Hệ thớng hiển thị màn hình đăng nhập
2. Người dùng nhập username và mật khẩu (cả 2 trường này
đềubắt buộc nhập) và nhấn “Đăng nhập”
3. Hệ thớng kiểm tra thơng tin đăng nhập
(Dịng sự kiện khác: Thông tin đăng nhập sai)
4. Hệ thống chuyển tới màn hình chính của ứng dụng
Dịng sự kiện khác
1. Thơng tin đăng nhập sai:
Hệ thống hiển thị thông báo tài khoản đăng nhập không hợp
lệ
Các yêu cầu đặc biệt
- Tài khoản đã được đăng kí trước đó
Trạng thái hệ thớng trước Actor: người dùng
khi thực thiện use case
Điều kiện: Người dùng vào ứng dụng khi chưa đăng nhập
Trạng thái hệ thống sau Người dùng đăng nhập thành công vào hệ thống, có thể sử
khi thực hiện use case
dụng các quyền mà hệ thớng cho phép
Điểm mở rợng
Khơng có
Bảng 3.3 Đặc tả use-case đăng nhập
3.3.2. Đặc tả use-case “Đăng xuất”
Tên chức năng
Đăng x́t
Tóm tắt
Chức năng đăng x́t ra hệ thớng
Dịng sự kiện chính
1. Người dùng nhấn vào Đăng x́t
2. Hệ thớng đăng x́t và trở về màn hình đăng nhập
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thống trước Actor: Người dùng
khi thực hiện use case
Điều kiện: người dùng đã đăng nhập hệ thống
Trạng thái hệ thống sau Người dùng đăng xuất khỏi hệ thớng
khi thực hiện use case
Điểm mở rợng
Khơng có
Bảng 3.4 Đặc tả use-case đăng xuất
3.3.3.
Đặc tả use-case “Đăng ký”
Tên chức năng
Đăng ký
Tóm tắt
Chức năng giúp người dùng đăng ký tài khoản để sự dụng hệ
thớng
Dịng sự kiện chính
1. Người dùng nhấn vào nút đăng ký
2. Hệ thớng hiển thị màn hình đăng kí
3. Người dùng nhập những thơng tin cần thiết và chọn nút tạo
tài khoản
4. Hệ thống kiểm tra thông tin đăng ký, gửi một mã OTP 4
chữ số cho số điện thoại trong thông tin đăng kí và chuyển
tới màn hình xác thực OTP
(Dịng sự kiện khác: Thơng tin đăng ký không hợp lệ)
5. Người dùng nhập mã OTP đúng
(Dòng sự kiện khác: Mã OTP không đúng)
6. Người dùng xác thực tài khoản
7. Chuyển hướng người dùng vào màn hình chính của ứng
dụng
Dịng sự kiện khác
1. Thơng tin đăng ký không hợp lệ:
Hệ thống hiển thị thông báo lỗi ngay tại chỗ bị lỗi và yêu cầu
nhập lại thông tin hợp lệ
3. Mã OTP không đúng :
Người dùng nhập sai mã OTP
Các u cầu đặc biệt
Khơng có
3.3.4. Đặc tả use-case “Quản lý thông tin tài khoản”
a. Xem thông tin cá nhân
Tên chức năng
Xem thơng tin cá nhân
Tóm tắt
Xem thơng tin cá nhân của người dùng
Dịng sự kiện chính
1. Người dùng chủn qua tab thông tin cá nhân trong ứng
dụng
2. Hệ thống lấy thông tin cá nhân người dùng và hiển thị lên
màn hình
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Khơng có
Trạng thái hệ thớng trước Actor: Người dùng
khi thực hiện use case
Điều kiện: Khơng có
Trạng thái hệ thớng sau Hệ thống không thay đổi
khi thực thiện use case
Điểm mở rộng
Không có
Bảng 3.6 Đặc tả use-case quản lý thơng tin cá nhân
b. Sửa thông tin cá nhân
Tên chức năng
Sửa thông tin cá nhân
Tóm tắt
Sửa thơng tin cá nhân của người dùng
Dịng sự kiện chính
1. Người dùng chủn qua tab thơng tin cá nhân trong ứng
dụng
2. Hệ thống lấy thông tin cá nhân người dùng và hiển thị lên
màn hình
3. Người dùng thay đổi những thông tin mong muốn và bấm
“cập nhật”
4. Hệ thống kiểm tra lưu dữ liệu và thông báo thành cơng
(Dịng sự kiện khác: Thơng tin khơng hợp lệ, hệ thống không
lưu thông tin cá nhân mới và báo lỡi)
Dịng sự kiện khác
Thơng tin cá nhân mới khơng hợp lệ:
Hệ thống hiển thị thông báo trường bị lỗi và yêu cầu nhập lại
thông tin.
Các yêu cầu đặc biệt
Không có
Trạng thái hệ thớng trước Actor: Người dùng
khi thực hiện use case
Điều kiện: Người dùng đã đăng nhập vào hệ thống.
Trạng thái hệ thống sau Người dùng cập nhật thông tin người dùng thành công vào hệ
khi thực thiện use case
thớng.
Điểm mở rợng
Khơng có
Bảng 3.7 Đặc tả use-case sửa thơng tin cá nhân
3.3.5.
Đặc tả use-case “Theo dõi đường huyết”
Tên chức năng
Theo dõi lượng đường huyết
Tóm tắt
Người dùng sử dụng chức năng này để nhập vào hệ thống
lượng đường huyết hằng ngày, và xem lại lịch sử lượng
đường huyết trong quá khứ.
Hệ thống đưa ra bình luận chính xác về lượng đường huyết
hiện tại của người dùng.
Dịng sự kiện chính
1. Người dùng đăng nhập vào ứng dụng
2. Người dùng chọn vào nút TODAY SUGARATE trong
màn hình HOME
3. Người dùng nhập vào lượng đường huyển ngày hôm đó
4. Hệ thớng cập nhật
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Trạng thái hệ thống trước Actor: Người dùng
khi thực hiện use case
Điều kiện: Người dùng đăng nhập vào hệ thống
Trạng thái hệ thống sau Hệ thống cập nhật trình đợ của người dùng
khi thực thiện use case
Điểm mở rợng
Khơng có
Bảng 3.8 Đặc tả use-case theo dõi đường hút
3.3.6.
Đặc tả use-case “Tính tốn BMI”
Tên chức năng
Tính toán BMI
Tóm tắt
Người dùng nhập vào cân nặng và chiều cao , hệ thớng tính
toán BMI cho người sử dụng
Dịng sự kiện chính
1. Người dùng đăng nhập vào ứng dụng
2. Người dùng nhấn vào nút ENTER BMI
3. Người dùng nhập vào chiều cao và cân nặng
4. Người dùng bấm nút OK
5. Hệ thống cập nhật
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Trạng thái hệ thống trước Actor: Người dùng
khi thực hiện use case
Điều kiện: Người dùng đăng nhập vào hệ thống
Trạng thái hệ thống sau Hệ thống cập nhật UI
khi thực thiện use case
Bảng 3.9 Đặc tả use-case tính tốn BMI
3.3.7.
Đặc tả use-case “Gợi ý khẩu phần ăn”
Tên chức năng
Gợi ý khẩu phần ăn
Tóm tắt
Hệ thớng nhận thơng tin mức đường hút và chỉ số BMI
của người dùng, từ đó gợi ý các khẩu phần ăn trong ngày
phù hợp
Dịng sự kiện chính
1. Người dùng đăng nhập vào ứng dụng
2. Hệ thống lấy thông tin người dùng
3. Người dùng chuyển qua màn hình MEALS
4. Hệ thống lấy các món ăn từ database
5. Hệ thống hiển thị các món ăn theo ba bữa hằng ngày trong
vòng 1 t̀n tới
Dịng sự kiện khác
Khơng có
Các u cầu đặc biệt
Người dùng đã đăng nhập vào ứng dụng