TÓM TẮTTên đề tài: Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng Sinh viên thực hiện: Đinh Hoàng Ngọc Mã SV: 1811505310133 - Lớp: 18T1 Đồ án với đề tài Xây ứng dụng hiến máu
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 3NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
Trang 4NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
Trang 5TÓM TẮT
Tên đề tài: Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
Sinh viên thực hiện: Đinh Hoàng Ngọc
Mã SV: 1811505310133 - Lớp: 18T1
Đồ án với đề tài Xây ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng đượcxây dựng với ngôn ngữ lập trình React Native và dùng hệ quản trị cơ sở dữ liệuFirebase
Trước ảnh hưởng của dịch Covid-19 lượng máu dự trữ trên toàn TP Đà Nẵng sụtgiảm nghiêm trọng, trong khi nhu cầu sử dụng máu tại các bệnh viện vẫn rất lớn, gồm
cả chế phẩm máu điều trị cho bệnh nhân
Điều này dẫn đến việc gián đoạn các buổi tổ chức hiến máu nhân đạo tại các bệnhviện và các đơn vị trong thành phố Đà Nẵng, không thể đáp ứng kịp thời cho các bệnhviện phụ vụ cho nhu cầu cấp thiết là cấp cứu các bệnh nhân Nhằm đáp ứng nhu cầucung cấp máu kịp thời cho các bệnh viện và áp dụng chỉ thị giãn cách xã hội từ đó tôihướng đến xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
Ứng dụng với các chức năng chính như : tổ chức đợt hiến máu, đăng ký hiến máu,xem tình trạng sức khỏe, đăng ký đơn vị liên kết Bệnh viện theo dõi được danh sáchngười tham gia, khám sức khỏe, cập nhật nhóm máu, phê duyệt nhân viên y tế thuộcbệnh viện, phân công nhiệm vụ, tổ chức đợt hiến máu Ban chỉ đạo vận động hiến máuthành phố Đà Nẵng phân công bệnh viên, đơn vị liên kết, tổ chức các đợt hiến máu, phêduyệt đơn vị tham gia
i
Trang 6TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ
THUẬT
KHOA CÔNG NGHỆ SỐ
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT
NAM Độc lập - Tự do - Hạnh phúc
Tên đề tài: Xây dựng ứng dụng đăng ký hiến máu nhân đạo tại thành phố Đà Nẵng
Thời gian thực hiện: Từ ngày: 14/02/2022 đến ngày: 20/06/2022
5 Mục tiêu
- Về kiến thức: Nắm vững và trình bày một cách có hệ thống các cơ sở về kỹ thuậtphần mềm, ngôn ngữ javascript, Reac Native, dịch vụ cơ sở dữ liệu firebase, Mysql vàcác kiến thức liên quan khác
- Về kỹ năng: Nắm vững và sử dụng thành thạo các công nghệ về lập trình ứng dụng
đi động, hoàn thiện kỹ năng xây dựng giao diện phù hợp với các đối tượng người dùng
- Về kết quả: Xây dựng và thử nghiệm thành công ứng dụng đăng ký hiến máu – ĐàNẵng Các chức năng cơ bản của ứng dụng gồm:
Người hiến máu đăng ký hiến máu trên hệ thống
Người hiến máu xem tình trạng sức khỏe
Người hiến máu xem số thời gian khi tham gia
Bệnh viện cập nhật thông tin máu người tham gia
Bệnh viện thống kê danh sách hiến máu thực tế
Bệnh viện thống kê số lượng đơn vị máu
Trang 7 Bệnh viện, đơn vị liên kết đăng bài tổ chức các buổi hiến máu tình nguyện.
Quản trị hệ thống duyệt bài đăng của bệnh viện và đối tác
Ban Chỉ đạo vận động hiến máu tình nguyện TP Đà Nẵng điều phối bệnh viện tổchức các buổi hiến máu tình nguyện
+ Xác định yêu cầu: Ứng dụng hiến máu nhân đạo - Đà Nẵng của đồ án hướng đếnviệc cho người dùng đăng ký hiến máu và theo dõi tình trạng sức khỏe, kết nối bệnhviện với người dân ở Đà Nẵng là điều thiết yếu
+ Phân tích thiết kế: Sử dụng phương pháp phân tích thiết kế hướng đối tượng + Xây dựng ứng dụng: ngôn ngữ ngữ lập trình React native, javascript, các mô-đunchính như cập nhật, thêm, xoá,…
+ Kiểm thử: : sử dụng phương pháp kiểm thử hộp xám (Grey box testing) vừakiểm thử code và kiểm thử vận hành Với dữ liệu kiểm thử ảo phù hợp với cấu trúc vàchức năng
+ Triển khai thử nghiệm: Thực thi ứng dụng trên điện thoại các nhân, máy ảo đểvận hành tìm lỗi và xử lý
7 Kết quả dự kiến đạt được
iii
Trang 8- Báo cáo tốt nghiệp.
- Ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng hỗ trợ trên thiết bị di độngvới giao diện thân thiện và đáp ứng nhu cầu của người dùng
8 Tiến độ thực hiện
T
T Thời gian Nội dung công việc
Kết quả dự kiến đạt được
- Nghiên cứu lý thuyết
- Nghiên cứu về công nghệ
- Nghiên cứu về các côngcụ
Báo cáo tổng quan
- Phát triển ứng dụng:
+ Mô tả ứng dụng+ Xác định yêu cầu
Báo cáo
6 2 Tuần + Kiểm thử+ Triển khai thử nghiệm Ứng dụng đi động
Đà Nẵng, ngày …tháng …năm 2022
BỘ MÔN DUYỆT NGƯỜI HƯỚNG DẪN SINH VIÊN
Trang 9TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
KHOA CÔNG NGHỆ SỐ
CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: ThS Lê Vũ
Sinh viên thực hiện: Đinh Hoàng Ngọc Mã SV: 1811505310133
1 Tên đề tài:
- Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
2 Các số liệu, tài liệu ban đầu:
- Dựa trên nhu cầu cần nguồn máu đang nằm mức báo động của thành phố ĐàNẵng, thấy được sự cần thiết nên em đã đưa ra ý tưởng về đề tài này
- Số liệu là dùng google biểu mẫu và kêu gọi các bạn tình nguyện viên cung cấpthông tin cá nhân, tình trạng sức khỏe, nhóm máu,…
- Các tài liệu tham khảo được lấy từ nhiều nguồn khác nhau, nhưng đa phần từ cáckênh youtube hướng dẫn tự học
3 Nội dung chính của đồ án:
6 Đặc tả yêu cầu nghiệp vụ
Chương 1: Cơ sở lý thuyết
1 Cơ sở dữ liệu Firebase
2 Ngôn ngữ lập trình React Native
3 Ngôn ngữ JavaScript
4 Cách hoạt động của ngôn ngữ React Native
Chương 2: Phân tích thiết kế
Trang 106 Thiết kế cơ sở dữ liệu
Chương 3: Xây dựng chương trình
1 Công cụ xây dựng
2 Giao diện chức năng
- Kết luận và hướng phát triển
Trang 11LỜI NÓI ĐẦU
Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến quý thầy cô đã giúp đỡchúng em thực hiện đề tài này Đặc biệt là ThS Lê Vũ đã tận tình giúp đỡ em trongxuất quá trình thực hiện đề tài tốt nghiệp này
Đồng thời, chúng em cũng xin cảm ơn quý thầy cô thuộc ngành Công NghệThông Tin trường Đại Học Sư Phạm Kỹ Thuật - Đại Học Đà Nẵng đã truyền đạt nhữngkiến thức cần thiết và những kinh nghiệm quý báu cho chúng em trong suốt thời gian 4năm trên giảng đường để em có thể thực hiện tốt đề tài này Đặc biệt, em xin gửi lờicảm ơn chân thành tới ThS Lê Vũ đã giúp đỡ em rất nhiều trong quá trình học tập vàcông việc
Mặc dù đã cố gắng nhiều nhưng không thể tránh khỏi những thiếu sót Chúng
em kính mong nhận được sự góp ý của quý Thầy Cô và các bạn để hoàn thành tốt hơnnữa
Em xin chân thành cảm ơn
Đà Nẵng, ngày… tháng… năm 2022
Sinh viên thực hiện
vii
Trang 12LỜI CAM ĐOAN
Tôi xin cam đoan rằng đồ án tốt nghiệp “Xây dựng ứng dụng hiến máu nhânđạo tại thành phố Đà Nẵng” là công trình nghiên cứu độc lập dưới sự hướng dẫncủa giảng viên ThS.Lê Vũ Mọi tham khảo trong luận văn đều được trích dẫn rõràng tên tác giả,tên công trình ,thời gian,địa điểm công bố
Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệmtrước hội đồng cũng như kết quả đồ án của mình
Sinh viên thực hiện
Trang 13MỤC LỤC
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN III NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN IV TÓM TẮT I NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP V LỜI NÓI ĐẦU VII LỜI CAM ĐOAN VIII MỤC LỤC IX DANH MỤC HÌNH ẢNH XII DANH MỤC BẢNG BIỂU XIV DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT XV DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH XVI
MỞ ĐẦU 1
1 Mục tiêu đề tài 1
2 Đối tượng nghiên cứu và phạm vi nghiên cứu 2
a Đối tượng nghiên cứu 2
b Phạm vi nghiên cứu 2
3 Phương pháp nghiên cứu 2
4 Giải pháp công nghệ 2
5 Cấu trúc đồ án 2
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 Hệ quản trị cơ sở dữ liệu Firebase 4
1.2 Ngôn ngữ lập trình React Native 4
1.3 Ngôn ngữ JavaScript 5
1.4 Cách thức hoạt động của React Native 5
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ 6
2.1 Khảo sát hệ thống 6
2.1.1 Khảo sát thực tế 6
2.1.2 Khảo sát người dùng 6
2.1.3 Xác định các tác nhân 6
2.1.4 Các yêu cầu chức năng 6
2.2 Sơ đồ Use-case 8
2.3 Kịch bản cho use-case 9
2.3.1 Đăng ký tài khoản 9
ix
Trang 142.3.2 Cập nhật thông tin cá nhân 9
2.3.3 Đăng ký hiến máu 10
2.3.4 Đăng ký đơn vị liên kết 10
2.3.5 Liên kết bệnh viện 10
2.3.6 Đăng ký tổ chức hiến máu 11
2.3.7 Đăng bài 11
2.3.8 Phê duyệt nhân viên 12
2.3.9 Xem danh sách đăng ký 12
2.3.10 Tạo kết quả hiến máu 12
2.3.11 Cập nhật kết quả 13
2.3.12 Cấp quyền đơn vị liên kết 13
2.3.13 Thêm đợt hiến máu 14
2.3.14 Duyệt đơn vị tham gia 14
2.3.15 Duyệt bài đăng 14
2.4 Phác thảo giao diện người dùng và sơ đồ hoạt động 15
2.4.1 Khách vãng lai 15
2.4.2 Người dùng 17
2.4.3 Đơn vị liên kết 22
2.4.4 Bệnh viện 22
2.4.5 Ban chỉ đạo 25
2.5 Thiết kế cơ sở dữ liệu 28
2.6 Sơ đồ ERD 33
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH 34
3.1 Công cụ xây dựng 34
3.2 Một số giao diện chính 34
3.2.1 Giao diện trang chủ 34
3.2.2 Giao diện đợt tổ chức hiến máu 34
3.2.3 Giao diện lịch sử tham gia 35
3.2.4 Giao diện đăng ký đơn vị liên kết 35
3.2.5 Giao diện cập nhật thông tin cá nhân 36
3.2.6 Giao diện xem đợt tổ chức 37
Trang 153.2.7 Giao diện đăng ký hiến máu 38
3.2.8 Giao diện đăng bài 39
3.2.9 Giao diện danh sách nhân viên 39
3.2.10 Giao diện cấp quyền nhân viên 40
3.2.11 Giao diện duyệt đơn vị tham gia 40
3.2.12 Giao diện quản lí tài khoản 41
KẾT LUẬN & HƯỚNG PHÁT TRIỂN 42
1 Kết luận 42
2 Hướng phát triển 42
TÀI LIỆU THAM KHẢO 43
xi
Trang 16DANH MỤC HÌNH ẢNH
Hình 1.1 Cách thức React native hoạt động 5
Hình 2.1 Use-case Diagram tổng quát 8
Hình 2.2 Use-case Người dùng 8
Hình 2.3 Use-case Bệnh viện 9
Hình 2.4 Giao diện xem bài đăng 15
Hình 2.5 Giao diện đăng ký tài khoản 16
Hình 2.6 Sơ đồ hoạt động cho Use-case Đăng ký tài khoản 16
Hình 2.7 Giao diện đăng nhập 17
Hình 2.8 Sơ đồ hoạt động cho Use-case Đăng nhập 17
Hình 2.9 Giao diện đăng ký hiến máu 18
Hình 2.10 Sơ đồ hoạt động cho use-case đăng ký hiến máu 19
Hình 2.11 Sơ đồ Sequence Diagram cho usecase Đăng ký hiến máu 19
Hình 2.12 Sơ đồ hoạt động cho use-case đăng ký đơn vị liên kết 20
Hình 2.13 Sơ đồ Sequence Diagram cho usecase đăng ký đơn vị liên kết 20
Hình 2.14 Sơ đồ hoạt động cho use-case liên kết bệnh viện 21
Hình 2.15 Sơ đồ hoạt động cho use-case cập nhật thông tin cá nhân 21
Hình 2.16 Sơ đồ hoạt động cho use-case đăng bài 22
Hình 2.17 Sơ đồ hoạt động cho use-case phê duyệt nhân viên 22
Hình 2.18 Sơ đồ hoạt động cho use-case cập nhật kết quả hiến máu 23
Hình 2.19 Sơ đồ hoạt động cho use-case đăng bài 23
Hình 2.20 Sơ đồ Sequence Diagram cho usecase Đăng bài 24
Hình 2.21 Sơ đồ hoạt động cho use-case cập nhật kết quả hiến máu 24
Hình 2.22 Sơ đồ Sequence Diagram cho usecase cập nhật kết quả hiến máu 25 Hình 2.23 Sơ đồ hoạt động cho use-case cấp quyền đơn vị liên kết 25
Hình 2.24 Sơ đồ hoạt động cho use-case tạo đợt hiến máu 26
Hình 2.25 Sơ đồ hoạt động cho Use-case Duyệt đơn vị tham gia 27
Hình 2.26 Sơ đồ ERD 33
Hình 3.1 Giao diện trang chủ 34
Hình 3.2 Giao diện trang chủ 35
Hình 3.3 Giao diện đăng nhập 35
Hình 3.4 Giao diện đăng ký đơn vị liên kết 35
Hình 3.5 Giao diện cập nhật thông tin cá nhân 36
Hình 3.6 Giao diện xem đợt tổ chức 37
Hình 3.7 Giao diện tham gia hiến máu 38
Trang 17Hình 3.8 Giao diện đăng bài 39
Hình 3.9 Giao diện danh sách nhân viên 39
Hình 3.10 Giao diện cấp quyền nhân viên 40
Hình 3.11 Giao diện duyệt đơn vị tham gia 40
Hình 3.12 Giao diện nâng cấp quyền 41
xiii
Trang 18DANH MỤC BẢNG BIỂU
Bảng 3.1 Quyen 28
Bảng 3.2 ThongTinCaNhan 28
Bảng 3.3 DotHienMau 28
Bảng 3.4 BenhVien 29
Bảng 3.5 NhanVienYTe 29
Bảng 3.6 DonViLienKet 29
Bảng 3.7 ChiTietDHM 30
Bảng 3.8 PhieuYCNM 30
Bảng 3.9 PhanCong 30
Bảng 3.10 BaiDang 31
Bảng 3.11 DSNV 31
Bảng 3.12 LichSuHienMau 31
Bảng 3.13 PhieuDKHM 32
Bảng 3.14 KetQuaHienMau 32
Trang 19DANH MỤC CHỮ VIẾT TẮT TIẾNG VIỆT
Stt Chữ viết tắt Giải nghĩa
4 ChiTietDHM Chi tiết đợt hiến máu
xv
Trang 20DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH
Stt Chữ viết tắt Giải nghĩa Nghĩa tiếng Việt
3 ERD Entity Relationship Diagram Mô hình mối quan hệthực thể
Trang 21Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
MỞ ĐẦU
Trước ảnh hưởng của dịch Covid-19 lượng máu dự trữ trên toàn TP Đà Nẵngsụt giảm nghiêm trọng, trong khi nhu cầu sử dụng máu tại các bệnh viện vẫn rất lớn,gồm cả chế phẩm máu điều trị cho bệnh nhân
Điều này dẫn đến việc gián đoạn các buổi tổ chức hiến máu nhân đạo tại cácbệnh viện và các đơn vị trong thành phố Đà Nẵng, không thể đáp ứng kịp thời chocác bệnh viện phụ vụ cho nhu cầu cấp thiết là cấp cứu các bệnh nhân Vấn để đăng
ký hiến máu nhân đạo trực tuyến ở thành phố Đà Nẵng vẫn chưa phổ biến và cácbệnh viện vẫn đang gặp khó khăn khi kêu gọi các nguồn máu Việc này khiến chocác trước hợp cần máu khó có thể đáp ứng kịp thời
Giải pháp hiện nay để kêu gọi hiến máu nhân đạo ở thành phố là kêu gọi từnhững bệnh viện lớn thông qua các trường đại học, công ty, trang mạng xã hội nhưfacebook, zalo Nhưng việc này còn gặp nhiều bất tiện đó là các thông tin sức khỏesau khi được hiến máu thì người tham gia đợi lâu mới có kết quả trả về
Liên quan đến đề tài hiến máu nhân đạo có kết quả đã nghiên cứu, nhưng chỉdừng lại ở mức đăng bài hiển thị thông tin cho mọi người
Đề tài quản lý hiến máu nhân đạo tại thành phố Đà Nẵng của đồ án hướng đếnviệc cho người dùng đăng ký hiến máu và theo dõi tình trạng sức khỏe, kết nối bệnhviện với người dân ở Đà Nẵng là điều thiết yếu
Nhằm đáp ứng nhu cầu cung cấp máu kịp thời cho các bệnh viện và áp dụngchỉ thị giãn cách xã hội từ đó tôi hướng đến xây dựng ứng dụng quản lý hiến máunhân đạo tại thành phố Đà Nẵng
1 Mục tiêu đề tài
Xây dựng ứng dụng hiến máu nhân đạo giúp người dùng kê khai thông tinonline, đăng ký tham gia trực tiếp trên hệ thống, xem được thời gian khi đăng kýthành công Với các chức năng cụ thể :
Người hiến máu đăng ký hiến máu trên hệ thống
Người hiến máu xem tình trạng sức khỏe
Người hiến máu xem số thời gian khi tham gia
Bệnh viện cập nhật thông tin máu người tham gia
Bệnh viện thống kê danh sách hiến máu thực tế
Bệnh viện thống kê số lượng đơn vị máu
Bệnh viện, đơn vị liên kết đăng bài tổ chức các buổi hiến máu tình nguyện
Quản trị hệ thống duyệt bài đăng của bệnh viện và đối tác
Trang 22Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
Ban Chỉ đạo vận động hiến máu tình nguyện TP Đà Nẵng điều phối bệnhviện tổ chức các buổi hiến máu tình nguyện
2 Đối tượng nghiên cứu và phạm vi nghiên cứu
a Đối tượng nghiên cứu
Bệnh viện, người tham gia hiến máu và ban chỉ đạo thành phố ĐàNẵng
b Phạm vi nghiên cứu
Đề tài áp dụng cho trên thành phố Đà Nẵng và sau này có thể mở rộng
ra phạm vi khu vực miền trung Các bệnh viện tổ chức hiến máu nhân đạotại TP Đà Nẵng
3 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết thu thập thông tin qua sách, các tài liệu,trang web để tìm được các cơ sở lý thuyết liên quan vấn đề mình nghiêncứu
Phương pháp triển khai thực nghiệp: xây dựng ứng dụng
4 Giải pháp công nghệ
Ngôn ngữ lập trình: React Native
Hệ quản trị cơ sở dữ liệu: Firebase
Công cụ hỗ trợ: Figma, Visual studio, Visual code
5 Cấu trúc đồ án
Cấu trúc đồ án tốt nghiệp gồm các phần như sau:
Mở đầu: Giới thiệu lý do và các mục tiêu mà đề tài cần giải quyết, phạm vinghiên cứu của đề tài Giới thiệu tóm tắt nội dung sẽ được trình bày trong cácchương tiếp theo
Chương 1: Nghiên cứu,tìm hiểu và đưa ra lý do chọn đề tài, mục tiêu và mụcđích khi xây dựng và phát triển đề tài Xác định rõ phạm vi và đối tượnghướng đến, giải pháp công nghệ để triển khai, xây dựng đề tài, đồng thờiphân tích đặc tả yêu cầu nghiệp vụ
Chương 2: Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trìnhReact native và hệ quản trị cơ sở dữ liệu Firebase
Chương 3: Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầuphi chức năng của hệ thống
Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD
Thiết kế cơ sở dữ liệu
Xây dựng kịch bản cho từng use-case trong hệ thống
Thiết kế giao diện
Trang 23Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
Xây dựng các chức năng cho hệ thống
Chương 4: Trình bày kết quả làm được
Công cụ sử dụng
Giao diện và kết quả
Kết luận: Kết luận chung cho các chương trong đồ án Trình bày những vấn
đề đã giải quyết đồng thời trình bày các vấn đề vẫn chưa được giải quyết
Trang 24Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT1.1 Hệ quản trị cơ sở dữ liệu Firebase
Firebase là một nền tảng sở hữu bởi google giúp chúng ta phát triển các ứngdụng di động và web Họ cung cấp rất nhiều công cụ và dịch vụ tiện ích để pháttriển ứng dụng nên một ứng dụng chất lượng Điều đó rút ngắn thời gian phát triển
và giúp ứng dụng sớm ra mắt với người dùng
Firebase cung cấp cho người dùng các dịch vụ cơ sở dữ liệu hoạt động trênnền tảng đám mây với hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năngchính của firebase là giúp người dùng lập trình ứng dụng, phần mềm trên các nềntảng web, di động bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu[2]
Firebase hoạt động dựa trên nền tảng cloud và thực hiện kết nối thông quagiao thức bảo mật SSL, chính vì vậy bạn sẽ bớt lo lắng rất nhiều về việc bảo mậtcủa dữ liệu cũng như đường truyền giữa client và server Không chỉ có vậy, việccho phép phân quyền người dùng database bằng cú pháp javascipt cũng nâng caohơn nhiều độ bảo mật cho ứng dụng của bạn, bởi chỉ những user mà bạn cho phépmới có thể có quyền chỉnh sửa cơ sở dữ liệu
1.2 Ngôn ngữ lập trình React Native
React Native là framework, do công ty Công nghệ sở hữu mạng xã hội đượcnhiều người sử dụng nhất hiện nay Facebook phát triển, nhằm mục đích giải quyếtbài toán hiệu năng của Hybrid và chi phí khi phải viết nhiều loại ngôn ngữ nativetrên nền tảng di động Nếu bạn đang sử dụng React Native để xây dựng các ứngdụng trên IOS hay Android thì chỉ có thể dùng ngôn ngữ JavaScript để viết chươngtrình
Mục đích khi tạo ra ngôn ngữ này là giúp khắc phục được các điểm yếu củacác ứng dụng web Các nhà lập trình tiết kiệm được khá nhiều thời gian cũng nhưcông sức của mình nhờ sự hỗ trợ đắc lực từ JavaScript mà họ có thể hoạt động đượctrên mọi mặt trận ứng dụng mobile [3]
React Native là một Cross-platform Framework dùng để phát triển ứng dụngdành cho thiết bị di động đa nền tảng trên Android và iOS Điều đó có nghĩa là chỉvới 1 code base, bạn đã có cho mình 1 ứng dụng chạy trên cả Android và iOS rồithay vì phải đi code 2 ứng dụng như trước đây
Nó dựa trên JavaScript Core Runtime và Babel Với thiết lập này, ReactNative hỗ trợ các tính năng JavaScript (ES6+) mới nhất, ví dụ như Arrow Function,Class, Async/Await,…
Trang 25Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
1.3 Ngôn ngữ JavaScript
JavaScript được phát tiển bởi Brendan Eich tại hãng truyền thông Netscapevới tên đầu tiên là Mocha Sau đó, đổi tên thành LiveScript và cuối cùng làJavaSript được sử dụng phổ biến tới thời điểm bây giờ
JavaScript Framework là thư viện được xây dựng dựa vào ngôn ngữ lập trìnhJavaScript Từ đó, mỗi framework được tạo ra để phục cho từng lĩnh vực khác nhau.Bạn có thể tìm hiểu kỹ hơn về framework là gì, sẽ giúp bạn có thêm nhiều thông tin
rõ ràng hơn
JavaScript được sử dụng để thêm thành phần động vào ứng dụng và tạo nêncác yếu tố có thể lập trình được mà đôi khi CSS không thể xử lý được
1.4 Cách thức hoạt động của React Native
React Native được tích hợp 2 Thread là Main Thread và JS Thread cho ứngdụng mobile Với Main Thread đảm nhận nhiệm vụ cập nhật giao diện người dùng(UI) Sau đó, sẽ xử lý tương tác người dùng Trong khi đó, JS Thread sẽ thực thi và
xử lý code Javascript Hai luồng này hoạt động độc lập với nhau
Để tương tác được với nhau hai Thread sẽ sử dụng một Bridge (cầu nối) Chophép chúng giao tiếp mà không phụ thuộc lẫn nhau, chuyển đổi dữ liệu từ Threadnày sang Thread khác Dữ liệu từ hai Thread được vận hành khi tiếp nối dữ liệu chonhau
Trang 26Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng Hình 1.1 Cách thức React native hoạt động
Trang 27Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ2.1 Khảo sát hệ thống
2.1.1 Khảo sát thực tế
Thời gian qua, đại dịch COVID-19 đã gây tác động không nhỏ đến hoạt độngtiếp nhận và cung cấp máu trên cả nước cũng như tại Đà Nẵng Hiện lượng máu dựtrữ đang ở mức báo động cần bổ sung gấp
Đại diện Bệnh viện Đà Nẵng cho biết những ngày qua, do phải điều phốichung lượng máu cấp cứu và điều trị chia sẻ các cơ sở y tế toàn thành phố nênnguồn máu dự trữ tại Bệnh viện Đà Nẵng thiếu hụt trầm trọng
Từ đầu năm đến nay, Bệnh viện Đà Nẵng tổ chức nhiều chương trình hiếnmáu tình nguyện để bổ sung lượng máu đang thiếu hụt trầm trọng như TPO - Ngàyhội Chủ nhật Đỏ lần thứ XIV - năm 2022 tại Đà Nẵng ( diễn ra trong ngày16/1/2022) , hiến máu nhân đạo của Đoàn viên Thanh niên Trường Đại học Sưphạm Kỹ thuật ( diễn ra trong ngày 16/3/2022), và gần đây nhất là chương trìnhhiến máu nhân đạo của Sư Đoàn 375 ( diễn ra ngày 14/4/2022, tại sân bay Đà Nẵng)
2.1.2 Khảo sát người dùng
Trước tình trạng nguồn máu đang thiếu hụt, các bệnh viện tổ chức nhiều ngàyhội hiến máu tình nguyện Nhưng còn nhiều bất tiện gian trong việc kê khai thôngtin
Bệnh viện đang gặp khó khăn trong viện tiếp nhận các nguồn máu từ ngườitham gia hiến máu thông qua các đợt tổ chức tại bệnh viện hay trường đại học,lượng máu giảm đáng kể, không đủ cấp cứu Việc cập nhật dữ liệu từ giấy sang hệthống cũng tốn nhiều thời gian
Trang 28Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
2.1.4 Các yêu cầu chức năng
2.1.4.1 Khách vãng lai
- Đăng ký tài khoản làm người dùng
2.1.4.2 Người dùng
- Đăng nhập
- Cập nhật thông tin cá nhân
- Đăng ký tham gia hiến máu
- Phê duyệt nhân viên
- Đăng ký đợt hiến máu
- Tạo đợt hiến máu
- Duyệt bài đăng
2.1.4.6 Người quản trị
- Quản lý tài khoản
Trang 29Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
2.2 Sơ đồ Use-case
Hình 2.1 Use-case Diagram tổng quát
Hình 2.2 Use-case Người dùng
Trang 30Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
Hình 2.3 Use-case Bệnh viện
2.3 Kịch bản cho use-case
2.3.1 Đăng ký tài khoản
Use case name: Đăng ký tài khoản
Actors: Khách vãng lai
Description: Khách vãng lai đăng ký tài khoản trên hệ thống
Input: Thông tin khách vãng lai dùng để đăng ký
Tài khoản được đăng ký chưa tồn tại trên hệ thống
Output: Hệ thống thông báo đăng ký thành công
Exception flow: Khách vãng lai nhập sai thông tin hoặc email đã tồn tại
use-case trở lại bước 1
2.3.2 Cập nhật thông tin cá nhân
Use case name: Cập nhật thông tin các nhân
Actors: Người dùng
Description: Người dùng cập nhật thông tin cá nhân trên hệ thống
Input: nhập thông tin người dùng: địa chỉ, số điện thoại, trình độ
học vấn, nghề nghiệp, nhóm máu, giới tính, cơ quan
Output: Hệ thống thông báo “Đã cập nhật đầy đủ thông tin ”
Thông tin được lưu trữ trên hệ thống
Basic flow:
Bước 1: Người dùng chọn cá nhân
Trang 31Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
Bước 2: Chọn “Thông tin ca nhân”
Bước 3: Chọn “Cập nhật”
Bước 3: Người dùng nhập thông tinBước 4: Hệ thống kiểm tra và thông báo đăng ký thànhcông
Exception flow: Người dùng nhập sai thông tin hoặc thông tin đã tồn tại
cập nhật thất bại use-case trở lại bước 2
2.3.3 Đăng ký hiến máu
Use case name: Đăng ký hiến máu
Actors: Người dùng
Description: Người dùng đăng ký tham gia hiến máu
Input: Tích chọn các thông tin khảo sát hệ thống đưa ra
Output: Hệ thống thông báo đã đăng ký thành công
Basic flow:
Bước 1: Chọn “Bài đăng”
Bước 2: Tích chọn các khảo sátBước 3: Chọn “Đăng ký”
Bước 4: Hệ thống kiểm tra và thông báo đăng ký thànhcông
Exception flow: Người dùng không hoàn thành khảo sát đăng ký thất bại
use-case trở lại bước 2
2.3.4 Đăng ký đơn vị liên kết
Use case name: Đăng ký đơn vị liên kết
Actors: Người dùng
Description: Người dùng đăng ký trở thành đơn vị liên kết
Input: Nhập các thông tin
Output: Hệ thống thông báo đã đăng ký thành công
Basic flow:
Bước 1: Người dùng chọn “Đăng ký đơn vị liên kết”
Bước 2: Nhập thông tin Bước 3: Chọn “Đăng ký”
Bước 4: Hệ thống kiểm tra và thông báo đăng ký thànhcông
Exception flow: Người dùng nhập thông tin đã tồn tại đăng ký thất bại
use-case trở lại bước 1
Trang 32Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
2.3.5 Liên kết bệnh viện
Use case name: Liên kết bệnh viện
Actors: Người dùng
Description: Người dùng là nhân viên y tế thuộc những bệnh viện hoạt
động trên hệ thống sẽ được đăng ký liên kết bệnh viện để trở thành nhân viên y tế
Input: Nhập các thông tin
Output: Hệ thống thông báo đã đăng ký thành công
Basic flow:
Bước 1: Người dùng chọn “Liên kết bệnh viện”
Bước 2: Nhập thông tin Bước 3: Chọn “Đăng ký”
Bước 4: Hệ thống kiểm tra và thông báo đăng ký thànhcông
Exception flow: Người dùng nhập thông tin đã tồn tại đăng ký thất bại
use-case trở lại bước 1
2.3.6 Đăng ký tổ chức hiến máu
Use case name: Đăng ký tổ chức hiến máu
Actors: Bệnh viện
Description: Bệnh viện đăng ký các đợt hiến máu do ban chỉ đạo
đăng bài Đăng ký thành công sẽ được đăng bài tổ chức
Input: Chọn đơn vị liên kết
Output: Hệ thống thông báo đã đăng ký thành công
Basic flow:
Bước 1: Bệnh viện chọn “Đợt hiến máu”
Bước 2: Chọn “Đơn vị liên kết”
Trang 33Xây dựng ứng dụng hiến máu nhân đạo tại thành phố Đà Nẵng
Output: Bài đăng hiển thị cho người dùng đăng ký
Basic flow:
Bước 1: Bệnh viện chọn “Đăng bài”
Bước 2: Chọn “mã đợt ”, nhập thông tin đợt tổ chứcBước 3: Chọn “Đăng bài”
Bước 4: Đăng bài thành công
Exception flow: Bệnh viện nhập sai dữ liệu đăng bài thất bại
use-case về bước 1
2.3.8 Phê duyệt nhân viên
Use case name: Phê duyệt nhân viên
Actors: Bệnh viện
Description: Người dùng là trưởng khoa của bệnh viện tham gia trên
hệ thống, có chức năng phê duyệt nhân viên liên kết
Input: Chọn người dùng
Output: Người dùng được nâng cấp quyền trở thành nhân viên y tế
Basic flow:
Bước 1: Bệnh viện chọn “Danh sách nhân viên”
Bước 2: Chọn “Nhân viên”
Bước 3: Chọn “Phê duyệt nhân viên”
Bước 4: Chọn “Nâng cấp quyền”
Bước 5: Nâng cấp quyền thành công
Exception flow: Người dùng không thuộc bệnh viện use-case về bước 1
2.3.9 Xem danh sách đăng ký
Use case name: Xem danh sách đăng ký
Actors: Bệnh viện
Description: Bệnh viện xem danh sách người dùng đăng ký hiến máu
Input: Danh sách người dùng đăng ký đợt tổ chức hiến máu
Output: Người dùng được nâng cấp quyền trở thành nhân viên y tế
Basic flow:
Bước 1: Bệnh viện chọn “Danh sách đăng ký”
Bước 2: Chọn người đăng kýBước 3: Chọn “Xem thông tin người đăng ký”
Bước 4: Chọn “Phê duyệt”
Bước 5: Người đăng ký chuyển qua danh sách hiến máu
Exception flow: Người dùng đăng ký không hợp lệ use-case về bước 1