1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu Java Spring boot và áp dụng để phát triển ứng dụng theo dõi thai kỳ và khám chữa bệnh cho trẻ sơ sinh

92 3 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 15,28 MB

Nội dung

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

DO AN

TOT NGHIEP DAI HOC

Dé tài: “Tim hiếu Java Spring boot và áp dung dé phát triển ứng dung theo dõi thai kỳ va khám chữa bệnh cho trẻ sơ sinh”?

Người hướng dẫn: ThS Vũ Thị Tú Anh

Sinh viên thực hiện: Trần Trung Hiếu

Lớp: D19PTDPT

He: Dai hoc chinh quy

HÀ NỘI - 2023

Trang 2

Đồ án tốt nghiệp Đại học Đề cương đề tài

PHÊ DUYỆT, GIAO NHIỆM VỤ ĐỀ TÀI

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG CONG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐA PHƯƠNG TIỆN Độc lập - Tự do - Hạnh phúc

Họ và tên sinh viên: TRẦN TRUNG HIẾU

Lớp B19PTDPTKhéa 2019-2023

Ngành đào tạo Công nghệ đa phương tiện Hệ đào tạo Đại học chính quy

1 Tên đồ án/Khóa luận tốt nghiệp:

Tìm hiểu Java Spring boot và áp dụng để phát triển ứng dụng theo dõi thai kỳ

và khám chữa bệnh cho trẻ sơ sinh

2 Ly do chọn đề tài:

Trẻ sơ sinh đang trong giai đoạn phát triển quan trọng, và việc theo dõi thai kỳ

và chăm sóc y tế cho họ là điều cực kỳ quan trọng Ứng dụng này giúp bố mẹ theo dõi

sát sao sự phát triển của thai kỳ và đảm bảo rằng trẻ được chăm sóc tốt từ khi mới

Việc quản lý lịch khám, theo dõi sổ khám và đăng ký khám cho thai phụ, trẻ sơ

sinh thường gây ra nhiều phiền toái cho phụ huynh Ứng dụng này giúp đơn giản hóa

quá trình này, giúp thai phụ có thể đăng ký khám, theo dõi thai kỳ nhanh chóng, đơn giản hơn, phụ huynh quản lý sức khỏe của trẻ dễ dàng hơn, tiết kiệm thời gian và giảm bớt căng thang.

Ứng dụng này cung cấp cơ hội cho các chuyên gia y tế theo dõi tình trạng thai

kỳ và sức khỏe của trẻ sơ sinh một cách hiệu quả hơn Điều này có thể giúp phát hiện và giải quyết vấn đề sức khỏe sớm hơn, đảm bảo sự phát triển toàn diện cho cả mẹ và

Xây dựng ứng dụng sẽ tích hợp công nghệ và thông tin, tạo cơ hội cho việc thu

thập dữ liệu quan trọng về sức khỏe trẻ sơ sinh và thai kỳ Những dữ liệu này có thể được sử dụng cho nghiên cứu y tế và cải thiện chăm sóc sức khỏe trẻ trong tương lai.

Trần Trung Hiếu - DI9PTDPT 2

Trang 3

Đồ án tốt nghiệp Đại học Đề cương đề tài

Đặc biệt trong thời đại số hóa, việc có một ứng dụng giúp truy cập thông tin liên quan đến sức khỏe trẻ một cách nhanh chóng và dễ dàng Nó giúp phụ huynh và người tham gia quá trình chăm sóc sức khỏe tiếp cận thông tin quan trọng một cách

thuận tiện.

Vì vậy, đề tai “Tim hiểu Java Spring boot và áp dung để phát triển ứng dụng theo dõi thai kỳ và khám chữa bệnh cho trẻ sơ sinh” có tiềm năng cải thiện chất lượng

chăm sóc sức khỏe cho trẻ sơ sinh và giúp thai phụ thêm thoải mái trong quá trình theo dõi và quản lý sức khỏe của con cái mình.

3 Nội dung chính của đồ án:

Đồ án được chia làm các chương như sau:

Chương 1: Tống quan về đề tài Chương này miêu tả bài toán và các chức năng của hệ thống.

Chương 2: Phương pháp tiếp cận và giải quyết vấn đề.

Chương này sẽ trình bày phương pháp xây dựng hệ thống bằng việc ứng dụng các

công nghệ

Chương 3:Xây dựng hệ thống.

Chương này sẽ trình bày theo thứ tự các bước trong quá trình phát triển phần mềm để xây dựng hệ thống, bao gồm:

- Mô tả hệ thống bằng ngôn ngữ tự nhiên (Các tác nhân tham gia hệ thống và danh sách các chức năng có thể sử dụng tương ứng)

- Mô tả hệ thống bằng UML( biểu đồ use case) - _ Xây dựng cơ sở dữ liệu

- Kịch bản chuẩn và ngoại lệ - _ Thiết kế lớp thực thé

- _ Thiết kế động: biểu đồ tuần tự

- _ Thiết kế, xây dựng giao diện

Trần Trung Hiếu - DI9PTDPT 3

Trang 4

Đồ án tốt nghiệp Đại học Đề cương đề tài

Kết luận: Đưa ra kết quả, hướng phát triển tiếp theo và kết luận của việc xây dựng hệ thống.

GIẢNG VIÊN HƯỚNG DẪN SINH VIÊN THỰC HIỆN(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)

Trang 5

Đồ án tốt nghiệp Đại học Lời cảm ơn

LỜI CẢM ƠN

Để hoàn thành khóa luận này, em xin chân thành cảm ơn các thầy cô đã

tận tình hướng dẫn, giảng dạy trong suốt quá trình 4 năm học tập, nghiên cứu và rèn luyện tại Học viện Công nghệ Bưu Chính Viễn Thông.

Đặc biệt, em xin chân thành cảm ơn cô Vũ Thị Tú Anh, người đã tận tình

giúp đỡ, hướng dẫn em trong suốt quá trình hoàn thành khóa luận này.

Mặc dù em đã cố gắng để thực hiện khóa luận một cách hoàn chỉnh nhất

có thể, song vì kiến thức của bản thân còn hạn chế, trong quá trình hoàn thiện khóa luận này em không thể tránh khỏi nhiều sai sót Vậy em mong nhận được

sự góp ý của quý thầy cô và bạn bè để giúp khóa luận của em hoàn thiện hơn

Trang 6

LOT CAM ƠNN s< sen HH H700718 718007140118 07100708 778007182780 0709 2782781 07082780 0709020807010

10/08 05/0554 ÔÔÔÔÔÔ 0.0 ):800i909.(09.7.) c7 Ô

MỞ ĐẦU 5< 4H 0T 070 7Đ4 7744 02940794 0724072440944 0794 0294102711 021E CHUONG I: TONG QUAN VỀ HEALTHHUB SCHEDUL/E - 5-5 5° ssssesseseseesss

1 Giới thiệu bài tOáh: - c2 1 112223011111 2530 11111893011 1H 11g KT ng SE

"ˆÄ\ n8: 211117 2.1 Pham vi hé 0 1n 2.2 So đồ tổng quát chức năng của hệ thOng? ce eceesesscessesseeseeseeeeeseceseesseesecseeseseeeeeessessneeesgs 2.3 Các tác nhân tham gia hệ thỐng: - - 2c 3133213311121 3931 31151111111 111 1 T1 11 H1 g1 nà re 2.4 Các chức năng của hệ thống - - ¿tt E112 E 1E E91 191 9111 91 1111 111 HT Hàn Hàn nàng

