Sinh viên thực hiện: Nguyễn Thành Danh — 17520323 Trương Minh Sang — 17520980 Nội dung đề tai:M6 ta chỉ tiết mục tiêu, phạm vi, doi tượng, phương pháp thực hiện, kết quả mong đợi của đề
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA CONG NGHE PHAN MEM
NGUYEN THANH DANH
TRUONG MINH SANG
KHOA LUAN TOT NGHIEP
Researching Multi-tenancy and applying in developing a cloud
clinic management software leasing system
KY SU NGANH KY THUAT PHAN MEM
TP HO CHi MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHAN MEM
NGUYEN THÀNH DANH - 17520323
TRUONG MINH SANG - 17520980
KHÓA LUẬN TÓT NGHIỆP
TÌM HIỂU MULTI-TENANCY VÀ XÂY DỰNG HỆ
THONG QUAN LÍ PHÒNG KHAM
Researching Multi-tenancy and applying in developing a cloud
clinic management software leasing system
KY SU NGANH KY THUAT PHAN MEM
GIANG VIEN HUONG DAN
THS PHAN TRUNG HIEU
TP HO CHÍ MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
TI8ầY của Hiệu trưởng Truong Dai học Công nghệ Thông tin.
— eee ceee eee eeeee teeters teens eeeneeeeeees — Chủ tịch.
RA ce eee e cence eed e eden eee ee ee eee ene ea teen ene — Thu ky
BL eee eee eee ence ence eee eee eee eee seat eeeenae ees — Uy viên
Trang 4ĐẠI HỌC QUOC GIA TP HO 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 BO
TP HCM ngay thang ndm
NHẬN XÉT KHÓA LUẬN TÓT NGHIỆP
(CUA CÁN BỘ HƯỚNG DAN)Tên khóa luận:
TÌM HIẾU MULTI-TENANCY VÀ XÂY DỰNG HE THONG QUAN LÍ PHÒNGKHÁM
Nhóm SV thực hiện: Cán bộ hướng dẫn:
Nguyễn Thành Danh 17520323 Thạc sĩ: Phan Trung Hiéu
Trương Minh Sang 17520980
Đánh giá Khóa luận
1 Vé cuôn bao cáo:
Số trang - Số chương
So bảng sô liệu Sô hình vẽ :
Sô tài liệu tham khảo Sản phâm Một sô nhận xét về hình thức cuôn báo cáo:
Trang 5Điểm từng sinh viên:
Trang 6ĐẠI HỌC QUOC GIA TP HO 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 tháng năm
NHAN XÉT KHÓA LUẬN TOT NGHIỆP
(CUA CAN BO PHAN BIEN)
Tên khóa luân:
TÌM HIỂU MULTI-TENANCY VÀ XÂY DỰNG HE THONG QUAN LÍ PHONGKHÁM
Nhóm SV thực hiên: Cán bô phản biên:
Nguyễn Thành Danh 17520323 Thạc sĩ: Mai Trọng Khang
Trương Minh Sang 17520980
Đánh giá Khóa luận
1 Về cuôn báo cáo:
Số trang - Số chương
So bang sô liệu Sô hình vẽ :
Sô tài liệu tham khảo Sản phâm Một sô nhận xét về hình thức cuôn báo cáo:
Trang 7Điểm từng sinh viên:
Trang 8LỜI CẢM ƠN
Sau 4 năm học tập và rèn luyện trong môi trường của Trường Đại học Công nghệ Thông
tin, trong đó bao gồm việc giảng dạy và giúp đỡ tận tình của các thầy cô của khoa Công
nghệ Phần mềm, chúng em đã đạt được nhiều bước tiến trong việc xây dựng được các
kiến thức nền tang, định hướng nghề nghiệp và các kĩ năng mềm dé có thé áp dụng vào
hành trình học tập và làm việc sau này.
Chúng em xin chân thành cảm ơn quý thầy cô Trường Đại học Công nghệ Thông tin nói
chung và khoa Công nghệ Phần mềm nói riêng, đặc biệt trong đó là thầy Phan Trung
Hiếu đã hướng dẫn, giúp đỡ tận tinh va đưa ra ý kiến đóng góp dé chúng em có thé hoàn
thành khóa luận này một cách tốt nhất
Chúng em xin cảm ơn Ban Giám hiệu Trường Đại học Công nghệ Thông tin đã tạo điều
kiện về cơ sở vật chất như các lớp học, hệ thống thư viện, các tài nguyên nhằm phục vụ
cho việc nghiên cứu và tìm kiếm thông tin
Chúng em xin cảm ơn Bác sĩ Chế Thanh Đoan đã giúp đỡ chúng em trong quá trình khảo
sát yêu cầu nghiệp vụ chức năng quản lí phòng khám
Cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, bạn bè và tập thê lớp KTPM2017
đã luôn sẵn sàng sẻ chia và giúp đỡ chúng em trong học tập và trong cuộc sống.
Trong quá trình thực hiện khóa luận này chúng em không thể tránh khỏi sai sót Do đó
chúng em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô dé khóa luận này
được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn và kính chúc mọi người những điều tốt đẹp nhất
Trang 9ĐẠI HỌC QUOC GIA TP HO CHÍMINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIET NAM
TRƯỜNG ĐẠI HỌC Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
ĐÈ CƯƠNG CHI TIẾT
TÊN ĐÈ TÀI: Tìm hiểu Multi-tenancy và xây dựng hệ thống quan lí phòng khám
Cán bộ hướng dẫn: ThS Phan Trung Hiếu
Thời gian thực hiện: Từ ngay 01/03/2021 dén ngày 25/06/2021
Sinh viên thực hiện:
Nguyễn Thành Danh — 17520323
Trương Minh Sang — 17520980
Nội dung đề tai:(M6 ta chỉ tiết mục tiêu, phạm vi, doi tượng, phương pháp thực hiện, kết
quả mong đợi của đề tài)
Mục tiêu:
Hệ thống quản lí phòng khám được xây dựng dựa trên ba mục tiêu chính là:
e Tìm hiểu kiến trúc Multi-tenancy, áp dụng hướng tiếp cận phù hợp vao việc xây
dựng hệ thống quản lí phòng khám
e Xây dựng một hệ thống quản lí phòng khám tiện dụng cho phòng khám, bệnh nhân,
và dé dang phát triển, mở rộng cho nha cung cấp dịch vụ phần mềm
e Xây dựng một ứng dụng mobile cho bệnh nhân dé tăng tương tác giữa bệnh nhân
và phòng khám.
Phạm vỉ:
Đề tài tập trung vào kiến trúc Multi-tenancy và xây dựng hệ thống quản lí phòng khám
với các tính năng quản lí danh mục, đặt lịch hẹn, tiếp nhận bệnh nhân, khám bệnh, tính
tiên viện phí và quản lí dược.
Đối tượng:
Trang 10Tập trung vào công tác quản lí phòng khám nêu trên cho các phòng khám đăng kí và
bệnh nhân khám bệnh ở các phòng khám đó.
Phương pháp thực hiện:
Nhóm gôm 02 thành viên làm việc với nhau, phân chia công việc phù hợp với khả năng
mỗi người và mục tiêu dé ra Hoan thành công việc theo kế hoạch dé ra và thảo luận, trao
đi trực tiếp giữa các thành viên trong quá trình thực hiện
Kết quả mong đợi:
Sau khi đã xác định đề tài, tìm hiểu thực thế, phân tích các yêu cầu, nhóm đã xây dựng
được một hệ thống quan lí phòng khám áp dụng được Multi-tenancy, cụ thé như sau:
e Đối với phòng khám sử dụng và người dùng cá nhân:
o Đối với phòng khám sử dụng hệ thống: quản lí được phòng khám thông qua
các chức năng quản lí danh mục, đặt lịch hẹn, tiếp nhận bệnh nhân, khám
bệnh, tính viện phí và quản lí dược
© Đối với khách hàng cá nhân: khách hàng cá nhân có thé sử dụng dich vụ của
hệ thống dé tìm khám chữa bệnh ở các phòng khám đã đăng kí thông qua
ứng dụng trên điện thoại
¢ Một số tiêu chí khác:
o Tính thẩm mỹ:
= Hệ thống có giao diện thân thiện người dùng, dé sử dung và cuốn hút
o Tính logic va bảo mật:
= Các tính năng phải hoạt động đúng với qui trình đề ra và liên kết được
các đối tượng với nhau
" Đảm bảo tính bảo mật cho các phòng khám và người dùng
Kế hoạch thực hién:(M6 ta kế hoạch làm việc và phân công công việc cho từng sinh viên
tham gia)
Thời gian thực hiện từ 01/03/2021 đến 26/06/2021, được chia thành 6 sprint như sau:
Sprint Nguyễn Thanh Danh Trương Minh Sang
Trang 11(01/03/2021 — 15/03/2021)
Tim hiéu vé Multi-tenancy,
ASP.NET Core, Angular, React Native
Tìm hiểu về công tác quản
lí phòng khám
Khảo sát các ứng dụng phòng khám: STD Clinic,
EZ Clinic, YouMed
Tim hiéu vé Multi-tenancy,
ASP.NET Core, Angular, React Native
Tìm hiểu về công tác quản
lí phòng khám
Khảo sát các ứng dụng phòng khám: STD Clinic,
Phân tích yêu câu chức
năng, thiệt kê cơ sở đữ liệu
Xây dựng ứng dung mobile
cho bệnh nhân của phòng
Trang 12MỤC LỤC
Chương 1 TONG QUAN ĐỂ TÀII - 2 2+S£+E‡SESEEEEEEEEEE12E121521217121 211.1 1
1.1 Giới thiệu đề tice eecccceeeescessseeecessnneecessneeeeessnneecessuteseessnsesssneeessnneesseasneeeen 1
1.2 MUC a 2
1.3 DOi tong nghi6n CUU ng giOD 2
1.4 Phạm vi nghiÊn CỨU - - 6< 3311131111911 1 8931 101911 HH ng 2
1.5 Phương pháp nghiên cứu và nguồn số liệu 2- 2 2 2 £+E££E+£EeExzEzrszsez 2
1.5.1 Phương pháp nghiên CỨU c2 2319113 1111 1E ng ngư 2
1.5.2 Nguồn dữ liệu 2- tt EEEEEE21121121121E 1111111111 31.6 Điểm mới của luận văn -s¿+22++t22E+xttEEkktrtrkrtrtttrtrttrtrrrrrrrrrrrrrrrrrie 3
Chương2 CƠ SỞ LÍ THUYỀÊT - 22 2+E2+EE+EE2EESEESEEEEEEEEEEEEEEEEEECEEkrrkrrkrree 4
2.1 Tổng quan về kiến trúc Multi-tenanCyy ¿sex ++£++EE+E£+Ee£Eerxerxerxerxrree 4
2.1.1 Khái niệm SẶ SĂ SE S ST HT HH HH HH trệt 4
' : nh SỐ “s7 ^ 42.1.3 Ưu điểm và nhược điểm của Multi-tenancy - ¿2s s s2 s+zz+se+: 52.2 Tổng quan về ASP.NET Core và ASP.NET Boilerplate -¿s+¿ 7
2.2.1 Giới thiệu ASP.NET COre - -.- ship 7 2.2.2 Giới thiệu ASP.NET Boilerplate - cscsx se tsesesriserrrrrrrrrke 7
2.3 Tổng quan về Microsoft SQL SeTVeT -:-©2¿©5sSE+EEt2E2EESEEEEEEEEEEkrrkrrkrres 102.4 Tổng quan về công cụ dbForge St(udiO - ¿5c se sSk+£E+EE+E+Ec£EerEerxerxerkee 11
2.4.1 Giới thiệu dbForge Studio for SQL S€rVeT - - 5 se s+++skssesres 11 2.4.2 Tai sao sử dụng dbForge Studio for SQL Server . «<< <2 12
2.5 Tổng quan về TypeScript ccccccccccescsssssessesscssessessesssessessessessessesessssseseesessessesseaees 13
2.5.1 Khai niệm . -L LH SH TH TH Hiệp 13
Trang 132.5.2 — Đặc điỂm t nh HT E1 HT E1 rrrrrryg 13
2.5.3 Tại sao nên sử dụng TypeScript 5 S1 re 14
2.6 Tổng quan về AnguÌar- - + +2£+Et+Ek+EE+EE2EE2EEEEEEEE2E12E171 711211212 14
2.6.1 Khái niệm SH Họ TH HH Hà HH nà 14
2.6.2 Tại sao sử dung Angular cece << 1kg ng ệt 17
2.7 Tổng quan về React NafiVe ¿c5 SsSE+E2E2E2EE21E2121212112117171 11111 xe, 18
"5ñ "vn nhe a 18
2.7.2 Cach thitc hoat dOng 027277 18
2.7.3 Tai sao sử dung React ÏNaf[IV€ Gv 19
2.8 Tổng quan về Google Map PlatfOrm . -2:5¿©52+S+2++2£++£x++rx+rxerxesres 20
2.8.1 Khái niệm - SH HH HT Hàn Hàn HH 20 2.8.2 Sử dụng Google Map Platform - 5+ Scc + ****vEEseeseeerseeerseeeeee 23
Chương 3 | PHAN TÍCH VÀ THIET KE HE THỒNG - 22 s52 27
3.1 Mô tả lại bài toa oe eee ee ceteeseeeeseeseeseceecsetseeseceeccesesessessessessesaeseeeseeeeeeeeeaseaes 27 3.2 Qui trình nghiệp vu khám bệnh: 00 ee ee ceceseeeeeeeeeseeeaeeeeseesaeeeaeseeeeaeeeaeeees 28
“ 30
3.5.1 Danh sách các ACOT - ok HH ng ng ệt 30
3.5.2 Sơ đồ Use case tổng quát -:- 2c ++z+EE+Ek£EEEEEEEEEEEEEEEEErkerkerreee 32
Trang 143.5.3 Đặc tả một số Use case chính - - St Ex+E+EvEE+E+EeEErEeEerrvzxerereree 343.6 Sơ đỗ tuần tự ccccctt th ng ng ghe 50
3.6.1 _ Chức năng “Đăng nhập” - - + - + SH HT HH ng Hy rệt 50 3.6.2 Chite nang dang {nh ae 50
3.6.3 _ Chức năng lịch hẹn - - + k1 911 91191111 1v HH ng ng ệt 51
3.6.4 Chức năng tiếp nhận bệnh nhân -. ¿2 + +2 22 £+E£+E££E+zEe£xerxrrszrs 52
3.6.5 _ Chức năng khám bệnh - + Sc 3233333119311 EEEEEkrrrrrrsee 53 3.6.6 ® ái an 54 3.6.7 _ Chức năng quản lí ƯỢC - c1 c3 39 119 1E Errerrkrrrerree 55
3.6.8 _ Chức năng quan lí danh mục 5 5 + *++kE+EEseeeeeseerseereke 56
3.6.0 Chức năng đặt lịch hẹn cá nhân ¿55 +22 + +22 *++E+vEEsereeereerreerrs 57
3.6.10 Chức năng quản lí h6 SƠ ¿- 2 ¿+ +E£EE‡EE+EE+EE£EEEEEEEEEEEEEeEkerkrrkrrx 583.6.11 | Chức năng xem danh sách và thông tin chỉ tiết các đối tượng danh mục 593.7 Thiết kế dữ liệu -c+ccktcrErttEHnnH ng re 60
3.7.1 Mô hình dữ liệu quan hỆ - - - c2 133333 ESEESEsrseerrseeeessre 60
3.7.2 Mô tả chỉ tiết bảng đữ liệu -2-©2+©2¿22x2EEtEEESEEEEErrkkrrkrerkerrrees 60
3.8 Thiết kế giao diỆn -©:-©5e+St+EEEEE212112112712112112111121121111 11111111110 79
3.8.1 Giao diện lịch hẹn - - G E333 01113121 11116111119 1111181111188 111g key 79
3.8.2 Giao diện tiếp nhận bệnh nhân -2¿ 2£ ©+++++zx++x++zx++rxe+rxeex 80
SN Giao dién kham nan 6 81
3.8.4 €0 2I5:i00 P1 - 82
3.8.5 Giao diện danh mục ƯỢC - - 5-22 E 33222132211 222 vs sec 83 3.8.6 Giao diện danh mục kho đưƯỢC - - 5-2 +22 ***++2#E++zeezzeeeeesz 83 3.8.7 Giao diện danh mục dich VỤ 2-5222 13332 1S vs vn ve 84
Trang 153.8.8 Giao diện bang giá dich VU - 113211191 1391111 11 9 1 1H ng ng 84
3.8.0 Giao diện danh mục đối TƯỢN Gà HH He 85
3.8.10 Giao diện danh mục ICTD - - - cG 5 S2 22211111111 8211111111511 EEcrzee 85 3.8.11 Giao diện danh sách phòng khám - ¿+5 5+ +++ *++k+seeseeereseeess 86 3.8.12 Giao diện chính mObIÏe 22 1E E32 231118EE1££9231 1 SE kkkeeeersse 87
3.8.13 Giao diện đặt lich hen mobiÌe - ceescccessceceeseecessseecesssecesseeeeee 89
3.8.14 Giao diện hồ sơ cá nhân ¿-¿- + St +k+ESEESESEEEEEESEEEEEEEEEEEEkrkerrrkrkrrrrrree 91
3.8.15 Giao diện danh sách và chi tiết phòng khám 2 2 + s25: 92
3.8.16 _ Giao diện danh sách và thông tin chỉ tiết bác sĩ - 5 s=s+s+ 943.8.17 _ Giao diện danh sách và thông tin chi tiết chuyên khoa 96Chuong 4 KẾT LUẬN VÀ HƯỚNG PHAT TRIÉN 2-22 5252+cs+£xzse2 98
4.1 Kết luận đế đ> <@ / 98
4.1.1 Kết quả dat được 72:22+c2ckEEeEkerkrtrerkrerkrererrrees 984.1.2 VỀ mặt kĩ thuật series 984.1.3 VỀ mặt thực tiễn ccccctrtrttritttririrtrirrrtrirrrririerrrree 99
4.2 Hướng phát rien o.cceccecccccccccescessessecsessessessessusssessessvssucsssssessecsessuessessesssssesseeseeaes 99
TÀI LIEU THAM KHAO cccccssscssssssssesssessssesssesssessssesssecsssssssesssecsssesssecssesssneeaseee 100
Trang 16DANH MỤC HÌNH
Hình 2.1 Kiến trúc Single-tenancy và Multi-tenancy -¿-sc s s+cs+czxzes 4Hình 2.2 Kiến trúc N-Layer ASP.NET Boilerplate - 2-2 + sz+s+cs+cxeei 8
Hình 2.3 Công cụ dbForge Studio for SQL - «se seeseeesereerseesee 12
Hình 2.4 Kiến trúc cơ bản của một ứng dụng Angular 2: ©s22s+cs+zxzsz 15
Hình 2.5 Cách hoạt động của một component AnguÌaT - «- «<< <+sx+s<+sx2 17
Hình 2.6 Các thành phan chính khi React Native thực thi -. ¿ 5¿©5s=52 19
Hình 2.7 Tổng quan một số dich vụ mà GCP cung cấp 2 + 5 + s+csss2 21
Hình 2.8 Các dich vu của Google Map PlatÍOrim - - + + +seesseessrsee 22 Hình 2.9 Giao diện Console quản lí các API Google Map Platform - 23
Hình 3.1 Qui trình nghiệp vụ khám bệnh - G5 11H ngư 28
Hình 3.2 Sơ đồ kiến trúc hệ thống ¿22 2¿©2££©£+E+2Ex2EEtEE+eExzrxerresree 29Hình 3.3 Sơ đồ phân rã chức năng quản lí -¿- ¿2 s¿++++++£x++zx++zxzxesrsz 30
Hình 3.4 Sơ đồ phân rã chức năng khách hang cá nhân ¿5-5 5552552 30
Hình 3.5 So đồ Use case tong quát của ứng dụng quản lí 2- 5 s52 s2 32Hình 3.6 Sơ đồ Use-case tổng quát của ứng dụng mobile .: -¿2s+ 33Hình 3.7 Sơ đồ tuần tự “Đăng nhập”” - 2: 2: ©2++2EESEESEECEEEEEEerkrrrkerrerree 50Hình 3.8 Sơ đồ tuần tự “Dang kí” -. - ¿52s tt 2E 12E1211211211211 211111111 xe 50Hình 3.9 Sơ đồ tuần tự “Lich hẹn ” ¿222x221 E1 51
Hình 3.10 Sơ đồ tuần tự “Tiếp nhận bệnh nhân” - 2 2 2+2 ++zx+zx+zxzzszs+2 52
Hình 3.11 Sơ đỗ tuần tự '“Khám bệnh” . ¿-©222c+tEEktrttEkkrrrtrriirrrrii 53Hình 3.12 Sơ đồ tuần tự “Vide phí” -©-+©++22x+2Ex22EE22E2EE2EEE2ESEEEEkrrrrrrev 54Hình 3.13 Sơ đồ tuần tự “Quản lí đượcC” -:-©5¿©52+Sk+Ekt£E2EESEEeEEerkrrkerkerkrres 55Hình 3.14 So đồ tuần tự “Quản lí danh mụC”” - c- secx+Sk+E+E+ErEerkerkerxerkeree 56Hình 3.15 Sơ đỗ tuần tự “Đặt lịch hẹn cá nhân” -ccccccccrrrrkkrrrrrriee 57Hình 3.16 Sơ đồ tuần tự “Quan lí h6 SƠ”” - - - St keSk‡EEEE‡EEEEEEEEEEEEEEerkerrkererrrri 58Hình 3.17 Sơ đồ tuần tự “Danh sách và thông tin chi tiết các đối tượng danh mục”
Trang 17Hình 3.19 Giao diện danh sách lịch hẹn theo tuần ¿+ +zx+xezx+xerxexzxers 79
Hình 3.20 Giao diện danh sách lịch hẹn theo ngày - 55s c + ssscsserssersee 79 Hình 3.21 Giao diện thêm mới lịch hẹn 5: 5 5< S+*****+E+vE+eEserxerseereeseerrke 79
Hình 3.22 Giao diện danh sách tiếp nhận bệnh nhân - - - -5<<<<=+ 80
Hình 3.23 Popup tìm kiếm bệnh nhân - ¿2-2 2 E+SE+EE+E£+E£+E££Ee£Eerxerxrrszxez 80
Hình 3.24 Giao diện thêm mới tiếp nhận bệnh nhân - - << 5555 ++5<<<<<+ 80
Hình 3.25 Giao diện danh sách khám bệnh - <5 522225 **++++#e+++eeve++s+ 81 Hình 3.26 Giao diện thêm mới thông tin khám bệnh 5 <++<£+<++++ 81
Hình 3.27 Giao diện danh sách viện phi oo eeccesseeeseeeeeeeseeceeeeeeeeesaeeeseeeeeeeesaes 82 Hình 3.28 Giao diện thêm mới thông tin viện phí «+55 << £++s£+seeese 82 Hình 3.29 Popup xác nhận thanh toán - - <3 + 1E + + EESeksseeerrersrsre 82
Hình 3.30 Popup hủy thanh toán - -.¿ c +1 1211210111911 11 1111 1 9 1119 1 ng 83 Hình 3.31 Giao diện danh sách danh mục dược - - 55+ +++<<+++<exc++s+ 83 Hình 3.32 Giao diện thêm mới thông tin danh mục được -«++s«++<+ 83 Hình 3.33 Giao diện danh sách danh mục kho dược -« +++<<=+<+<< 83 Hình 3.34 Giao diện thêm mới thông tin danh mục kho dược - 84 Hình 3.35 Giao diện danh sách danh mục dich vụ - 5< «<< << <s<<+zse=<ss 84 Hình 3.36 Giao diện thêm mới thông tin dịch vụ - 5555 ss+++s<++see++sss+ 84 Hình 3.37 Giao diện danh sách bảng giá dich VỤ - - s55 sss++x+seexeeesessrs 84 Hình 3.38 Giao diện chỉnh sửa thông tin bảng giá dich vụ - -<+-<+<+2 85
Hình 3.39 Giao diện danh sách danh mục đối "71777 85
Hình 3.40 Giao diện thêm mới thông tin danh mục đối TƯỢNG - «<< 85
Hình 3.41 Giao diện danh sách danh mục ICTD - - 252 < << £ + ‡+++ssc++sss 85 Hình 3.42 Giao diện thêm mới thông tin danh mục ICTD 5< +- «<< <++<+ 86 Hình 3.43 Giao diện danh sách phòng khám - - - 5xx seeeseeserseesee 86 Hình 3.44 Giao diện thêm mới thông tin phòng khám - - -5- 55+ 5s<++s2 86
Hình 3.45 Giao diện đăng nhập bằng số điện thoại ¿-cccxcccxeEcrxerrrerxererxee 87
Hình 3.46 Giao diện trang chủ ứng dụng mobIÏÌe <5 555 + + + +++sexsseeseeess 88 Hình 3.47 Giao diện danh sách lịch hẹn mobile 555 555 +++<<+++ses++ss 89
Trang 18Hình 3.48 Giao diện đặt lịch hẹn mobile c5 <5 23313 *‡++££#E++sevesseeessss 90
Hình 3.49 Giao diện hồ sơ và thông tin cá nhân ¿- ¿+ +z+zx+xx+zxesrxz 91
Hình 3.50 Giao diện danh sách phòng khám 5 + + + *+sEs+kEeseeeee 92
Hình 3.51 Giao điện thông tin chỉ tiết phòng khám - 2: 22 5¿225225+>s2 93
Hình 3.52 Giao diện danh sách bác SĨ 5+ 2 3332221322211 S22 Evsreeerreeecez 94
Hình 3.53 Giao diện thông tin chi tiết bác sĩ ¿- 2-52 2 ++E££kerkerxerxerseree 95
Hình 3.54 Giao diện danh sách chuyên khoa «+ + svEeeeeeesereerseesee 96
Hình 3.55 Giao diện thông tin chỉ tiết chuyên khoa -2: 2 5¿©csz25+ecs2 97
Trang 19DANH MỤC BANG
Bảng 3.1 Đặc tả use-case “Đăng nhập - - HS 1H HH HH ng rệt 34 Bảng 3.2 Đặc tả use-case “Đăng kÍ” -.- c ng TH HH kg 35 Bảng 3.3 Đặc tả use-case “Lich hẹi”” - - cc + 21193119111 111 1H ng ng tr 36
Bảng 3.4 Đặc tả use-case “Tiếp nhận bệnh nhân” - << < << ++++++ss<+eessz 36
Bảng 3.5 Đặc ta use-case “Khám bệnh” 5 2 S5 323119139 ESEErirrreerkrerkrree 37
Bảng 3.6 Đặc tả use-case “Viện phhÍ”” + - + k3 v12 1 111111111 111 1 11H ng ng 38
Bang 3.7 Đặc tả use-case “Bán thuốc tại quầy” -:- 5 s+cz+xczxerkerkerxerxrrerree 39Bang 3.8 Đặc tả use-case “Tra thuốc tại quầy” s- s2cz+s++zxerxerkrreerxerkcres 39Bảng 3.9 Đặc tả use-case “Nhập được nhà cung cấp” -: ¿- ¿+cx+cx+cxssrss 40
Bang 3.10 Đặc tả use-case “Trả được nhà cung cấp” - scxccczxssrxerxcres 41
Bang 3.11 Đặc tả use-case “Danh mục duc” eceeceescceseeeeeeseeeseeeeeeeeeseeeeeeeeeseees 42 Bang 3.12 Đặc tả use-case “Danh mục kho ưỢC ”” ¿+ + +++sx++x+se++ersserees 43
Bang 3.13 Đặc tả use-case “Danh mục dịch VỤ ”” «+ +ssexsseeesseeseeers 43
Bảng 3.14 Đặc tả use-case “Danh mục đối "10:11 — 44
Bảng 3.15 Đặc tả use-case “Danh mục ICTI”” - - 56+ k + k+kEsekEsekeeerseerse 45 Bảng 3.16 Đặc tả use-case “Danh sách phòng khám” ¿+5 <++sx++x+sexsxx 46
Bang 3.17 Đặc tả use-case “Quan lí hồ sơŸ” -2- 2 s+SE+E++E2E£EEEerEerkerkersrree 47
Bang 3.18 Đặc tả use-case “Đặt lịch hen cá nhân” ++- + +++s+++sex+seexssess 47
Bảng 3.19 Đặc tả use-case “Thông tin phòng khám” - s5 ss+s++sxssexess 48
Bảng 3.20 Đặc tả use-case “ “Thông tin bác S”” - sư, 49 Bang 3.21 Đặc tả use-case “Thong tin chuyên khoa” - «cc«csecssesssseesee 49
Bang 3.22 Bang 7.00 61
Bang 3.24 Bảng CHUYENKHOA CS 1 k*kSH HT HH HH Hi Hưệt 62 Bảng 3.25 Bảng PHONGKHAM c2 211 12.11 TH TH HH TH HH HH Hiệp 63 Bang 2Ÿ»? 1.09019504200757 64 Bảng 3.27 Bang PHONGBAN_DICHVU ee eeeeeceeceeeeeeceeeeeeseeeseeeeeeeeeaeeeneeeeeaeees 64 Bang 3.28 Bảng NHOMDICHVU 2G c1 SH HH ng 64
Trang 20Bảng 3.29 Bảng DOTTUOÔNG - Là HH HH kh 65 Bảng 3.30 Bang ICTD LH HH HH TT HH HH Hà Hưng nh gkc 66
Bảng 3.31 Bảng LICHHEN - G1 1k1 S19 1v TH TH ng HH tr, 67 Bang 3.32 Bang BENHNHAN HH HH TH Hàng ng gi gưệt 68
Bảng 3.33 Bảng TIEPNHAN Ặ LH TH HH HH 69 Bảng 3.34 Bảng KHAMBENH_NGOATTRU s55 SSccssesssesseexke 70 Bảng 3.35 Bảng KHAMBENH_NGOATTRU_TOA THUOC - ‹- << 71 Bảng 3.36 Bang KHAMBENH_NGOAITRU_TOATHUOC_ CHITIET 72 Bảng 3.37 Bảng DUOCC G1191 TH TH TH HH nh 73
Bang 3.38 Bảng DONVTTINHH Quên 74
Bảng 3.40 Bang NHACUNGCAP 1.0 cecececceeseesceceeseeseeseeseeseesesaeeseeseceeseeeeeeaeeaeeaeeas 75
Bảng 3.41 Bang DUOC_CHƯNG7TU - - 2G 6 2211231151119 13 11911111 key 77 Bang 3.42 Bang DUOC_ CHUNGTU_ CHITIET” 5- 5555 <£+s++s£<secess 78
Trang 21DANH MỤC TỪ VIET TAT
STT | Từ viết tắt | Từ đầy đủ
1,.| SPA Single Page Application
2.| CSDL Co so dữ liệu
3,| HTTP HyperText Transfer Protocol
4.| API Application Programming Interface
5.| SQL Structured Query Language
6.| GCP Google Cloud Platform
7.| BMI Body mass index
g.| ICD International Classification of Diseases
Trang 22Chương 1 TONG QUAN ĐÈ TÀI
1.1 Giới thiệu đề tài
Trong thời gian qua, ngành y tế tại Việt Nam đã có nhiều khởi sắc và tiến bộ
về trình độ cũng như chất lượng chăm sóc người bệnh Trong đó, việc áp dụng
thành công nhiều tiến bộ về khoa học kỹ thuật và công nghệ vào trong qui trìnhđiều trị, bảo vệ, chăm sóc và nâng cao sức khỏe người dân đã mang lại nhiều kếtquả tích cực Bộ Y tế đã đổi mới mạnh mẽ về cơ chế và phương thức hoạt động của
Y tế Cơ sở đề xây dựng được nền tảng chăm sóc sức khỏe cho nhân dân, góp phầngiảm tải y tế tuyến trên và đáp ứng được yêu cầu cơ bản trong việc chăm sóc sức
khỏe ban đâu cho người dân
Bộ Y tế cho răng Y tế cơ sở là nền tảng, xương sống của hệ thống y tế Việt
Nam Hệ thống này sẽ đảm bảo cung cấp dịch vụ chăm sóc sức khỏe ban đầu toàn
diện, giúp cho mọi người tiếp cận được dịch vụ y tế một cách ít tốn kém nhất
Song song với việc phát triển Y tế cơ sở, đó chính là sự phát triển của cuộc
Cách mạng công nghiệp 4.0 Trong năm 2019, các ứng dụng công nghệ thông tin
trong bảo vệ, chăm sóc, nâng cao sức khỏe ở Việt Nam đã có nhiều bước đột phá.Chúng ta có thé thay sự hiện diện của ứng dụng công nghệ trong khắp các lĩnh vựccủa ngành y, từ Ung dụng bệnh án điện tử; tư van khám chữa bệnh online, thu viện
phí trực tuyén; cho đến hệ thống BHYT quốc gia (VSSID) được triển khai gần
đây, hệ thống phòng chống Covid-19 như BlueZone, Ncovi,
Đến nay, 100% cơ sở khám, chữa bệnh đã có ứng dụng công nghệ thông tintrong quản lí bệnh viện và kết nối liên thông với bảo hiểm xã hội Cả nước đã có
khoảng 30% bệnh viện triển khai thanh toán điện tử không bằng tiền mặt Đây là
minh chứng cho việc công nghệ thông tin đã va đang được ứng dụng rộng rãi trong
ngành Y tế Việt Nam và là nền tảng quan trọng cho việc phát triển công tác khám
chữa bệnh và đảm bảo quyền lợi về y tế và sức khỏe cho người dân Việt Nam
Trang 231.2 Mục tiêu
- _ Mục tiêu chính của dé tài là
= Tìm hiéu kiến trúc Multi-tenancy, áp dụng hướng tiếp cận phù hợp vào
việc xây dựng hệ thống quản lí phòng khám
=» Xây dung một hệ thống quản lí phòng khám tiện dụng cho phòng khám,
bệnh nhân, va dé dàng phát triển, mở rộng cho nhà cung cấp dịch vuphần mềm
= Xây dựng một ứng dụng mobile cho bệnh nhân dé tăng tương tác giữa
bệnh nhân và phòng khám.
1.3 Đối tượng nghiên cứu
- _ Khóa luận này hướng đến nghiên cứu các đối tượng sau:
- Déi tượng đề tài hướng đến:
= Phòng khám có nhu cau quản lí sử dung ứng dụng công nghệ thông tin
= Bệnh nhân đến khám ở các phòng khám này
1.4 Phạm vi nghiên cứu
Ứng dụng quản lí phòng khám được xây dựng bằng công nghệ ASP.NET Core
cho các RESTful Service và Angular cho giao diện người dùng.
1.5 Phương pháp nghiên cứu và nguồn số liệu
1.5.1 Phương pháp nghiên cứu Nhóm đã sử dụng các phương pháp nghiên cứu:
Trang 24- _ Nghiên cứu, đọc tài liệu về các vấn đề liên quan
- Phân tích các phần mềm, ứng dụng hiện có
Nhóm tập trung tìm hiểu về các công nghệ được áp dụng dé xây dựng hệ thống
phòng khám Trong đó, các công nghệ chính được sử dụng gồm ASP.NET Core,Angular, React Native, SQL Server, kiến trúc Multi-tenancy Ngoài ra, nhóm còntham khảo các ứng dụng quản lí phòng khám đang có trên thị trường hiện nay déchọn hướng phát trién phù hợp
1.5.2 Nguồn dữ liệu
Nhóm đã chọn nguồn dữ liệu cho luận văn từ nguồn đáng tin cậy: Công thông tinđiện tử thuộc Bộ Y tế - https://moh.gov.vn/
1.6 Diém mới của luận văn
Các ứng dụng quản lí phòng khám hiện nay trên thị trường chủ yếu sử dụng công
nghệ cũ và theo mô hình cài đặt ứng dụng sử dụng trực tiếp trên máy Với luận vănnày, ứng dụng được xây dựng trên nền tảng web và được triển khai với mô hình hệthống phân tán, giúp cho việc cài đặt, sử dụng và tiếp cận người dùng cuối dễ dàng
hơn rât nhiêu.
Ngoài ra ứng dụng của nhóm được xây dựng với kiến trúc Multi-tenancy Điều nàygiúp cho các phòng khám sử dụng hệ thống này có thể quản lí các tài nguyên riêng
của mình một cách độc lập chỉ thông qua việc đăng nhập vào tài khoản của mình và
không phải cài đặt hay triển khai ứng dụng cho từng phòng khám riêng biệt
Trang 25Chương2 CƠ SỞ LÍ THUYET
2.1 Tổng quan về kiến trúc Multi-tenancy
2.1.1 Khái niệm
Cụm từ “software multitenancy” dùng dé miêu tả một loại kiến trúc phầnmềm mà trong đó, một thể hiện của phần mềm đó được triển khai trên server và
dùng dé phuc vu nhiéu người thuê (tenants) Cu thé là, một tenant có thé là một
khách hàng doanh nghiệp hay cá nhân của dịch vụ phần mềm này, và họ có quyền
và khả năng truy cập vào một số tài nguyên nhất định trong thê hiện của hệ thống
Single Tenant Multi-Tenant
tenancy đối lập với các kiến trúc single-tenancy thông thường, trong đó mỗi
tenant sử dụng riêng một instance của hệ thống được triển khai riêng cho đúng
tenant đó.
Trang 262.1.3 Ưu điểm và nhược điểm của Multi-tenancy
2.1.3.1 Ưu điểm
Giảm thiểu chỉ phí:
= Đây là ưu điểm quan trọng nhất Kiến trúc Multi-tenancy cho phép
người dùng và cả nhà phát triển tiết kiệm được rất nhiều chi phí bằngcác tổ hợp lại qui trình triển khai ứng dụng cho các tenant
Lấy ví dụ: mỗi tenant phải tự triển khai một hệ thống của mình, trong
đó mỗi hệ thống sẽ phải chiếm memory và overhead không dùng cho
nghiệp vụ của tenant đó Bên cạnh đó mỗi tenant phải chỉ riêng phí bản
quyền cho các phần mềm khác được sử dụng (như hệ điều hành,
database )
Bằng cách ứng dụng multi-tenancy, chúng ta với tư cách là nhà phát
triển chỉ cần triển khai đúng một hệ thống để dùng chung cho tất cảtenants Điều này làm giảm được nhiều overhead dẫn tới chi phí không
đáng có Ngoài ra, việc lisensing cũng trở nên dễ hơn vì chúng ta chỉ
triển khai đúng một hệ thống
Những yếu t6 trên chung qui lại là kiến trúc multi-tenancy sẽ giúp
chung ta scale hệ thông dễ dang hơn va theo nhu cầu của các tenants và
nhà phát triển Không bị phí phạm, thừa thai tài nguyên do nhu cầu sửdụng của các tenants không đồng đều
Khai thác dữ liệu
“ Với mô hình truyền thống, mỗi tenant sẽ sử dụng bộ dữ liệu riêng trong
một nguồn dữ liệu riêng Bên cạnh đó, các nguồn dữ liệu này còn có
thé có các thiết kế khác nhau Do đó việc thu thập di liệu người dùng
sẽ trở nên khó khăn hơn.
Với mô hình Multi-tenancy, các tenants sẽ sử dụng chung một nguồn
dữ liệu với thiết kế như nhau Khi đó việc thu thập dữ liệu sẽ trở nên dễ
dàng hơn Chúng ta với tư cách là nhà phát triển sẽ biết được nhu cầu
Trang 27và các xu hướng của người dùng người dùng, từ đó phát triên được hệ
thống tốt hơn
- _ Triển khai các bản phát hành dễ hơn
“ Với mô hình truyền thống, chúng ta phải đóng gói mã nguồn và thay
đôi database, sau đó mới triển khai cho khách hàng trên server của họ.Khi scale lên, việc này sẽ trở nên tốn thời gian rất nhiều khi lượng khách
hàng lớn.
Multi-tenancy giúp cho việc phát hành phiên bản phần mềm mới dễ
dàng hơn đến khách hàng Một phiên bản chỉ cần được triển khai trên
một server và tat cả tenants đêu sẽ sử dụng được.
2.1.3.2 Nhược điểm
- Van đề về tùy chỉnh cho khách hang
Một hệ thống mult-tenancy thường sẽ có nhiều khách hang sử dụngchung Cho nên việc cho khách hàng có thê tùy chỉnh được hệ thống củamình theo nhu cầu của họ là rất cần thiết
Một số vấn đề về việc tùy chỉnh bao gồm: Thương hiệu và tính thâm mỹ
của khách hàng, Luéng và qui trình làm việc của khách hang, Mô hình
dữ liệu dé thay đối, Quyền truy cập hệ thống và dữ liệu của từng khách
hàng,
- Chat lượng của dịch vụ
Hệ thống phải đảm bảo chất lượng về bảo mật, tính khả dụng và hiệu
năng cho các tenants, thông thường là nhờ vào việc triển khai tài nguyên
hệ thống bởi nhà phát triển
- Phức tạp
Do phải cung cấp nhiều tùy chỉnh và lưu trữ siêu đữ liệu cho từng khách
hàng, hệ thống multi-tenancy cần nhiều nguồn lực phát triển hơn
Bên cạnh đó, nhà phát triển phải lo về các vấn đề gây ảnh hưởng đến hệ
thống do được sử dụng chung cho tat cả tenants
Trang 282.2 Tổng quan về ASP.NET Core và ASP.NET Boilerplate
2.2.1 Giới thiệu ASP.NET Core
ASP.NET Core là một web framework mã nguồn mở và miễn phí, kế thừa từ
ASP.NET và được phát triển bởi Microsoft
ASP.NET Core được viết tại từ đầu và hợp nhất ASP.NET MVC và ASP.NET
Web API thành một mô hình lập trình chung duy nhất
Một số tính năng khi sử dụng ASP.NET Core bao gồm:
Xây dựng ứng dụng web va web services, ứng dụng IoT, và backends cho mobile
Sử dụng các công cụ phát triển trên các nền tảng khác nhau bao gồm Windows,
macOS và Linux
Dễ dàng triển khai và tích hợp với dịch vụ cloud Azure của Microsoft
Chạy trên nền NET Core — nền tảng chung cho các sản phẩm phát trién phần mềm
của Microsoft.
Nhóm quyết định sử dụng ASP.NET Core vì các lí do sau:
Dễ dàng xây dựng RESTful APIs làm backend cho các ứng dụng frontend
Cấu trúc phần mềm dễ hiéu và phát trién
Chạy được trên nhiều nền tang và công cụ phát trién khác nhau
Mã nguồn mở và cộng đồng lớn mạnh
Các tinh năng có sẵn hữu dụng như dependency injection, http request pipeline
2.2.2 Giới thiệu ASP.NET Boilerplate
ASP.NET Boilerplate (ABP) là một framework mã nguồn mở và gồm tài liệu
hướng dẫn đầy đủ và chỉ tiết Bên cạnh đó, ABP còn cung cấp sẵn một kiến trúc
phần mềm dựa trên Domain Driven Design (DDD) và nhiều best practices ABP
bao gồm phiên bản được viết trên ASP.NET Core và dễ sử dụng
Trang 29aa eS fj b5 sis eae ues S286 6286 Se eee ee ee eee S55 S6
suo‡p2iiddy u2Áo* J2Á0* 22IAJ2G dado} u2dv7] J2Á01
4212 01104U2S21d paynquysiq uoI+p2iqddy ipuioq 2un12nA1SD.JMT Service Layer Distributed
Trang 30Lớp Client Applications
Đây sẽ là lớp bao gồm các client frontend sử dụng các web APIs thông qua giao
thức HTTP của các Controller Các client có thé là một ứng dụng SPA (Single PageApp) ứng dụng mobile hoặc là một đối tượng bên ngoài
Lớp Presentation
Có thé xem như tương tự lớp client app nhưng ở đây ABP sử dung ASP.NET
[Core] MVC để hiển thị giao diện người dùng Lớp này có thể được cài đặt ở một
project khác hoặc ở trong cùng project với các lớp backend khác.
Lớp Distributed Service
Đây là lớp dùng để giao tiếp với các thành phần frontend thông qua các APIs như
REST, Odata, GraphQL, Ở đây không chứa logic về nghiệp vụ và chỉ dùng dé xử
lí các HTTP requests
Lớp Application
Ở đây, hệ thống sẽ dùng các domain service và object ở lớp Domain để thực hiện
các chức năng hệ thống và chuyên đổi giữa các DTO dé lấy và tra dữ liệu
Lớp Domain
Đây sẽ là lớp chính của chúng ta đề chứa các logic về nghiệp vụ Trong đây bao
gồm các Entities, Objects, Services dé thực hiện các chức năng nghiệp vụ Đặc biệt
là lớp này phải không phụ thuộc vào bắt kì các lớp nào khác
Lớp Infrastructure
Đây sẽ là lớp cuối cùng trong chu kì của một request khi hệ thống sẽ gọi đến các
repository (cài đặt bằng Entity Framework Core) đề truy van xuống CSDL
Trang 31Đây thật sự không phải là multi-tenancy, tuy nhiên ta vẫn có thé chạy nhiều
instance của hệ thống cho từng tenant với nhiều CSDL trên cùng một server thì ta
về lí thuyết vẫn có thê chạy cho nhiều tenants cùng một lúc Đây không phải là
hướng tiếp cận tốt và thường dùng cho việc chuyên đổi ứng dụng có sẵn không sử
dụng multi-tenancy sang multi-tenancy.
Một ứng dụng — nhiều CSDL
Với cách tiếp cận này, chúng ta sẽ có một ứng dụng duy nhất chạy trên server và
một CSDL master dé chứa siêu dữ liệu của các tenant và các CSDL riêng cho từngtenant Khi một tenant sử dụng hệ thống, thông qua định danh sẽ chuyên các chức
năng qua sử dụng tài nguyên của tenant đó.
Một ứng dụng - một CSDL
Đây là hương tiếp cận tối ưu nhất cho kiến trúc multi-tenancy Chúng ta chỉ triển
khai một ứng dụng và một database trên cùng một server Chúng ta sẽ sử dụng
trường Tenantld trong bảng CSDL dé phân biệt các tài nguyên của các tenant khácnhau Nhóm đã quyết định sử dụng hướng tiếp cận này
2.3 Tổng quan về Microsoft SQL Server
Microsoft SQL Server là một hệ quản trị CSDL mô hình quan hệ được phát triển
bởi Microsoft Đây là một sản phẩm của Microsoft phục vụ cho việc sử dụng nó
như một server CSDL, dùng dé truy vấn, lưu trữ dit liệu bởi những ứng dụng, phan
mêm khác chạy cùng server hoặc phân tán ở server khác Hệ quan tri này có nhiêu
10
Trang 32phiên bản khác nhau nhăm hướng đên nhiêu nhu câu sử dụng khác nhau của nhà
phát triển
Một số phiên bản phổ biến của hệ quản trị này như:
- SQL Server Enterprise Edition
- SQL Server Standard edition
- SQL Server Express Edition
Nhóm quyết định sử dung SQL Server Express Edition vi các lí do sau:
- Mién phi, phù hợp với khối lượng dữ liệu của một luận văn
- Bao gồm các tinh năng chính của các phiên bản khác và không có các tính năng
phụ trợ không cần thiết.
- Van có thé sử dụng trong môi trường phát triển bình thường như các phiên bản
khác.
2.4 Tổng quan về công cụ dbForge Studio
2.4.1 Giới thiệu dbForge Studio for SQL Server
dbForge Studio for SQL Server là một IDE sử dụng cho việc quản lí Microsoft
SQL Server Công cụ này giúp việc thực thi các công việc như thiết kế CSDL,
viết mã SQL, so sánh CSDL, đồng bộ hóa CSDL một cách dễ dàng hơn
Bằng cách sử dụng dbForge Studio for SQL Server, chúng ta không cần phải sử
dụng SQL Server Management Studio (SSMS) thông thường và phải mua hay tìm
II
Trang 33thêm plugin nữa.
Sanders +
* % ma 2 = € @ = i re |
*Š Edit Comparison Gì ~ Y ® ‘@ Synchronize
© XK @
BEGIN DECLARE
SET CASE
WHEN 1 THEN N WHEN 2 THEN N WHEN 2 THEN N
WHEN 3 THEN N WHEN 4 THEN N ELSE N ELSE N
dbForge Studio cung cấp cho ta một số tính năng hữu dụng như sau:
- SQL code assitance: hỗ trợ gợi ý và chỉnh sửa code SQL
- Table & Database designer: hỗ trợ thiết kế và chỉnh sửa CSDL thông qua giao
diện người dùng.
- Schema compare: hỗ trợ so sánh schema giữa các CSDL với nhau và đồng bộ
hóa các CSDL đó về schema
- Data compare: hỗ tro so sánh dữ liệu giữa các CSDL với nhau và đồng bộ hóa
dữ liệu của các CSDL đó với nhau
- Data editor: hỗ trợ sửa, xóa, thêm va lọc, tìm kiếm dữ liệu trong CSDL thông
qua giao diện người dùng
12
Trang 34- Backup CSDL: hỗ trợ backup bản sao CSDL tại một thời điểm nao đó dé hỗ
trợ rollback khi cần thiết
Nhờ các tính năng trên mà nhóm đã tận dụng được một sô ưu điêm sau:
- Tang hiệu qua quan lí và sử dụng CSDL:
= Việc quản lí schema và dữ liệu của CSDL trở nên dễ dang hơn với các
công cụ có san, triển khai CSDL nhanh hơn đề sử dung cho phát triển
ứng dụng.
= Dễ dàng xử lí các tình huống bất ngờ nảy sinh trong quá trình phát
triển ứng dụng.
- Dễ sử dụng và tài liệu tham khảo đầy đủ:
= Đây là một sản phâm hướng tới người dùng chính là các nhà phát triển
nên các thao tác về CSDL luôn có tính năng hỗ trợ
= Tài liệu sử dụng day đủ, dé đọc
2.5 Tổng quan về TypeScript
Ngôn ngữ mà nhóm đã dùng đề xây dựng ứng dụng quản lí bằng framework
Angular là TypeScrIpt.
2.5.1 Khái niệm
TypeScript là một ngôn ngữ lập trình được phát triển và bảo trì bởi Microsoft.
TypeScript chính là một tập bao trùm lên JavaScript, nghĩa là được xây dựng với
các tính năng của JavaScript, và gồm các tính năng kiểm tra kiểu và lỗi ở thời điểm
compile, kiểu tĩnh và lớp hướng đối tượng nghiêm ngặt Khi biên dịch, TypeScript
sẽ được chuyên sang JavaScript để chạy chương trình
TypeScript hỗ trợ các chức năng như lớp đối tượng, modules và arrow function
được miêu tả trong ECMAScript 2015 Standard.
2.5.2 Dac diémMột số tinh năng nổi bat của TypeScript được bổ sung cho ECMAScript như sau:
- Annotations cho kiêu dữ liệu và kiêm tra kiêu đữ liệu thời gian compile
13
Trang 35Tự động nhận biết kiểu dữ liệu
Ép kiểu và xóa kiểu
Tinh năng không block async/await
2.5.3 Tai sao nên sử dụng TypeScript
TypeScript mang lại nhiều ưu điểm và lợi ích nỗi bật sau:
Năng suất và tính bền vững: cú pháp của TypeScript rõ ràng và súc tích vớinhiều công cụ gợi ý được phát triển và bảo trì thường xuyên Tính năng type-safe và kiểm tra compile time sẽ giúp lập trình viên tránh được lỗi sớm nhất có
thé Ngoài ra hệ thống type giúp cho việc đọc và bảo trì mã nguồn dé dàng hơn
nhiều
Nhanh và tiện lợi: TypeScript thật chất được chuyên đổi sang JavaScript khichạy cho nên vẫn sẽ nhận được nhiều lợi thế từ việc chạy trên browser hay cácJavaScript engine được tối ưu rất tốt
Dé gan và dé sử dụng: Đối với lập trình viên JavaScript, họ có thé chuyền đổi
sang TypeScript một cách dé dang do nó thật chat chỉ là JavaScript được bé
sung các tính năng mới Ngoài ra, các lập trình viên hướng đối tượng sử dụngC++, C#, Java, vẫn có thể chuyền đôi sang một cách dễ dàng nhờ các khái
niệm OOP vẫn được sử dụng.
2.6 Tổng quan về Angular
2.6.1 Khái niệm
Angular (thường còn được gọi là “Angular 2+” hay “Angular v2 trở lên” là một
framework mã nguồn mở dùng để xây dựng ứng dụng web sử dụng TypeScript
14
Trang 36được phát triển và bảo trì bởi Google Angular một phiên bản được viết lại hoàn
toàn từ AngularJS.
Thông thường, Angular được sử dụng để xây dựng một ứng dụng web dùng làm
frontend cho hệ thống dé người dùng cuối có thé sử dung Angular cung cấp các
tính năng để xây dựng một giao diện người dùng phức tạp và hiệu năng tốt,
module hóa được các thành phan giao diện dé tái sử dụng mã nguồn
| Grand Child Grand Child
Compone® sinding “emplate
‘Binding
Hình 2.4 Kiến trúc cơ bản của một ứng dung Angular
Một số khái niệm cơ bản trong Angular bao gồm:
- Component: đây là một thành phan cơ bản xây dựng nên một ứng dụng
Angular Một component bao gồm một lớp TypeScript, một template HTML
và styles Các đoạn mã nguồn trong lớp TypeScript sẽ tạo nên các tương tác
15
Trang 37với người dùng thông qua binding với HTML template Thông thường một
component sẽ tương ứng với một thành phan giao diện trên ứng dụng
Template: mỗi component sẽ bao gồm một HTML template để miêu tả thành
phần giao diện đó gồm những gì mà được hiền thị ra sao Đây có thể xem làmột đoạn mã HTML nhưng bao gồm một số cú pháp bổ sung của Angular dé
tạo nên một component hoàn chỉnh
NgModule: một ứng dụng Angular được hướng đến việc module hóa các thành
phần của nó Trong đó, Angular đã định nghĩa một khái niệm gọi là NgModule.Các NgModule này chứa các thành phần khác của Angular như component,service, directive, nhăm mục dich phân chia và tổ chức mã nguồn một cáchgon gàng nhất
Dependency Injection: trong một ứng dụng Angular, ta có thể định nghĩa các
service dé thực hiện một chức nang nghiệp vu nào đó ma không liên quan đếnthành phần giao diện Và bên canh đó là Angular cung cấp một hệ thống
dependency injection, dùng dé cung cấp các service này cho các component déchúng có thể thực hiện các chức năng nghiệp vụ và hiển thị cho người dùng
Binding: bao gồm one-way và two-way binding dùng dé liên kết giữa các thànhphần giao diện với các chức năng của thành phần đó Việc này giúp cho giaodiện của một ứng dụng Angular có tính tương tác với người dùng rất tốt
16
Trang 38{ }
Metadata —
Binding Property
Hình 2.5 Cách hoạt động của một component Angular 2.6.2 Tại sao sử dụng Angular
Angular cung cấp cho nhà phát triển nhiều lợi ích có thê ké đến như:
Phát triển đa nền tang
Angular hỗ trợ cho chúng ta phát triển ứng dụng với một mã nguồn duy nhất và
triển khai ứng dụng đó ra nhiều nền tảng khác nhau như web, web mobile, native
mobile và native desktop
Hiéu nang
Angular được tối ưu hóa bởi Google và mang lại hiệu năng tốt nhất cho ứng dung
trên nên tảng web, và hơn thê nữa, thông qua Web Workers và server-side
rendering.
Angular đề cao van dé scalability bằng cách giúp giải quyết các van đề về yêu cầu
không lồ về dữ liệu, tính liên kết chặt chẽ với ứng dụng khác và tinh module hóa
Công cụ phát triển vượt trội
Xây dựng ứng dụng Angular được hỗ trợ bởi các công cụ hữu ích trên các IDE và
editor Từ đó việc nâng cao năng suất của lập trình viên và việc xây dựng ứng
dụng được đơn giản hóa và tối ưu nhất
17
Trang 39Cộng đồng to lớn
Angular được sử dụng rộng rãi từ việc xây dựng prototype cho đến triển khai ứngdụng doanh nghiệp với kích cỡ không lồ băng cách tối ưu năng suất và tính
scalability, tương thích với các cơ sở hạ tầng hiện nay
2.7 Tổng quan về React Native
2.7.1 Khái niệm
React Native là một framework mã nguồn mở dùng dé xây dựng ứng dụng
mobile, được phát triển bởi Facebook, Inc Lập trình viên có thé phát triển ứng
dụng cho các nền tảng như Android, iOS, Android TV, tvOS, macOS, Windows
va UWP chi với React Native kết hợp với một số tính năng nền tang đó
2.7.2 Cách thức hoạt động
Trong phát triển ứng dung Android, chúng ta viết các giao diện bằng Kotlin hoặcJava; trong iOS thì là Swift hoặc Objective-C Với React Native, chúng ta có thégọi đến các thành phần giao diện này thông qua JavaScript và các React
components Tại thời điểm runtime, React Native sẽ tạo các giao diện Android
hay iOS tương ứng với các component đó.
Nhìn quan, React Native gồm các thành phần chính sau:
- Native Code/Modules: Đây là code ở các nền tang native, cụ thé trong iOS là
Objective-C hoặc Swift, trong Android là Java hoặc Kotlin Tuy nhiên khi viết
app băng React Native, chúng ta thường ko viết bằng native code
- JavaScript VM: đây là một máy ảo JS Virtual Machine dùng dé chạy tất cả
các mã nguồn JavaScript của chúng ta
- React Native Bridge: đây là một cầu nối viết bang C++/Java chịu trách nhiệm
cho việc giao tiép giữa JavaScript va môi trường native.
18
Trang 40Hình 2.6 Các thành phần chính khi React Native thực thi
2.7.3 Tại sao sử dụng React Native
Viết mã nguồn bang JavaScript và thực thi bang native code
React Native sẽ render các thành phần giao diện của chúng ta thông qua native
platform UI, có nghĩa là giao diện trực tiếp của nền tảng native và chúng ta có thể
sử dụng các APIs san có của nền tảng đó
Fast Refresh
React Native hỗ trợ cho lập trình viên có thê thấy được thay đổi tức thì khi phát
triển ứng dụng Nhờ đó mà lập trình viên không phải đợi cho ứng dung build và
có thể lập trình liên tục
Phát triển các ứng dụng đa nền tảng
Chúng ta có thé phát triển ứng dụng trên nhiều nền tảng khác nhau chi với một
mã nguồn duy nhất viết bằng JavaScript và ReactNative
Mã nguồn mở và miễn phí
React Native cho phép chúng ta sử dụng dé phát triển ứng dung native rất nhanhchóng mà không phải tốn phí Đồng thời nó cũng là một dự án mã nguồn mở nên
có thé được dam bảo bởi cộng đồng
Tài liệu chỉ tiết và liên tục cập nhật
Các nhà phát triển và cộng đồng React Native luôn nỗ lực để cập nhật tài liệu
tham khảo một cách dé hiệu và t oan diện nhat.
19