2.4.1 Đăng nhập - Quản lý thông tin cá nhân: - - - 5 11 11191011211 911191 1v ng ng.

2.4.2 Nhóm chức năng: Người quản lý hệ thống: - - - 5+2 ++2*+2£+2£+E+EssErsrrrrrrrkreo

2.4.3 Nhóm chức năng thai phỤ: - - - c1 22 3221132113311 3351 1183111111 11181111 111811 g1 vn kg

2.4.4, NhOm 09/)(.20 i50 cà: 1n ea

2.4.5 Nhom chic nang bénh VIN! 0n e

Trần Trung Hiếu - DI9PTDPT 6

Trang 7

Đồ án tốt nghiệp Đại học Mục lục

- Quản lý danh sách thai phụ: cho phép Cơ sở y tế quản lý thông tin của thai

phụ có thể thêm, sửa, xóa, tìm kiếm thông tin thai phụ - 5 5c +25 * 3+ *+vxvexsexeersesres

Trần Trung Hiếu - DI9PTDPT 7

Trang 8

2.1 Kịch bản chuẩn và ngoại lỆ - - c5 2 S1 21121121 133111 111111111111 11 111111111 11 T1 HH Hà Hàn ri,

2.1.1 Nhóm chức năng của “Quản trị hệ thống”” - +22 +22 23 2111121111111 1111111111111 re

2.1.2 Nhóm chức năng của “Bệnh VIỆP” - ¿c2 21121181211 11311111 111111111 11101118111 11 ng 2.1.3 Nhóm chức năng của “Người dùng thƯỜng” - . - + 1323113 3135115111111.

Trang 9

Đồ án tốt nghiệp Đại học Danh mục các bảng

DANH MỤC CÁC BẢNG

BANG 3.1: Kịch bản chuẩn tạo mới tài khoủn -c ccc ca 45 BANG 3.2: Kịch bản chuẩn cập nhật tài khoản -.- 25c 25+ c5 s246 BANG 3.3: Kịch bản chuẩn xóa tài khoản che 47

BANG 3.4: Kịch bản chuẩn tạo mới sỞ y FẾ -.S c2 S se 48

BANG 3.5: Kịch bản chuẩn cập nhật sO y tẾ -cc {2S S22 S221 c% 49 BANG 3.6: Kịch bản chuẩn xóa sởỞ y Ế - 2S c⁄ 221221323 xs2 50 BANG 3.7: Kịch bản chuẩn Tạo mới bệnh viện -cccc s25 cccscsSss s2 51

BANG 3.8: Kịch bản chuẩn cập nhật bệnh viện -<<cc<<5 << 52

BANG 3.9: Kịch bản chuẩn xóa bệnh viỆn cece eect ntneene ee eeetane 53 BANG 3.10: Kịch bản chuẩn tạo mới bác sĩ cĂ ket 54 BANG 3.11: Kịch bản chuẩn cập nhật bác sĩ -Ặ c2 c2 ees 56

BANG 3.12: Kịch bản chuẩn xóa DGC sĩ cc Sex sei 57

BANG 3.13: Kịch bản chuẩn tạo mới ca [FỰC ke se 58 BANG 3.14: Kịch bản chuẩn cập nhật ca trực ccccccsccSSSs se 59 BANG 3.15: Kịch bản chuẩn xóa ca fFỰC cv Sky 60

BANG 3.16; Kịch bản chuẩn tạo mới sổ khám -.-.- << Sex seẻ 61 BANG 3.17: Kịch bản chuẩn cập nhật sổ khá Ặ << 2c 2c +4 62

BANG 3.18: Kịch bản chuẩn xóa sổ khám -ĂẶ xe 63 BANG 3.19: Kịch bản chuẩn cập nhật tài khoản << c2 SS 64

BANG 3.20: Kịch bản chuẩn theo dõi thông tin 86 khám cues65 BANG 3.21: Kịch bản chuẩn liên kết tegram tới tài khoản - 66

BANG 3.22: Kịch bản chuẩn đặt lich online 55c c+< s2 S2 67

BANG 3.23: Các lớp thực thỂ cece cece eee ec eaten eee nh re 70 BANG 3.24: Thuộc tính của các thực thể ccằẰ 72 BANG 3.25: Bảng thiết kế API chỉ tiẾT Ặ Ăn sen 78

Trần Trung Hiếu - DI9PTDPT 9

Trang 10

Đồ án tốt nghiệp Đại học Danh mục các hình vẽ

DANH MỤC CÁC HÌNH VẼ

HÌNH 1.1: Biểu đồ usecase tỔng qUÁT Ă 2222566111251 1 1111111151111 xe 14

HÌNH 2.1: Sơ đồ mô hình của hệ thỐng, - c5 S222 33+ zei 22 HÌNH 2.2: Ví dụ không sử dung Dependency ÏnjeCfiOH 55555552 26 HÌNH 2.3: Định nghĩa iHt€T[WC€ c2 E E521 1111111111311 1 11 11k te 27 HÌNH 2.4: Hiện thực ( Implement) IHÍ€TƒQC€ cv vê 27 HÌNH 2.5: Spring MOdiHles Ặ c2 6111111111111 11 11 11511111111 1551k ưe 28 HÌNH 2.6: Ví du publish Spring RE.ST Ă c2 S112 S S1 xxx vn 31 HÌNH 2.7: Xác thực qua HTTP Basic (Ì) Ác S121 sec33 HÌNH 2.8: Xác thực qua HTTP BASIC (2) - SE re 33 HÌNH 2.9: Mô hình lazy loading - - Sc 11221111111 1151 1111111 55tr rờ35

HÌNH 2.10: OAuth 2.0 FÏOW 1111113 11 E111 1kg HÌNH 3.2: Màn hình đăng ký tài khoủi -c c2 SE sưên 68

HÌNH 3.3: Màn hình quản lý thông tin sỞ y IẾ - c2 52c S S132 xe 69

HÌNH 3.4: Màn hình đặt lịch khám chinh 69

HÌNH 3.5: Mối quan hệ giữa các thực thể trong cơ sở dit liệu 76

HÌNH 3.6: Mô hình kiến trúc APÌ - ST SE S111 SE 1111k xxx ưn77

HÌNH 3.7: Biểu đồ tuần tự chức năng thêm mới sổ khám ccc c2 css2 82

HINH 3.8: Biểu đồ tuần tự chức năng cập nhật sổ khám c << cs52 83

HÌNH 3.9: Biểu đồ tuần tự chức năng xóa sổ khám -Ăc c2 84

HÌNH 3.10: Biểu đồ tuần tự chức năng tạo mới tài khoản -<<< <5: 85 HÌNH 3.11: Biểu đồ tuần tự chức năng cập nhật tài khoản -: 86

Trần Trung Hiếu - DI9PTDPT 10

Trang 11

Đồ án tốt nghiệp Đại học Danh mục các hình vẽ

HINH 3.12: Biểu đồ tuần tự chức năng xóa tài khoẳn 25c: 87

Trần Trung Hiếu - DI9PTDPT 11

Trang 12

Đồ án tốt nghiệp Đại học Mở đầu

MỞ ĐẦU

Trẻ sơ sinh đang trong giai đoạn phát triển quan trọng, và việc theo dõi thai kỳ và chăm sóc y tế cho họ là điều cực kỳ quan trọng Ứng dụng này giúp bố mẹ theo dõi sát sao sự phát triển của thai kỳ và đảm bảo rằng trẻ được chăm sóc tốt từ khi mới

Việc quản lý lịch khám, theo dõi sổ khám và đăng ký khám cho thai phụ, trẻ sơ

sinh thường gây ra nhiều phiền toái cho phụ huynh Ứng dụng này giúp đơn giản hóa

quá trình này, giúp thai phụ có thể đăng ký khám, theo dõi thai kỳ nhanh chóng, đơn

giản hơn, phụ huynh quản lý sức khỏe của trẻ dễ dàng hơn, tiết kiệm thời gian và giảm

bớt căng thằng.

Ứng dụng này cung cấp cơ hội cho các chuyên gia y tế theo dõi tình trạng thai

kỳ và sức khỏe của trẻ sơ sinh một cách hiệu quả hơn Điều này có thể giúp phát hiện và giải quyết vấn đề sức khỏe sớm hơn, đảm bảo sự phát triển toàn diện cho cả mẹ và

Xây dựng ứng dụng sẽ tích hợp công nghệ và thông tin, tạo cơ hội cho việc thu

thập dữ liệu quan trọng về sức khỏe trẻ sơ sinh và thai kỳ Những dữ liệu này có thể được sử dụng cho nghiên cứu y tế và cải thiện chăm sóc sức khỏe trẻ trong tương lai.

Đặc biệt trong thời đại số hóa, việc có một ứng dụng giúp truy cập thông tin

liên quan đến sức khỏe trẻ một cách nhanh chóng và dễ dàng Nó giúp phụ huynh và

người tham gia quá trình chăm sóc sức khỏe tiếp cận thông tin quan trọng một cách

thuận tiện.

Vì vậy, đề tài “Tim hiểu Java Spring boot và áp dụng để phát triển ứng dụng

theo dõi thai kỳ và khám chữa bệnh cho trẻ sơ sinh” có tiềm năng cải thiện chất lượng

chăm sóc sức khỏe cho trẻ sơ sinh và giúp thai phụ thêm thoải mái trong quá trình theo dõi và quản lý sức khỏe của con cái mình.

Đồ án được chia làm các chương như sau:

Chương 1: Tống quan về đề tài Chương này miêu tả bài toán và các chức năng của hệ thống.

Chương 2: Phương pháp tiếp cận và giải quyết vấn đề.

Chương này sẽ trình bày phương pháp xây dựng hệ thống bằng việc ứng dụng các

công nghệ

Chương 3: Xây dựng hệ thống.

Trần Trung Hiếu - DI9PTDPT 12

Trang 13

Đồ án tốt nghiệp Đại học Mở đầu

Chương này sẽ trình bày theo thứ tự các bước trong quá trình phát triển phần mềm để xây dựng hệ thống, bao gồm:

- Mô tả hệ thống bằng ngôn ngữ tự nhiên (Các tác nhân tham gia hệ thống va danh sách các chức năng có thể sử dụng tương ứng)

- Mô tả hệ thống bằng UML( biểu đồ use case)

- _ Xây dựng cơ sở dữ liệu

- _ Kịch bản chuẩn và ngoại lệ

- Thiết kế lớp thực thể

- _ Thiết kế động: biểu đồ tuần tự

- _ Thiết kế, xây dựng giao diện

Trần Trung Hiếu - DI9PTDPT 13

Trang 14

Đồ án tốt nghiệp Dai học Chương I

CHUONG I: TONG QUAN VE HEALTHHUB SCHEDULE

Nội dung của chương này sé giới thiệu chung về các chức năng của hệ thống HealthHub Schedule, cũng như những lợi ích của việc phát triển ứng dụng theo dõi

thai kỳ và khám chữa bệnh cho trẻ sơ sinh

1 Giới thiệu bài toán:

Hiện nay, việc quản lý thông tin trong quá trình mang thai và sinh con của

người mẹ là điều rất cần thiết Ứng dụng cung cấp những thông tin cần thiết về tình

trạng cơ thể, tình hình phát triển của thai nhi theo thời gian, đồng thời cung cấp lịch khám, lịch xét nghiệm cần thiết cho mẹ bầu giúp mẹ bầu có những chuan bị tốt nhất

cho sự chào đời của em bé Phần mềm quản lý sẽ được sử dụng nhằm hỗ trợ thai phụ

va trẻ trong suốt quá trình mang thai và sinh con đến khi em bé tròn | tuổi.

e Đối với người mẹ: sẽ là người trực tiếp đăng ký phần mềm để giúp cho việc

quản lý các thông tin trong suốt quá trình mang bầu và sau sinh được dễ dàng

e Đối với em bé: phần mềm sẽ hỗ trợ khám và theo dõi trong suốt thời kỳ mang

thai và lên lịch thăm khám, theo dõi sức khỏe, cho đến khi em bé tròn 1 tuổi Trong phần mềm, các mẹ bầu sẽ được cấp tài khoản và được phân quyền dựa theo chức năng, theo từng bộ phận riêng biệt Về hệ thống quản lý, admin được phép

quản lý với các nghiệp vụ như danh sách những người khám thai, danh sách bệnh viện,

tạo lịch khám, Người dùng sẽ được phép quản lý, xem thông tin của mình và chỉnh

sửa thông tin cá nhân Các thông báo sẽ được gửi về cho người dùng một cách kịp thời thông qua các thiết bị điện thoại di động

Phần mềm được phát triển dựa trên nền tảng website Xây dựng phần mềm quản lý sinh sản giúp cho công việc quản lý các dữ liệu được chính xác hơn đồng thời

giảm được thời gian và các thủ tục khi phải đăng ký offline, người dùng có thể dễ dàng

đăng ký lịch khám và tra cứu thông tin một cách dễ dàng.

Nói ngắn gọn, việc xây dựng và phát triển phần mềm cho quy trình trình quản lý mẹ bầu, giúp cho các dữ liệu của mẹ bầu và em bé được thông bộ trên nhiều hệ

thống y tế, dễ dàng tra cứu cho cả người dân và các đơn vị y tế.

Trần Trung Hiếu - DI9PTDPT 14

Trang 15

Đồ án tốt nghiệp Đại học Chương I

2 Mô tả hệ thống:

2.1 Phạm vi hệ thong:

Hệ thống sẽ được triển khai cho cả hệ thống y tế với các loại tác nhân như sở y tế, cơ sở y tế, thai phụ nhằm mục đích chia sẻ thông tin của thai phụ và trẻ sơ sinh để

dễ dàng hơn trong việc nắm bắt thông tin của thai phụ trong các lần khám 2.2 Sơ đồ tổng quát chức năng của hệ thong:

Quản lý tai khoản

Đăng ký tai khoản

Quản lý thông tin trẻ Quản lý lịch trực của

Quan lý bác sĩ Sơ sinh bac sĩ

Trang 16

Đồ án tốt nghiệp Dai học Chương I

2.3 Các tác nhân tham gia hệ thong:

- Thai phụ: là tác nhân tham gia hệ thống để có thể đăng ký khám thai, tra cứu thông tin cá nhân, thông tin hồ sơ khám của mình và thông tin về con của mình được sinh ra tại cơ sở y tế.

- _ Bệnh viện: là tác nhân tham gia vào hệ thống để quản lý thông tin của thai phụ,

hồ sơ khám thai, em bé, quản lý danh sách các đăng ký khám.

- Sở y té: là tác nhân tham gia vào hệ thống để quan lý thông tin của các cơ sở y tế trực thuộc và tài khoản của các cơ sở y tế đó.

- Nguoi quản trị hệ thống: là tác nhân tham gia vào hệ thống để quản lý thông tin của các sở y tế, ngoài ra còn quản lý thông tin tất cả các tài khoản có trong hệ thống.

2.4 _ Các chức năng của hệ thống

2.4.1 Đăng nhập - Quan lý thông tin cá nhân:

- Dang nhập: Cho phép tat cả người dùng hệ thống đăng nhập vào hệ thống

- Quan lý thông tin cá nhân: cho phép tất cả người dùng thêm, sửa thông tin cá

nhân của họ trên hệ thống.

2.4.2 Nhóm chức năng: Người quản lý hệ thống:

- Quan lý tài khoản: cho phép Người quản trị hệ thống quản lý thông tin các tài khoản của người dùng khi tham gia vào hệ thống, Người quản trị có thể thêm,

sửa, xóa, tìm kiếm thông tin của một tài khoản bất kì.

- Quản lý danh sách sở y tế: cho phép Người quản trị hệ thống quản lý thông tin của các sở y tế, có thể thêm, sửa, xóa, tìm kiếm thông tin của một sở y tế bất

Trần Trung Hiếu - DI9PTDPT 16

Trang 17

Đồ án tốt nghiệp Dai học Chương I

Nhóm chức năng thai phụ:

Đăng ký khám: cho phép Thai phụ đăng ký khám thai tại một cơ sở y tế.

Đăng ký tài khoản: cho phép thai phụ đăng ký tài khoản để thực hiện các chức

Đăng ký nhận thông báo khám: cho phép thai phụ liên kết tài khoản telegram của mình với hệ thống để có thể nhận được các thông báo | cách kịp thời

Nhóm chức năng sở y tế:

Quan lý thông tin bệnh viện trong sở y tế: cho phép quản lý thông tin các bệnh viện có trong sở y tế.

Thêm tài khoản cho các bệnh viện: cho phép Sở y tế tạo tài khoản đăng nhập cho cơ sở y tế trực thuộc (nếu cơ sở y tế đó chưa có tài khoản).

Nhóm chức năng bệnh viện:

Quản lý danh sách thai phụ: cho phép Cơ sở y tế quản lý thông tin của thai phụ có thể thêm, sửa, xóa, tìm kiếm thông tin thai phụ.

Quản lý danh sách trẻ sơ sinh: cho phép Cơ sở y tế quản lý thông tin của trẻ sơ sinh được sinh ra tại cơ sở y tế đó, có thể thêm, sửa, xóa, tìm kiếm thông tin

trẻ sơ sinh.

Trần Trung Hiếu - DI9PTDPT 17

Trang 18

Đồ án tốt nghiệp Dai học Chương I

- Quan lý lịch trực, lịch làm việc của các bac sĩ trong bệnh viện: Cho phép

bệnh viện có thể quản lý thông tin ca làm việc của bác sĩ bao gồm việc thêm,

sửa, xóa, tìm kiếm các thông tin về các ca trực trong ngày, trong tuần.

2.5 _ Kết luận chương:

Chương I giúp đặt nền móng cho độc giả hiểu rõ hơn về nguyên nhân và mục tiêu phát triển của HealthHub Schedule, cũng như lợi ích mà nó mang lại cho cả bệnh

viện, lẫn thai phụ.

Trần Trung Hiếu - DI9PTDPT 18

Trang 19

Đồ án tốt nghiệp Dai học Chương I

Trần Trung Hiếu - DI9PTDPT 19

Trang 20

Đồ án tốt nghiệp Dai học Chương II

CHƯƠNG II: PHƯƠNG PHÁP TIẾP CẬN VÀ GIẢI QUYẾT VẤN ĐỀ

Chương này sẽ trình bày các nghiên cứu về phương pháp tiếp cận, giải quyết vấn đề, cũng như trình bày về các công nghệ được sử dụng để xây dựng lên hệ thống.

1 M6 hình phat triển:

Với các yêu cầu cũng như mục tiêu của đồ án thì sản phẫm phần mềm HealthHub Schedule được phát triển theo mô hình nước chảy (Waterfall Model)

Mô hình chảy nước là một trong những mô hình phát triển phần mềm truyền

thống và tuyến tính nhất Nó được biểu diễn như một dãy các giai đoạn phát triển liên

tiếp, giống như nước chảy từ trên xuống dưới qua các giai đoạn khác nhau.

Mô hình chảy nước chia dự án thành các giai đoạn không chồng chéo, mỗi giai

đoạn được thực hiện theo thứ tự tuyến tính Mỗi giai đoạn tạo ra một tập hợp con của dự án, và tiếp theo chỉ bắt đầu khi giai đoạn trước đó hoàn thành Nguyên tắc cơ bản là từng bước phải được hoàn thành trước khi chuyển sang bước tiếp theo, giống như nước chảy từ trên xuống dưới mà không quay trở lại.

Cấu trúc giai đoạn của mô hình chảy nước bao gồm:

e Giai đoạn 1: Yêu cầu:

©_ Xác định yêu cầu: Thu thập thông tin từ khách hàng để xác định yêu cầu

chính của hệ thống Xác định và mô tả rõ rang các tính năng, chức năng

và ràng buộc của dự án.

© Tạo Tài Liệu Yêu Cầu: Viết tài liệu yêu cầu, thường được gọi là "SRS (Software Requirements Specification)" để làm cơ sở cho các giai đoạn sau Xác minh với khách hàng để đảm bảo hiểu đúng và đầy đủ về yêu

e Giai đoạn 2: Thiết kế:

Trần Trung Hiếu - DI9PTDPT 20

Trang 21

Đồ án tốt nghiệp Dai học Chương II

© Thiết Kế Hệ Thống: Xây dựng kiến trúc hệ thống dựa trên yêu cầu đã

xác định Chia hệ thống thành các thành phần lớn và xác định cách

chúng tương tác với nhau.

oO Thiết kế chi tiết: Xác định cách mỗi thành phần sẽ được triển khai, bao gồm cấu trúc dữ liệu, giao diện người dùng, và các thuật toán chi tiết Tạo các tài liệu thiết kế chi tiết, thường được gọi là "High-Level Design"

và "Low-Level Design."e Giai đoạn 3: Coding:

o Viết mã nguồn: Dựa trên thiết kế đã xác định, nhóm phát triển bắt đầu viết mã nguồn Mỗi thành viên trong nhóm có thể đảm nhận các nhiệm vụ cụ thể dựa trên kỹ năng và chuyên môn của họ.

oO Kiểm thử đơn vị: Kiểm thử từng đơn vị code (hàm hoặc module) để dam

bảo tính độc lập và đúng đắn Sửa lỗi và cải thiện mã nguồn nếu cần thiết.

e Giai đoạn 4: Kiểm thử:

Oo Kiểm thử hệ thống: Tất cả các thành phần được tích hợp để tạo thành hệ

thống hoàn chỉnh Tiến hành các bài kiểm thử toàn diện để đảm bảo rằng hệ thống hoạt động đúng đắn theo yêu cầu Kiểm tra hệ thống với sự tham gia của người dùng để đảm bảo tương tác mượt mà và hiệu quả Đảm bảo sự tương thích với các môi trường thực tế.

e Giai đoạn 5: Triển khai hệ thống

© Chuẩn bị triển khai: Đảm bảo rằng hệ thống được chuẩn bị cho triển

khai, bao gồm việc kiểm tra cuối cùng và sửa lỗi cuối cùng Xác định kế

hoạch triển khai chi tiết.

©_ Triển khai hệ thống: Đưa hệ thống vào môi trường thực tế va bat đầu sử dung.Kiém tra lại để đảm bảo rằng không có vấn đề nào xảy ra sau triển

Trần Trung Hiếu - DI9PTDPT 21

Trang 22

Đồ án tốt nghiệp Dai học Chương II

e Giai đoạn 6: Bảo trì hệ thống:

© Sửa lỗi và cải thiện: Xử lý bất kỳ lỗi nào xuất hiện sau triển khai.Tiếp

tục cải thiện hệ thống dựa trên phản hồi từ người dùng và hiệu suất thực

o Hỗ trợ người dùng: Cung cấp hỗ trợ và đào tạo người dùng cuối Dam

bảo rằng hệ thống đáp ứng được nhu cầu và mong muốn của người dùng Mỗi giai đoạn của mô hình chảy nước được thực hiện theo thứ tự tuyến tính và không bắt đầu cho đến khi giai đoạn trước đó hoàn thành, giúp tạo ra một quá trình

phát triển có kỷ luật và dễ kiểm soát.

Mô hình chảy nước (Waterfall Model) có những ưu điểm và hạn chế cụ thể, dưới đây là một vài điểm nổi bật cũng như hạn chế:

® Ưu điểm:

©_ Dễ quản lý: Các giai đoạn được thực hiện theo thứ tự tuyến tính, giúp dễ

quản lý và đánh giá tiến độ của dự án.

©_ Dễ hiểu, dễ sử dụng: Mô hình chảy nước đơn giản va dễ hiểu, phù hợp

cho các dự án có yêu cầu rõ ràng từ đầu.

© Tài liệu rõ ràng: Yêu cầu được xác định và tài liệu được tạo ra ở giai đoạn đầu giúp giảm rủi ro và tạo cơ sở cho các quyết định tiếp theo.

©_ Dễ kiểm soát phạm vi: Phạm vi của dự án thường được xác định rõ ràng

Ở giai đoạn yêu cầu, giúp kiểm soát rủi ro và nguy cơ biến động.

© phù hợp với các dự án nhỏ với yêu cầu đã được định rõ: Hoạt động tốt cho các dự án có quy mô nhỏ và yêu cầu đã được xác định rõ ràng từ đầu.

e Hạn chế:

© Khó thích ứng với các thay đối: Khả năng thay đối yêu cầu trong quá

trình phát triển rất hạn chế, đôi khi là không khả thi.

Trần Trung Hiếu - DI9PTDPT 22

Trang 23

Đồ án tốt nghiệp Dai học Chương II

© Khó điều chỉnh kế hoạch: Nếu có bất kỳ sự thay đối nào trong yêu cầu,

việc phải điều chỉnh kế hoạch có thể phức tạp và đòi hỏi nhiều công sức.

oO Thời gian dài trong việc phản hồi: Khách hang thường phải đợi đến khi

cuối cùng để nhận phản hồi về hệ thống, điều này có thể dẫn đến việc phát hiện lỗi ở giai đoạn muộn.

© Nguy cơ lớn cho các dự án lớn và phức tạp: Đối với các dự án lớn và phức tạp, có rủi ro cao về việc không đáp ứng đúng đắn với yêu cầu thay đổi va phức tap.

O Không linh hoạt: Mô hình chảy nước không linh hoạt trong việc đáp ứng

nhanh chóng với thay đổi hoặc trong tình huống không chắc chắn.

Mô hình chảy nước thích hợp cho các dự án có yêu cầu 6n định và rõ ràng từ đầu Tuy nhiên, nó có thể gặp khó khăn khi phải đối mặt với môi trường làm việc biến động và yêu cầu thay đối liên tục Cần cân nhắc kỹ lưỡng về tính linh hoạt của mô hình để đảm bảo phù hợp với đặc điểm cụ thể của dự án.

2 Mô hình hoạt động của hệ thống:

Mô hình client-server là một kiến trúc cơ bản được sử dụng rộng rãi trong phát triển phần mềm và thiết kế hệ thống Và cũng không ngoại lệ, phần mềm HealthHub

Schedule được vận hành theo mô hình Client-Server.Trong mô hình này, hệ thống được chia thành hai thành phần chính: client (máy tính cá nhân, thiết bị di động) và

server (máy chủ).

Trần Trung Hiếu - DI9PTDPT 23

Trang 24

Đồ án tốt nghiệp Đại học Chương II

SERVER SIDE

Hinh 2.1 - So d6 mé hinh cua hé thong

Dưới đây là một giới thiệu chi tiết về mô hình client-server:

e Client:

© Nhiệm Vu: Client là phần của hệ thống mà người dùng tương tác trực tiếp Nó chịu trách nhiệm cho việc hiến thi giao diện người dùng, thu

thập dữ liệu đầu vào từ người dùng và truyền thông tin đến server.

©_ Ví Du: Trình duyệt web, ứng dụng di động, ứng dụng máy tính cá nhân.

® Server:

© Nhiệm Vu: Server là nơi chứa tài nguyên và dữ liệu chính của hệ thống.

Nó thực hiện xử lý logic, lưu trữ và quản lý dữ liệu, và cung cấp thông

tin cho client khi được yêu cầu.

oO Ví Du: Máy chủ web, máy chủ cơ sở dữ liệu, máy chủ ứng dung.

e Giao Tiếp Client-Server:

© Giao Tiếp: Giao tiếp giữa client và server thường thông qua mạng, sử dụng các giao thức như HTTP, HTTPS, TCP/IP Client gửi các yêu cầu đến server, và server trả về các phản hồi hoặc dữ liệu tương ứng.

Trần Trung Hiếu - DI9PTDPT 24

Trang 25

Đồ án tốt nghiệp Dai học Chương II

© Kiến Trúc Mạng: Thông thường, client và server có thể tồn tại trên các

máy tính khác nhau, kết nối thông qua internet hoặc mạng nội bộ.

e Phân chia trách nhiệm:

© Frontend (Client): Chịu trách nhiệm cho giao diện người dùng và tương

tác người dùng Thực hiện logic ở phía máy tính cá nhân.

O Backend (Server): Chịu trách nhiệm cho xử lý logic, lưu trữ dữ liệu, va

cung cấp dữ liệu cho client Thực hiện logic ở phía máy chủ.

e Lợi ích:

© Tính Tương Thích: Client và server có thể được phát triển và cập nhật độc lập mà không ảnh hưởng đến nhau.

© Phân Chia Công Việc: Cho phép phân chia công việc giữa client và

server, giúp tối wu hóa hiệu suất va quản lý tài nguyên.

e Bảo Mật:

© Bảo Mật Tập Trung: Thông thường, thông tin nhạy cảm và logic an ninh

được tập trung ở phía server để giữ cho client chỉ cần biết về thông tin cần thiết.

Mô hình client-server là một kiến trúc linh hoạt và mạnh mẽ, được sử dụng trong nhiều loại ứng dụng khác nhau, từ các trang web đơn giản đến các hệ thống phức tạp Nó cung cấp một cách tiếp cận có tổ chức cho việc phát triển phần mềm và quản

lý tài nguyên trong môi trường mạng.

3 Công nghệ sử dụng: 3.1 Server side:

3.1.1 Java:

Phía server-side được xây dung trên ngôn ngữ lập trình Java Java là một trong những ngôn ngữ lập trình máy tính quan trọng và được dùng phổ biến nhất trên thế

giới, bởi vì nó là một ngôn ngữ ưu việt của Internet Có nhiều nguồn cho rằng, khi nói

Trần Trung Hiếu - DI9PTDPT 25

Trang 26

Đồ án tốt nghiệp Dai học Chương II

tới các nhà phát triển Web chuyên nghiệp chính là nói đến những người thành thạo ngôn ngữ Java Java cũng là một phần của “cuộc cách mạng” điện thoại thông minh bởi vì Java được dùng cho lập trình Android Có thể nói rằng Java là nền tảng của lập

trình hiện nay.

Sự kỳ diệu của Java: Bytecode

Chìa khóa giúp Java giải quyết tất cả vấn đề bảo mật và tính khả chuyển là mã

do trình biên dịch Java tạo ra không phải là mã thực thi Thay vì vậy, nó là mã

bytecode Bytecode là một tập các chỉ lệnh đã được tối ưu hóa ở mức độ cao, được thiết kế để có thể chạy trên hệ thống thực thi Java, còn gọi là máy ảo Java (JVM - Java

Virtual Machine) Việt dịch một chương trình Java thành mã bytecode giúp cho việc

chạy một chương trình trên nhiều loại môi trường khác nhau dễ dàng hơn, bởi vì người dùng chỉ cần cài đặt JVM cho từng nền tảng Sau đó khi JVM tồn tại trên một hệ điều hành, thì bất kỳ chương trình Java nào cũng có thể chạy trên đó.

Thấy được những điểm mạnh của Java cũng là lý do để em quyết định gắn bó với ngôn ngữ lập trình mạnh mẽ này trong quá trình phát triển về mặt kỹ thuật của em

trong thời gian tới.

3.1.2 Spring Framework:

Có lễ một trong những điều khó nhất của việc giải thích Spring là phân loại chính xác nó là gi Spring được mô tả là một lightweight framework để xây dựng các ứng dụng Java, tuy nhiên có 2 điểm chú ý là:

Có thể dùng Spring để xây dựng bất kỳ ứng dụng nào trong Java ( Ví dụ: stand-alone, web hay các ứng dụng Java Enterprise (JEE) ), không như nhiều ứng dụng khác

(như Apache Struts, PHP ở thời điểm hiện tai chỉ giới hạn ở các ứng dụng Web).

Spring được gọi là lightweight vì nhà phát triển không cần phải tích hợp tất cả các mô-đun của Spring để sử dụng một phần mô-đun trong hệ sinh thái của Spring Ví

Trần Trung Hiếu - DI9PTDPT 26

Trang 27

Đồ án tốt nghiệp Đại học Chương II

dụ, thông thường người phát triển không thể chạy một ứng dụng Java EE mà chỉ tạo một ứng dụng nhỏ và chỉ chạy một mình mà phải cần một Java EE Server (Glassfish, WebSphere, Tomcat) để chạy ứng dụng thêm nữa là hầu hết các ứng dung server là

lớn và phức tạp do vậy không dễ dàng để install và configure.

e Inversion of Control/Dependency Injection

© Tinh năng quan trọng nhất của Spring Framework là Dependency

Injection Cốt lõi của tất cả các mô dun Spring là Dependency Injection/Inversion of Control Tại sao điều này lại quan trọng, khi DIAoC được dùng phù hợp, nhà phát triển có thể phát triển các ứng dụng

được giảm kết dính Các ứng dụng giảm kết dính dễ dàng kiểm tra unit

test hơn.

©_ Ví dụ: Nếu không sử dụng DI trong đoạn mã bên dưới thì: Class Person

sẽ phụ thuộc vào Class Email Tức là Person phải có trách nhiệm khởi

tạo một trường hợp Email Điều này tạo nên việc kết dính giữa Person và

1 package com.ocean.examples.di.part1;

3 public class Email {

4 public void sendEmail(String subject, String message){

5, // Send the email

6 }

7 }

1 package com.ocean.examples.di.part1;2.

3 public class Person {

4, private Email email = new Emaill);5.

6 public void greetFriend(){

Fé email.sendEmail("Hello", "Hello my friend :)");

Tran Trung 8, } 27

SB et

Trang 28

Đồ án tốt nghiệp Đại học Chương II

Hình 2.2 - Ví dụ không sử dụng Dependency Injection

oO Khi phát triển một hệ thống lớn dần, không tránh khỏi việc class Email sẽ được sử dụng ở nhiều nơi Khi yêu cầu thay đổi hoặc do sự cố nào đó, nhu cầu cần gửi tin nhắn qua một dịch vụ khác như Tweet, Sms Vậy nên

không tránh khỏi việc sửa toàn bộ mã có sử dụng dịch vụ gửi tin Email.

Cách làm trên cho thấy việc kết dính các lớp là một ý tưởng tệ

o Áp dụng nguyên lý IoC/DI cho tình huống trên Các class sẽ giao tiếp

package com.ocean.examples.di.part2; public interface MessageService {

void sendMessage(String subject, String message);

well Sac 1.11:

với nhau thông qua interface/abstraction thay vi thông qua

Hinh 2.3 - Dinh nghia interface

Trần Trung Hiếu - DI9PTDPT 28

Trang 29

Đồ án tốt nghiệp Đại học Chương II

package com.ocean.examples.di.part2;

public class SmsService implements MessageService {

public void sendMessage(String subject, String message){

System.out.printf("SMS: %s, %s9on", subject, message);

Co Re be situated ett bạc?}

package com.ocean.examples.di.part2;

public class EmailService implements MessageService {

public void sendMessage(String subject, String message){

System.out.printf("Email: %s, %s%n", subject, message);

1 eee OE Hình 2.4 - Hiện thực (Implement) interface

o Spring Framework cung cấp một đối tượng Container đảm nhiệm việc

khởi tạo dependencies qua các chú giải (annotations) cho một Class

thuận tiện hơn thay vì thông qua hàm khởi trong đoạn code trên.

Tích hợp với các framework bên ngoài: Một điều tuyệt vời ở Spring là không

nhằm giải quyết tất các vấn đề mà đã được gỡ rối Tất cả những gì Spring làm cung cấp một cách tích hợp tuyệt vời với các frameworks mà cung cấp các giải pháp tốt khác nhau:

©_ Hibernate trong ORM

oO iBatis trong Object Mapping

oO Junit và Mockito trong Unit Testing

Trần Trung Hiếu - DI9PTDPT 29

Trang 30

Đồ án tốt nghiệp Đại học Chương II

Spring cung cấp một số tính năng yêu cầu cho việc phát triển các ứng dụng

doanh nghiệp Tuy nhiên nó không yêu cầu nhà phát triển phải tích hợp vào ứng dụng của họ tất cả các tính năng này Các tính năng cung cấp bởi Spring được chia thành 7 mô đun khác nhau Nhà phát triển có thé chon để tích hợp vào ứng dụng của họ với một hoặc nhiều mô đun tùy vào tính năng mà họ cần.

Nam bắt được kiến trúc mô đun của Spring va hiểu được mục đích sử dụng của

từng mô đun trên giúp cho những lập trình viên mới tiếp cận với Spring dễ dàng hơn.

Trần Trung Hiếu - DI9PTDPT 30

Trang 31

Đồ án tốt nghiệp Dai học Chương II

3.1.3 Spring Boot:

La một cách mới để tạo các ứng dung Spring nhanh chóng Với Spring lập trình viên thường phải cấu hình các phụ thuộc (dependencies, jars) thủ công thông qua các

file XML hay chú giải annotations thì với Spring Boot mọi thứ được tự động hóa Một

vài tính năng nổi bật như:

- Tao ứng dung Spring sẵn sàng để phát hành;

- Tao ứng dung standalone có môi trường server Tomcat được nhúng sẵn;

- Mot trong những tinh năng là công nghệ “opinioned” giúp nhà phát triển tuân theo hướng làm tốt nhất cho việc tạo ứng dụng có khả năng mở rộng và mạnh

3.14 Spring Rest:

Được áp dung trong phần Endpoint trong mô hình lập trình Cinema MNGT.

Đây là một mô đun trong hệ sinh thái Spring Framework dùng để xây dựng RESTful

3.1.4.1 Tim hiểu về Restful:

Bản thân REST không phải là một loại công nghệ, mà là phương thức tạo API

với nguyên lý tổ chức nhất định Những nguyên lý này nhằm hướng dẫn lập trình viên

tạo môi trường xử lý API request được toàn diện hơn.

REST là viết tắt của Reppresentational State Transfer và là một kiểu kiến trúc để thiết kế các ứng dụng mạng phân tán Roy Fielding đặt ra thuật ngữ REST trong luận văn tiến sĩ của mình và đề xuất sáu trở ngại hoặc nguyên tắc dưới đây làm căn cứ

của nó:

Trần Trung Hiếu - DI9PTDPT 31

Trang 32

Đồ án tốt nghiệp Dai học Chương II

- Client-Server: Những thứ liên quan nên được tách biệt giữa các máy khách và

máy chủ Điều này cho phép các thành phần máy khách và máy chủ phát triển độc lập và lần lượt cho phép hệ thống có thể mở rộng quy mô.

- Stateless: Sự giao tiếp giữa máy khách và máy chủ nên là vô trạng thái Máy

chủ không cần phải nhớ trạng thái của máy khách Thay vào đó, khách hàng phải bao gồm tất cả các thông tin cần thiết trong yêu cầu để máy chủ có thể hiểu

và xử lý nó.

- Layered System: Nhiều lớp phân cấp như cổng (gateways), tường lửa (firewalls) va proxies có thể tồn tại giữa máy khách và máy chủ Các lớp có thể được thêm, sửa đối, sắp xếp lại, hoặc xoá một cách minh bạch để cải thiện khả

năng mở rộng.

- Cache: Các phản hồi (responses) từ máy chủ phải được khai báo là có thể lưu trữ được hoặc không thể lưu trữ Điều này sẽ cho phép các client hoặc các thành phần trung gian của nó để lưu trữ phản hồi (responses) và dùng lại chúng cho các yêu cầu (requests) sau này Điều này làm giảm tải (load) trên máy chủ và

giúp cải thiện hiệu suất.

- Uniform Interface: Tất cả các tương tác giữa client, máy chủ, và các thành phần trung gian được dựa trên sự thống nhất của các giao diện của chúng Điều này đơn giản hóa kiến trúc tổng thể vì các thành phần có thể phát triển độc lập miễn là chúng thực hiện theo quy tắc đặt ra.

- Code on demand: Client có thể mở rộng chức năng của chúng bằng cách tải xuống (download) và thực thi (execute) mã theo yêu cầu Ví dụ bao gồm các

tập lệnh JavaScript, các Applet Java, Silverlight, v.v Day là một ràng buộc tùy

3.1.4.2 Xây dựng Resful API:

Thiết kế và triển khai một API RESTful tốt không chỉ là một nghệ thuật Phải

mất thời gian, nỗ lực, và một số lặp đi lặp lại Một API RESTful được thiết kế tốt cho

Trần Trung Hiếu - DI9PTDPT 32

Trang 33

Đồ án tốt nghiệp Đại học Chương II

phép người dùng cuối của bạn sử dụng API một cách dễ dàng và làm cho việc áp dụng

nó trở nên dễ dàng hơn Ở mức độ cao, dưới đây là các bước liên quan đến việc xây

dựng API RESTful:

- Identify Resources: Trung tâm đến REST là các tài nguyên Ta bắt đầu tao mau

các tài nguyên khác nhau mà đến người sử dung quan tâm Thông thường, các tài nguyên này có thể là miền hoặc các thực thể của ứng dụng.

- Identify Endpoints: Bước tiếp theo là thiết kế các URI ánh xa các tài nguyên tới

các endpoints.

- Identify Actions: Xác định các phương thức HTTP có thé được sử dụng để thực

hiện các hoạt động trên các tài nguyên.

- Identify Responses: Xác định các thể hiện (reprentation) tài nguyên được hỗ trợ

cho yêu cầu và đáp ứng cùng với mã trạng thái phù hợp để được trả lại.

Identity Endpoint

RequestMapping(CommonConstants Resource REQUEST MAPPING + “/seatTypes") Identify Resource

Soi(velue = “Quản lý tài nguyễn Loại ghế”} ——

public class SeatTypeResource {

private SeatTy eService seatTypeService; ) 9 x }

pr _— Lia Identify Action identify Response

public @ResponseBody Page<SeatType> findAllSeatType(Pageable pageable) {return seatTypeservice findAl lSeatType(pageable);

Hinh 2.6 - Vi du publish Spring REST3.1.5 Spring Security Framework:

Spring Security là một lightweight security framework cung cấp xác thực và ủy quyền để hỗ trợ an ninh trong các ứng dụng Spring.

Spring Security cung cấp các dịch vụ bảo mật toàn diện cho các ứng dụng phần mềm doanh nghiệp dựa trên Java EE Hỗ trợ đặc biệt cho các dự án được xây dựng bằng Spring Framework, đây là giải pháp Java EE hàng đầu cho phát triển phần mềm

doanh nghiệp.

Trần Trung Hiếu - DI9PTDPT 33

Trang 34

Đồ án tốt nghiệp Dai học Chương II

Hệ thống Cinema MNGT được bảo mật như sau:

e Mật khẩu đăng nhập của người dùng được mã hóa theo thuật toán Bcrypt.

Trước khi lưu trữ mật khẩu tài khoản người dùng vào CSDL, hệ thống Cinema

MNGT sẽ thực hiện mã hóa mật khẩu theo thuật toán Bcrypt.

oO Bcrypt là một thuật toán mã hóa mật khẩu một chiều Không thể lấy lại

mật khẩu khi biết chuỗi mật khẩu trong CSDL.

oO Bcrypt là một giải pháp được ưa chuộng trong cộng đồng an ninh hiện

nay Nó tự động tạo ra các chuỗi mã hóa ngẫu nhiên sau mỗi lần tạo ra.

Điều này làm cho nó khó khăn hơn trong việc mã hóa và tìm ra mật khẩu cho những cuộc tấn công.

e Tích hợp giao thức SSL (Secure Socket Layer) dùng để thiết lập liên kết được

mã hóa giao tiếp giữa client và server.

e Xác thực người dùng với Basic Authentication Khi Client truy cập đến tài

nguyên API yêu cầu xác thực Basic Authentication trên hệ thống Cinema MNGT thì HTTP request mà Client gửi lên Server cần phải kèm theo “chuỗi xác thực” người dùng tương ứng với tham số “Authorization” trong phần HTTP headers “Chuỗi xác thực” có được bằng việc kết hợp từ khóa “Basic” cùng với

mã hóa base64(username:password)

Trần Trung Hiếu - DI9PTDPT 34

Trang 35

Đồ án tốt nghiệp Đại học Chương II

Angular là một JavaScript framework dùng để viết giao diện web (Front-end), được phát triển và duy trì bởi Google từ những năm 2019 Hiện nay, Angular đang được sử dụng bởi rất nhiều các công ty lớn: Forbes, General Motors, Upwork Với

Trần Trung Hiếu - DI9PTDPT 35

Trang 36

Đồ án tốt nghiệp Dai học Chương II

những lợi ích tuyệt vời mà Angular mang lại, ban cần phải biết sử dung Angular nếu

muốn trở thành Front-end Developer giỏi.

Ưu điểm nổi bat của Angular:

- Angular được đánh giá là giải pháp dành cho các Single Page Application làm

việc dễ dàng.

- Code Front end thường rất thân thiện nhờ kha năng Binding data lên trên các nền tảng HTML để có thể tạo ra mọi thao tác rất tuyệt.

- Dé dàng Unit test.

- C6 thể tái sử dung component.

- H6 trợ cho các lập trình viên có thể viết code được ít hơn với nhiều chức năng

- _ Có thể chạy Angular trên nhiều loại trình duyệt khác nhau lẫn PC hoặc mobile.

3.2.2 Single Page Application:

Công nghệ Single Page Application (SPA) đã được áp dung trên các ứng dụng

web để làm giảm thiểu việc refresh lại trang web Theo cách thông thường, mỗi khi

chuyển hướng người dùng đến một trang khác trên websites yêu cầu trình duyệt browser phải refresh lại trang để tải trang web từ phía server (nơi đặt ứng dụng

front-end) mới có thể render được trang web, việc này khiến mất nhiều thời gian khi tải

SPA chỉ render trên một trang web HTML duy nhất từ server, khi người dùng

truy cập vào ứng dụng, không có thêm một trang HTML nào được tải về nữa trong quá

trình tương tác của người dùng Cùng với trang HTML đó, server gửi một công cụ ứng

dụng đến client là trình duyệt web browsers Công cụ này sẽ kiểm soát toàn bộ ứng dụng bao gồm việc: processing, input, output, painting, va loading của trang HTML.

Trần Trung Hiếu - DI9PTDPT 36

Trang 37

Đồ án tốt nghiệp Đại học Chương II

Đặc biệt, phải đến 90-95% mã ứng dụng được chạy trên browser; phần còn lại khi

người dùng tải thêm những dữ liệu mới.

Bên cạnh đó, đa phần việc loading được chạy trên client nên gần như phía server- side không phải hoạt động nhiều Nhu cầu về tài nguyên trên server thấp làm giảm stress trên server đáng kể, giảm những chi phí tiềm năng trên server.

3.2.3 Lazy Loading:

Tai sao lại can Lazy loading? Thông thường, Angular sẽ tải tat cả các

components khi bắt đầu ứng dụng Như ví dụ dưới đây tất cả components được khai

báo được đẩy vào module gốc trong Angular Điều này sẽ yêu cầu Angular tải toàn bộ components trong mảng (array) “declarations” khi bắt đầu chạy ứng dụng.

Route change Lazy load

Trang 38

Đồ án tốt nghiệp Dai học Chương II

Hình 2.9 - Mô hình lazy loading

Việc này sẽ khiến ứng dụng trở nên chậm khi người dùng ghé thăm trang web lần đầu tiên, bởi vì Angular cần tải toàn bộ components vào lúc đầu tiên nhưng có thể người dùng chỉ muốn xem mỗi trang chủ Day là ly do các ứng dụng web cần đến lazy

loading để cải thiện thời gian loading của ứng dụng.

Lazy loading hoạt động như thế nào? Lazy loading chỉ tải những gì mà nha

phát triển cần sử dụng để bắt đầu ứng dụng lần đầu Nếu người dùng chuyển sang trang khác, thi component cho trang đó sẽ load ngay lập tức Tuy nhiên, điều này không có nghĩa là nó tải mọi lúc người dùng chuyến sang trang khác Thực tế, lazy

loading chi tải cho lần đầu tiên ghé thăm một trang, lazy loading sẽ không tải lại khi

người dùng ghé thăm lại.

3.2.4 Bảo vệ tài nguyên với OAuth Framework:

Trong mô hình xác thực client-server truyền thống, client gọi một request đến

tài nguyên được bảo vệ trên server bằng cách xác thực với server sử dụng credentials (username, password) của người sỡ hữu tài nguyên (resource owner) Để cung cấp cho các ứng dụng bên thứ 3 có thể truy cập tới các tài nguyên giới hạn, người sở hữu tài nguyên sẽ cung cấp/chia sẻ credentials (username, password) của họ với ứng dụng bên thứ 3 Điều này tạo nên một số hạn chế và vấn đề sau:

e Các ứng dụng bên thứ 3 yêu cầu lưu trữ credentials của người sở hữu tai

nguyên để có thể tiếp tục sử dụng.

e Servers cần phải hỗ trợ xác thực mật khẩu, mặc dù việc bảo mật kém nhất

thường liên quan đến vấn đề mật khẩu.

Trần Trung Hiếu - DI9PTDPT 38

Trang 39

Đồ án tốt nghiệp Dai học Chương II

e Các ứng dụng bên thứ 3 truy cập vào tài nguyên mà không có giới hạn về

khoảng thời gian.

e Người sở hữu tài nguyên không thể hủy bỏ truy cập cho một ứng dụng bên thứ 3 cụ thé mà không hủy bỏ các ứng dụng bên thứ 3 khác.

OAuth giải quyết những vấn đề nay bằng cách giới thiệu một lớp ủy quyền và

tách vai trò của máy khách (client) với tài nguyên của chủ sở hữu tài nguyên Trong

OAuth, client yêu cầu quyền truy cập vào tài nguyên do chủ sở hữu tài nguyên kiểm soát và được lưu trữ bởi máy chủ tài nguyên (Resource Server) và được cấp các

credentials khác với các tài nguyên của chủ sở hữu tài nguyên.

Thay vì sử dụng các credentials của chủ sở hữu tài nguyên để truy cập tài

nguyên được bảo vệ, client sẽ nhận được một mã access token - một chuỗi ký hiệu

cho một phạm vi, thời gian tồn tại và các thuộc tính truy cập cụ thể Access token

được cấp cho các clients bên thứ ba bởi một máy chủ ủy quyền (Authorization Server) với sự chấp thuận của chủ sở hữu tài nguyên Máy khách (client) sử dụng mã acess token để truy cập tài nguyên được bảo vệ bở resource server.

Trần Trung Hiếu - DI9PTDPT 39

Trang 40

Đồ án tốt nghiệp Đại học Chương II

Abstract Protocol Flow

4 Access Token Server

5 Access Token ResourceServer6 Protected Resource

Service API

Hinh 2.10 - OAuth 2.0 Flow

e Application yêu cầu (request) ủy quyền truy cập tài nguyên dich vụ từ user

e Nếu user đã ủy quyền request, application sẽ nhận được một quyền

authorization grant

e Application request một mã access token từ authorization server bằng việc gửi

xác thực danh tính của application và authorization grant.

e Nếu danh tính application được xác thực và authorization grant là đúng,

authorization server sẽ trả về một mã access token đến application

e Application request đến tài nguyên từ resource server (API) và gửi access token

để xác thực

e Nếu access token là đúng, resource server (API) sẽ phục vụ tài nguyên cho

- Nhom vai trò (role) trong OAuth:

Trần Trung Hiếu - DI9PTDPT 40

Ngày đăng: 28/03/2024, 11:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w