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

Xây dựng hệ thống website quản lý trang thiết bị cho trường học

56 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 56
Dung lượng 3,62 MB

Nội dung

thông tin chi tiết về số lượng, tình trạng sử dụng, bảo trì, và khấu hao của từng thiết bị,giúp nâng cao hiệu quả trong việc phân bổ nguồn lực.Đối với cán bộ quản lý, hệ thống sẽ giúp họ

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Quang Huy

XÂY DỰNG HỆ THỐNG WEBSITE QUẢN LÝ TRANG THIẾT BỊ CHO TRƯỜNG HỌC

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Kỹ thuật máy tính

Hà Nội - 2024

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Nguyễn Quang Huy

XÂY DỰNG HỆ THỐNG WEBSITE QUẢN LÝ TRANG THIẾT BỊ CHO TRƯỜNG HỌC

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Kỹ thuật máy tính

Cán bộ hướng dẫn: TS Bùi Trung Ninh

Hà Nội - 2024

Trang 3

TÓM TẮT

Tóm tắt: Việc thiết lập một hệ thống theo dõi tiến trình học tập của sinh viên là một

nhiệm vụ vô cùng quan trọng và cấp bách trong bối cảnh hiện nay của lĩnh vực giáo dục Khimỗi sinh viên bắt đầu hành trình học tập tại trường, nhà trường sẽ tiến hành thu thập thông tin

cá nhân chi tiết của từng sinh viên, bao gồm họ tên, ngày sinh, quê quán, và các thông tin liênquan khác Cùng với đó, thông tin về tiến trình học tập của sinh viên cũng được cập nhật đềuđặn theo từng kỳ học, bao gồm điểm số, kết quả học tập, hoạt động ngoại khóa và các thôngtin liên quan khác

Tuy nhiên, một vấn đề lớn đang tồn tại là các thông tin này thường được lưu trữ mộtcách riêng lẻ trong các tập tin khác nhau Điều này dẫn đến nhiều khó khăn trong việc lưu trữ

dữ liệu tập trung và gây cản trở lớn khi cần tìm kiếm thông tin của sinh viên Các cán bộ quản

lý phải mất nhiều thời gian và công sức để tổng hợp và xử lý thông tin, điều này không chỉlàm giảm hiệu suất công việc mà còn có thể dẫn đến sai sót trong quá trình quản lý

Lý do chính để thực hiện đồ án này là nhằm cải thiện đáng kể công tác quản lý, thống

kê và tìm kiếm thông tin của thiết bị trong trường Khóa luận đề xuất một hệ thống websitequản lý trang thiết bị hiện đại và hiệu quả, sử dụng các công nghệ tiên tiến như ReactJS chogiao diện người dùng, Java Spring cho phần mềm máy chủ và MySQL cho cơ sở dữ liệu Hệthống này được thiết kế với mục tiêu giúp các cán bộ quản lý dễ dàng tìm kiếm và quản lý tậptrung tất cả các thông tin về thiết bị trong trường Nhờ đó, việc tìm kiếm thông tin thiết bị sẽtrở nên nhanh chóng và chính xác hơn rất nhiều

Không những thế, hệ thống còn hỗ trợ mạnh mẽ trong việc thống kê và so sánh tiếntrình học tập giữa các khoa, ngành khác nhau, từ đó cung cấp cho các nhà quản lý cái nhìntổng quan và sâu sắc nhất về sự tiến bộ của sinh viên trên toàn trường Điều này không chỉgiúp nâng cao hiệu quả quản lý giáo dục mà còn góp phần cải thiện chất lượng đào tạo và trảinghiệm học tập của sinh viên, tạo điều kiện thuận lợi cho sự phát triển toàn diện của sinh viêntrong suốt quá trình học tập tại trường

Từ khóa: Ứng dụng Web, Quản lý trang thiết bị cho trường học

Trang 4

LỜI CAM ĐOAN

Em xin cam đoan, nội dung và kết quả của đề tài “Xây dựng hệ thống website

quản lý trang thiết bị cho trường học” là do chính em thực hiện, thông qua sự hướng

dẫn chu đáo của TS Bùi Trung Ninh Các thông tin sử dụng trong đề tài đảm bảo tínhchính xác và trung thực, cũng như tuân thủ các quy định về trích dẫn và tài liệu thamkhảo

Em xin cam kết và chịu trách nhiệm về lời cam đoan này

Hà Nội, ngày … tháng … năm 2024

Sinh viên thực hiện,

Nguyễn Quang Huy

Trang 5

Trong quá trình thực hiện đồ án chắc chắn sẽ có những sai sót mà em mắc phải.Kính mong quý thầy cô có thể đưa ra những đóng góp để giúp em hoàn thiện sản phẩmcủa mình hơn nữa.

Em xin chân thành cảm ơn! Sinh viên: Nguyễn Quang Huy

Trang 6

DANH MỤC BẢNG BIỂU

Bảng 4.1 Bảng department 26

Bảng 4.2 Bảng detail 26

Bảng 4.3 Bảng devices 26

Bảng 4.4 Bảng devicestype 27

Bảng 4.5 Bảng laboratories 27

Bảng 4.6 Bảng maintenance 28

Bảng 4.7 Bảng managers 28

Bảng 4.8 Bảng subjects 28

i

Trang 7

DANH MỤC HÌNH ẢNH

ii

Trang 8

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Đặt vấn đề

Trong thời đại số hóa phát triển nhanh chóng, việc chuyển đổi sang các giải phápquản lý số hóa đã trở thành yêu cầu cấp bách đối với các tổ chức, nhằm nâng cao hiệusuất hoạt động và khả năng cạnh tranh Những công nghệ tiên tiến như trí tuệ nhân tạo,

dữ liệu lớn, và Internet vạn vật đang ngày càng được ứng dụng để cải thiện cách thứcquản lý, giúp gia tăng năng suất và đáp ứng tốt hơn các yêu cầu của người dùng

Trường Đại học Công nghệ - Đại học Quốc gia Hà Nội, với vai trò là một trongnhững cơ sở hàng đầu về đào tạo kỹ thuật và công nghệ, đã có nhiều bước tiến trongviệc đưa công nghệ số vào các hoạt động giảng dạy và quản lý Việc áp dụng các giảipháp công nghệ đã giúp nâng cao chất lượng đào tạo, đồng thời chuẩn bị cho sinh viênnhững kỹ năng cần thiết để đáp ứng xu hướng chuyển đổi số

Với mong muốn góp phần thúc đẩy quá trình chuyển đổi số tại Trường Đại họcCông nghệ, đề tài mà em sẽ trình bày trong báo cáo sẽ tập trung vào việc nghiên cứu

và ứng dụng các công nghệ mới vào công tác quản lý của nhà trường

Trong bối cảnh này, việc số hóa quy trình quản lý trang thiết bị của trường là mộtbước tiến quan trọng dể đảm bảo tính chính xác và hiệu quả Hệ thống quản lý trangthiết bị sẽ giúp tập trung hóa thông tin, thay thế cách quản lý thủ công rời rạc, từ đó cảithiện khả năng theo dõi và sử dụng tài nguyên của nhà trường Việc xây dựng hệ thốngnày không chỉ giúp nhà trường tiết kiệm thời gian và nguồn lực, mà còn đóng góp vàotiến trình chuyển đổi số toàn diện của trường

Trước nhu cầu cấp bách và những hạn chế trong cách quản lý hiện tại, em chọn

đề tài “Xây dựng hệ thống quan lý trang thiết bị cho trường học” cho đồ án tốt

nghiệp của mình Đây là cơ hội để em áp dụng những kiến thức đã học vào thực tiễn,đồng thời góp phần hỗ trợ công tác quản lý và phảt triển của nhà trường

1.2 Mục tiêu và yêu cầu của hệ thống

Mục tiêu của hệ thống là số hóa tối đa quy trình quản lý trang thiết bị, giúp giảmthiểu thời gian và công sức cho những người tham gia quản lý so với phương pháptruyền thống Thay vì phải sử dụng các phương pháp ghi chép thủ công, phân tán, hệthống sẽ tạo ra một môi trường quản lý tập trung, dễ theo dõi và kiểm soát hơn

Đối với nhà trường, hệ thống sẽ hỗ trợ việc quản lý trang thiết bị theo từng phòngban, bộ môn, và các phòng thí nghiệm một cách dễ dàng Điều này bao gồm theo dõi

1

Trang 9

thông tin chi tiết về số lượng, tình trạng sử dụng, bảo trì, và khấu hao của từng thiết bị,giúp nâng cao hiệu quả trong việc phân bổ nguồn lực.

Đối với cán bộ quản lý, hệ thống sẽ giúp họ theo dõi tình trạng sử dụng trangthiết bị của các phòng ban, so sánh mức độ sử dụng và yêu cầu giữa các khoa và bộmôn Việc quản lý và kiểm tra thiết bị thường xuyên sẽ dễ dàng hơn, từ đó nhà trường

có cái nhìn toàn diện về tình trạng tài sản và đưa ra các quyết định chiến lược trongviệc mua sắm hoặc bảo trì trang thiết bị

1.3 Phạm vi nghiên cứu

Đối tượng sử dụng của hệ thống là các cán bộ quản lý ở phòng Công tác sinhviên

1.4 Bố cục của đồ án

Bố cục của đồ án bao gồm 5 phần chính, mỗi phần tương ứng với một chương:

- Chương 1: Tổng quan về đề tài: giới thiệu về đề tài, phạm vi của đề tàicũng như kết quả mong muốn đạt được

- Chương 2: Phân tích hệ thống: căn cứ từ yêu cầu nghiệp vụ, đưa ra cácuse-case và luồng hoạt động của hệ thống

- Chương 3: Các công nghệ sử dụng trong hệ thống: căn cứ vào phântích hệ thống, lựa chọn những công nghệ sẽ được sử dụng

- Chương 4: Thiết kế và xây dựng hệ thống: thiết kế, xây dựng và triển khai

hệ thống

- Chương 5: Kết quả sản phẩm: Mô tả sản phẩm sau khi hoàn thành

2

Trang 10

CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG

2.1 Tóm tắt yêu cầu sản phẩm

Hệ thống có nhiệm vụ hỗ trợ nhà trường quản lý và theo dõi trạng thái sử dụngtrang thiết bị Hệ thống sẽ hỗ trợ cán bộ quản lý trong quá trình tổng hợp, đơn giản hóaviệc lưu trữ, thống kê và tìm kiếm thông tin liên quan đến tình trạng và quá trình sửdụng trang thiết bị

Qua làm việc làm việc với các bộ phận quản lý trang thiết bị, em tìm hiểu đượcyêu cầu của dự án sẽ như sau:

- Với mỗi lớp mới nhập học, cần thêm dữ liệu vào hệ thống gồm dữ liệu cá

nhân và dữ liệu về tiến trình học tập của học kỳ mà lớp đó nhập học  Cần

một chức năng cho phép phía cán bộ quản có thể thêm thông tin sinh viên hàng loạt bằng file Excel.

- Cán bộ quản lý có thể cập nhật thông tin về tiến trình học tập trong một

học kỳ mới  Chức năng cập nhật thông tin bằng file Excel.

- Sau khi đã có dữ liệu về tiến trình học tập, cán bộ quản lý có thể tìm kiếm

sinh viên theo các thông tin về cá nhân hoặc thông tin về tiến trình học tập

Chức năng tìm kiếm thông tin sinh viên.

- Cán bộ quản lý có thể xem được biểu đồ so sánh giữa các khoa, các ngành

trong trường theo các thông tin quan trọng trong tiến trình học tập của

sinh viên  Chức năng thống kê theo biểu đồ.

Bên cạnh đó, hệ thống phục vụ nhiều người dùng nên cần có thể cung cấp cho

mỗi người một tài khoản đăng nhập, phân quyền cho người dùng  Chức năng đăng

ký/đăng nhập, phân quyền.

2.2 Danh sách chức năng

Sau khi tổng hợp được những yêu cần cần có cho sản phẩm, ta sẽ có được danhsách cụ thể các chức năng như sau:

- Cụm chức năng Đăng ký/ Đăng nhập

+ Đăng ký tài khoản

+ Đăng nhập

+ Quên mật khẩu

- Cụm chức năng Quản trị

+ Quản trị tài khoản người dùng

+ Quản trị tài khoản cá nhân

+ Thêm, sửa, xóa ngành, khoa, lớp, sinh viên

Trang 11

+ Xem chi tiết khoa, ngành.

- Cụm chức năng Theo dõi tiến trình học tập của sinh viên

+ Tìm kiếm tất cả các thông tin của sinh viên và được liệt kê theo học kỳ + Xem chi tiết quá trình học tập của sinh viên theo học kỳ

+ Thống kê so sánh theo khoa, ngành

2.3 Phân tích chức năng

Trước khi đi vào phân tích chức năng, cần xác định được những người dùng khitham gia hệ thống sẽ có thể có vai trò như thế nào Hệ thống sẽ có 2 vai trò và với mỗimột người dùng sẽ có một vai trò duy nhất

- Admin: Chịu trách nhiệm về việc quản lý tài khoản người dùng

- Cán bộ quản lý: Cán bộ quản lý tham gia theo dõi tiến trình học tập của sinhviên

Sau đây, với mỗi chức năng được phân tích sẽ đều có ghi chú đối tượng sử dụng

là vai trò nào Để miêu tả các chức năng, chúng ta sẽ sử dụng Sơ đồ Usecase kết hợpvới Đặc tả Usecase

2.3.1 Cụm chức năng Đăng ký/Đăng nhập:

Hình 2.1 Sơ đồ usecase Đăng ký/Đăng nhập

Mô tả cụm chức năng: Cụm chức năng có nhiệm vụ cho phép người dùng tham

gia sử dụng hệ thống

Chi tiết cụm chức năng:

- Đăng nhập

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Cho phép người dùng đăng nhập vào hệ thống, sử dụng tên đăngnhập và mật khẩu

+ Tiền điều kiện: Tài khoản người dùng sử dụng để đăng nhập phải cótrong cơ sở dữ liệu của hệ thống

+ Hậu điều kiện: Người dùng đăng nhập thành công, chuyển hướng người

dùng đến trang chính của hệ thống

+ Luồng chạy chính:

1 Người dùng truy cập trang đăng nhập

2 Nhập thông tin đăng nhập gồm tên đăng nhập và Mật khẩu

3 Thực hiện lệnh đăng nhập

Trang 12

4 Hệ thống xác thực thông tin đăng nhập là chính xác và cho phépđăng nhập.

5 Chuyển hướng đến trang chính của hệ thống

+ Luồng chạy phát sinh: Nếu thông tin đăng nhập không đúng, hệ thốngbáo lỗi và không cho phép đăng nhập Trong trường hợp người dùng muốnlấy lại mật khẩu, chuyển qua chức năng Quên mật khẩu

- Đăng ký

+ Đối tượng: Cán bộ quản lý

+ Mô tả: Cán bộ quản lý đăng ký , liên hệ với Admin để được tạo tài khoản mới

+ Tiền điều kiện: Thông tin đăng ký của người dùng chưa tồn tại trong cơ

sở dữ liệu của hệ thống, thông tin đăng ký hợp lệ

+ Luồng chạy thay thế: Tài khoản mặc định sau khi đăng ký thành côngđều có vai trò là cán bộ quản lý, để thiết lập tài khoản cho Admin, cần thựchiện sửa trực tiếp vai trò trong cơ sở dữ liệu

+ Luồng chạy phát sinh: Thông báo lỗi nếu thông tin đăng ký không hợp lệhoặc email đã tồn tại trong hệ thống

- Quên mật khẩu

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Cho phép người dùng lấy lại mật khẩu và có thể truy cập lại vào

hệ thống

+ Tiền điều kiện: Người dùng còn nhớ chính xác email đã dùng để đăng

ký, email đó có tồn tại trong database và người dùng vẫn có khả năng truycập vào hòm thư của email đó

+ Hậu điều kiện: Hệ thống gửi mail kèm đường dẫn đến trang tạo mậtkhẩu mới Người dùng tạo mật khẩu mới và đăng nhập lại

+ Luồng chạy chính:

1 Người dùng truy cập màn hình Quên mật khẩu

2 Nhập email đã dùng để đăng ký tài khoản

3 Thực hiện lệnh Quên mật khẩu

4 Hệ thống thực hiện kiểm tra email có tồn tại trong hệ thống và gửiemail kèm đường dẫn đến trang tạo mật khẩu mới vào hòm thư củangười dùng

5 Người dùng tạo mật khẩu mới và đăng nhập lại dùng mật khẩu mới.+ Luồng chạy phát sinh: Thông báo lỗi nếu email không tồn tại

Trang 13

- Đăng xuất

+ Đối tượng: Admin, Cán bộ quản lý

+ Mô tả: Cho phép người dùng đăng xuất tài khoản khỏi hệ thống

+ Tiền điều kiện: Người dùng đã đăng nhập hệ thống và đang ở trong hệthống

+ Hậu điều kiện: Đăng xuất thành công, quay trở lại màn hình đăng nhập.+ Luồng chạy chính:

1 Người dùng thực hiện lệnh Đăng xuất từ trong hệ thống

2.3.2.Cụm chức năng Quản trị

Hình 2.2 Sơ đồ usecase Quản trị

Mô tả cụm chức năng: Cụm chức năng cho phép cán bộ quản lý thực hiện quản

trị hệ thống, cấu hình dữ liệu

Chi tiết cụm chức năng:

- Quản trị tài khoản

+ Đối tượng: Admin

+ Mô tả: Cho phép người dùng thực hiện thao tác quản lý người dùng của

hệ thống Bao gồm khả năng tạo, xóa tài khoản Tài khoản đã bị Admin xóa

sẽ không thể đăng nhập được nữa

Trang 14

+ Tiền điều kiện: Người dùng có vai trò là Admin, đã đăng nhập thànhcông vào hệ thống.

+ Hậu điều kiện: Truy cập thành công vào chức năng Quản trị, tạo ngườidùng thành công, thực hiện thao tác xóa thành công

+ Luồng chạy chính:

1 Người dùng truy cập chức năng Quản trị người dùng

2 Thực hiện thực hiện thao tác tạo, xóa tài khoản

3 Hệ thống thông báo thao tác thành công

- Quản trị tài khoản cá nhân:

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Chức năng cho phép tất cả người dùng có thể đổi mật khẩu đăngnhập tài khoản

+ Tiền điều kiện: Người dùng với bất kỳ vai trò nào, đã đăng nhập thànhcông vào hệ thống

+ Hậu điều kiện: Thực hiện thành công việc đổi mật khẩu tài khoản

+ Luồng chạy chính:

1 Người dùng truy cập chức năng Đổi mật khẩu tài khoản cá nhân

2 Chỉnh sửa mật khẩu cá nhân của mình

3 Hệ thống thông báo thành công

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào phátsinh

- Thêm, sửa, xóa khoa, ngành, lớp:

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Chức năng cho phép tất cả người dùng có thể chỉnh sửa, thêmmới các khoa, ngành, lớp trong hệ thống nếu có thay đổi

+ Tiền điều kiện: Người dùng với bất kỳ vai trò nào, đã đăng nhập thànhcông vào hệ thống và tên khoa, ngành, lớp chưa xuất hiện trong cơ sở dữliệu

+ Hậu điều kiện: Thực hiện thành công việc chỉnh sửa, thêm, xóa khoa,ngành, lớp

+ Luồng chạy chính:

1 Người dùng truy cập Danh sách khoa, ngành, lớp

2 Xem/chỉnh sửa/xóa khoa, ngành, lớp

3 Hệ thống thông báo thành công

Trang 15

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào phátsinh.

- Xem chi tiết khoa, ngành, lớp:

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Chức năng cho phép tất cả người dùng xem chi tiết thông tin cụthể, danh sách các đối tượng liên quan đến một khoa, ngành, lớp cụ thể.+ Tiền điều kiện: Người dùng với bất kỳ vai trò nào, đã đăng nhập thànhcông vào hệ thống và tên khoa, ngành, lớp đã xuất xuất hiện trong cơ sở dữliệu

+ Hậu điều kiện: Thực hiện thành công việc truy cập xem chi tiết đốitượng

+ Luồng chạy chính:

1 Người dùng truy cập chức năng Danh sách khoa, ngành, lớp

2 Xem chi tiết khoa, ngành, lớp

3 Hệ thống thông báo thành công

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào phátsinh

- Thêm thông tin của nhiều sinh viên theo học kỳ mới:

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Chức năng cho phép tất cả người dùng thêm mới thông tin củasinh viên gồm thông tin cá nhân cơ bản và thông tin học tập theo học kỳbằng danh sách trong file Excel

+ Tiền điều kiện: Người dùng với bất kỳ vai trò nào, đã đăng nhập thànhcông vào hệ thống và tên khoa, ngành đã xuất xuất hiện trong cơ sở dữliệu

+ Hậu điều kiện: Thực hiện thành công thêm mới

+ Luồng chạy chính:

1 Người dùng truy cập chức năng Thêm mới danh sách sinh viên

2 Tải xuống mẫu có sẵn và chỉnh sửa danh sách thêm mới theo mẫu

3 Chọn học kỳ muốn thêm

4 Tải danh sách sinh viên bằng file Excel đã được chỉnh sửa sẵn theomẫu

5 Hệ thống thông báo thành công

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào phátsinh

Trang 16

- Cập nhật thông tin của nhiều sinh viên theo học kỳ mới :

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Chức năng cho phép tất cả người dùng cập nhật thông tin học tậpcủa sinh viên thông tin học tập theo học kỳ bằng danh sách trong file Excel.+ Tiền điều kiện: Người dùng với bất kỳ vai trò nào, đã đăng nhập thànhcông vào hệ thống và tên khoa, ngành đã xuất xuất hiện trong cơ sở dữliệu

+ Hậu điều kiện: Thực hiện thành công thêm mới

4 Tải danh sách sinh viên bằng file Excel đã được chỉnh sửa sẵn

5 Hệ thống thông báo thành công

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào phátsinh

2.3.3 Cụm chức năng Theo dõi tiến trình học tập của sinh viên

Hình 2.3 Sơ đồ usecase Theo dõi tiến trình học tập của sinh viên

Mô tả cụm chức năng: Cụm chức năng cho phép cán bộ quản lý có thể tìm kiếm, theo

dõi tiến trình học tập của sinh viên theo từng kỳ học, giúp cán bộ quản lý có cái nhìn

Trang 17

tổng quát, so sánh về tiến trình học tập, khen thưởng, xử lý học vụ giữa các khoa,ngành học.

Chi tiết cụm chức năng:

- Tìm kiếm thông tin sinh viên

+ Đối tượng: Admin , cán bộ quản lý

+ Mô tả: Cho phép Admin, cán bộ quản lý tìm kiếm thông tin sinh viêntheo trường thông tin cơ bản gồm thông tin cá nhân và thông tin về tiếntrình học tập Kết quả sẽ là tất cả các thông tin của sinh viên thỏa mãn vàliệt kê theo từng kỳ học

+ Các tiêu chí cho phép tìm kiếm :

 Thông tin cá nhân : Họ và tên, mã sinh viên, quê quán…

 Thông tin về tiến trình học tập bao gồm: Xử lý học vụ, nợ tín chỉ,trạng thái học vụ, đối tượng miễn giảm học phí, điểm rèn luyện, …

 Thông tin về khen thưởng: Học bổng khuyến khích học tập, họcbổng ngoài ngân sách, gương mặt tiêu biểu các cấp

 Thông tin về nợ học phí

+ Tiền điều kiện:

 Người dùng đã đăng nhập thành công vào hệ thống

 Đã có dữ liệu sinh viên trong cơ sở dữ liệu

+ Hậu điều kiện: Thực hiện tìm kiếm thành công

+ Luồng chạy chính:

1 Người dùng truy cập chức năng Tìm kiếm

2 Người dùng chọn các trường thông tin muốn tìm kiếm

3 Hệ thống hiển thị danh sách các bản ghi thỏa mãn nếu có

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào sinh ratrong quá trình thao tác

- Xem, sửa chi tiết thông tin học tập của sinh viên theo học kỳ

+ Đối tượng: Admin, cán bộ quản lý

+ Mô tả: Chức năng cho phép người dùng có vai trò là admin hoặc cán bộquản lý xem, sửa chi tiết thông tin học tập

+ Tiền điều kiện:

 Người dùng có vai trò Admin hoăc cán bộ quản lý, đã đăng nhậpthành công vào hệ thống

 Có tồn tại đơn trên cơ sở dữ liệu của hệ thống

Trang 18

+ Hậu điều kiện: Người dùng, xem được chi tiết thông tin học tập của sinhviên.

+ Luồng chạy chính:

1 Người dùng truy cập chức năng tìm kiếm

2 Người dùng tìm kiếm sinh viên cụ thể theo các trường thông tin

3 Người dùng chọn bản ghi của sinh viên tương ứng với học kỳ cầnxem thông tin

4 Chuyển hướng người dùng sang trang chi tiết thông tin sinh viên theohọc kỳ

5 Xem, sửa được thông tin trong trang chi tiết

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào sinh ratrong quá trình thao tác

- Thống kê, so sánh giữa các khoa, các ngành theo các trường thông tin

+ Đối tượng: Admin

+ Mô tả: Chức năng cho phép người dùng xem danh sách và biểu đồ sosánh giữa các khoa, các ngành theo các trường thông tin

+ Tiền điều kiện:

 Người dùng có vai trò Admin, đã đăng nhập thành công vào hệthống

 Có tồn tại đơn trên cơ sở dữ liệu của hệ thống

+ Hậu điều kiện: Người dùng xem được biểu đồ so sánh giữa các khoa, cácngành theo các trường thông tin

+ Luồng chạy chính:

1 Người dùng truy cập chức năng thống kê theo khoa hoặc ngành,biểu đồ so sánh hiển thị trực tiếp tại đây

2 Thực hiện chọn từng trường thông tin cần so sánh

3 Biểu đồ sẽ được hiển thị theo trường thông tin đó

+ Luồng chạy phát sinh: Hệ thống thông báo lỗi với bất kỳ lỗi nào sinh ratrong quá trình thao tác

2.4 Kết chương

Sau khi trao đổi với Phòng Công tác sinh viên để nắm được nghiệp vụ đầy đủ củaviệc theo dõi tiến trình học tập của sinh viên Em đã có được bản mô tả đầy đủ cácchức năng cần phải có trên hệ thống Theo dõi tiến trình học tập của sinh viên Căn cứvào những yêu cầu đặt ra về chức năng, trong chương tiếp theo, chúng ta phân tích vàđưa ra lựa chọn về tất cả những công nghệ được sử dụng để phát triển hệ thống

Trang 19

CHƯƠNG 3: CÁC CÔNG NGHỆ SỬ DỤNG TRONG HỆ THỐNG

3.1 Nhận định về nền tảng sử dụng

Là một hệ thống dành cho con người sử dụng, phần lớn các chức năng trên hệthống để có thể hoạt động được đều cần có con người vận hành, ở đây chính là cácthầy cô giảng viên cũng như các thầy cô quản lý sinh viên Chính vì vậy khi lựa chọnnền tảng để phát triển hệ thống, một trong những yếu tố cần đặt lên hàng đầu đó là tính

dễ tiếp cận Đáp ứng nhu cầu đó, em quyết định lựa chọn sẽ phát triển hệ thống dướidạng một ứng dụng Web

Ứng dụng Web là ứng dụng có thể truy cập được thông qua trình duyệt, chính vìvậy ứng dụng Web có khả năng triển khai đa nền tảng, từ máy tính cho đến điện thoạicũng như các thiết bị công nghệ hiện đại ngày nay Chỉ cần các thiết bị sử dụng có khảnăng truy cập vào Internet Điều này sẽ giúp cho người dùng dễ dàng tiếp cận và sửdụng hệ thống hơn so với một ứng dụng máy tính hay một ứng dụng trên điện thoại

xử lý

- Backend (phía server): Chịu trách nhiệm xử lý dữ liệu và logic nền tảngcủa ứng dụng, nhận các yêu cầu từ phía Frontend và xử lý sau đó tùy vàotừng trường hợp mà có trả về phản hồi cho Frontend hay không Backendcũng sẽ cung cấp ra những API, đó là giao diện để Frontend và Backend

có thể trao đổi dữ liệu, thông tin với nhau

Hình 3.1 Sơ đồ thành phần cơ bản của ứng dụng Web

Trang 20

Có thể coi những thành phần này có mối tương quan với mô hình client-server,

nó chỉ ra cách các thành phần trong ứng dụng Web tương tác với nhau Giữa Client vàServer sẽ liên lạc với nhau qua các giao thức mạng

3.2.1 Công nghệ sử dụng ở Frontend

- HTML (Hypertext Markup Language): HTML, hay còn gọi là ngôn ngữ

đánh dấu siêu văn bản, là nền tảng quan trọng và không thể thiếu trong việc xây dựng

và cấu trúc nội dung của các trang web HTML cho phép chúng ta tổ chức và địnhdạng các thành phần như đoạn văn, tiêu đề, liên kết, trích dẫn, hình ảnh và nhiều thànhphần khác, từ đó tạo nên bộ khung cơ bản của một trang web Mỗi website thường baogồm nhiều trang con, và mỗi trang con này lại có một tập tin HTML riêng biệt để quản

lý nội dung của nó

Mặc dù HTML không phải là ngôn ngữ lập trình và do đó không thể tự mìnhthực hiện các chức năng động như các ngôn ngữ lập trình khác, nhưng vai trò của nótương tự như phần mềm Microsoft Word, tức là chủ yếu dùng để bố cục và định dạngnội dung HTML cung cấp các thẻ (tags) và thuộc tính (attributes) để chúng ta có thểxác định cấu trúc của tài liệu, từ việc tạo các đoạn văn bản đơn giản đến việc thiết lậpcác bảng phức tạp hay nhúng các đa phương tiện như hình ảnh và video

Một trang web chỉ sử dụng HTML sẽ trông rất thô sơ và thiếu sự hấp dẫn Đểkhắc phục điều này, HTML thường được kết hợp với CSS (Cascading Style Sheets) vàJavaScript để tạo ra những trang web hoàn chỉnh và tương tác CSS giúp định kiểu vàtrình bày các thành phần HTML, từ việc thay đổi màu sắc, kiểu chữ, bố cục cho đếnviệc tạo ra các hiệu ứng phức tạp Trong khi đó, JavaScript cho phép thêm các tínhnăng động và tương tác, chẳng hạn như phản hồi người dùng, xác thực biểu mẫu, hoặcthậm chí là xây dựng các ứng dụng web phức tạp

Sự kết hợp giữa HTML, CSS và JavaScript không chỉ mang lại sự linh hoạt vàmạnh mẽ trong thiết kế web mà còn nâng cao trải nghiệm người dùng, giúp các trangweb trở nên sống động và hấp dẫn hơn Qua đó, chúng ta có thể thấy rằng HTML làbước khởi đầu quan trọng trong hành trình tạo ra một sản phẩm web hoàn chỉnh, đóngvai trò là nền tảng vững chắc cho sự phát triển và sáng tạo không ngừng trong lĩnh vựccông nghệ thông tin.[ CITATION Vib15 \l 1033 ]

- CSS (Cascading Style Sheets): CSS, hay còn gọi là ngôn ngữ định kiểu tầng,

là một công cụ mạnh mẽ được sử dụng để định dạng và tạo phong cách cho các phần

tử được tạo ra bởi các ngôn ngữ đánh dấu như HTML Hiểu một cách đơn giản, CSSchính là ngôn ngữ giúp tạo ra vẻ ngoài hấp dẫn và thẩm mỹ cho các trang web Trongkhi HTML chịu trách nhiệm xây dựng cấu trúc cơ bản của trang web, tạo ra các đoạn

Trang 21

văn bản, tiêu đề, bảng biểu, thì CSS lại đảm nhận vai trò làm cho những phần tử đótrở nên sống động và đẹp mắt hơn.

CSS cho phép chúng ta thay đổi và tùy chỉnh bố cục, màu sắc, kiểu chữ, và nhiềuđặc tính khác của các phần tử HTML Với CSS, chúng ta có thể dễ dàng thay đổi màunền của trang, định dạng màu chữ, chọn font chữ phù hợp, và thậm chí thay đổi toàn

bộ cấu trúc của trang web chỉ bằng một vài dòng mã CSS mang lại sự linh hoạt và khảnăng tái sử dụng cao, cho phép nhà thiết kế có thể áp dụng cùng một kiểu định dạngcho nhiều trang web khác nhau hoặc thay đổi toàn bộ giao diện của một trang web chỉtrong vài thao tác.[ CITATION Vib15 \l 1033 ]

- TypeScript:

TypeScript là một ngôn ngữ lập trình được phát triển bởi Microsoft, mở rộng từJavaScript nhằm mang lại sự chặt chẽ và rõ ràng hơn về mặt kiểu dữ liệu TypeScriptcho phép lập trình viên xác định rõ ràng kiểu dữ liệu cho biến, hàm và đối tượng, giúpgiảm thiểu các lỗi thường gặp khi sử dụng JavaScript thuần Với khả năng hỗ trợ kiểmtra lỗi ngay từ giai đoạn biên dịch, TypeScript giúp tăng hiệu quả và độ tin cậy của mãnguồn Cuối cùng, mã nguồn TypeScript sẽ được biên dịch về JavaScript để chạy trênhầu hết các trình duyệt hiện nay, mang lại sự linh hoạt và tương thích cao cho các ứngdụng web [ CITATION Vib17 \l 1033 ][CITATION viblo19 \l 1033 ]

- Next JS (JavaScript Framework):

Next.js là một framework phát triển web dựa trên React, được tạo ra bởi Vercel

Nó cung cấp một cách tiếp cận không cần cấu hình (zero-config) cho việc xây dựngcác ứng dụng React, giúp các nhà phát triển tập trung vào việc xây dựng tính năngthay vì mất thời gian với việc cấu hình Next.js hỗ trợ cả việc tạo trang web tĩnh (StaticGeneration) và việc render trang từ phía server (Server-Side Rendering), cho phép tạo

ra các ứng dụng web nhanh chóng và hiệu quả về mặt SEO

Các tính năng chính của Next.js bao gồm:

+ Server-Side Rendering (SSR): Cho phép tạo ra nội dung HTML từ phíaserver trước khi gửi đến trình duyệt, giúp cải thiện tốc độ tải trang và SEO.+ Static Site Generation (SSG): Tạo ra các trang web tĩnh tại thời điểmbuild, giúp tối ưu hóa hiệu suất và tải trang nhanh chóng

+ Automatic Code Splitting: Tự động chia nhỏ mã nguồn thành các gói nhỏhơn, giúp giảm thời gian tải trang

+ Image Optimization: Tự động tối ưu hóa hình ảnh, bao gồm lazy loading,

để cải thiện hiệu suất và UX

Trang 22

+ Built-in CSS Support: Hỗ trợ CSS mà không cần cấu hình thêm, bao gồm

cả CSS Modules và Sass

+ TypeScript Support: Hỗ trợ TypeScript ngay lập tức, giúp việc phát triểnứng dụng trở nên mạnh mẽ và dễ bảo trì hơn

+ API Routes: Cho phép xây dựng API endpoints bên trong Next.js để xử

lý các yêu cầu từ phía client

+ Fast Refresh: Tính năng nạp lại mã nguồn nhanh chóng khi có thay đổi,giúp tăng tốc độ phát triển.[ CITATION Cao23 \l 1033 ][ CITATIONviblo22 \l 1033 ]

- Đối với Frontend, việc sử dụng bộ ba HTML– CSS – JavaScript đã trở thànhtiêu chuẩn cho tất cả các trang web trên Internet hiện nay Tuy nhiên, việc quyết định

sử dụng framework JavaScript nào là một bước quan trọng Hiện nay, có rất nhiềuframework nổi tiếng với cộng đồng người dùng lớn, như React, Vue.js, Angular, …Với mục tiêu tạo ra một ứng dụng web nhẹ nhàng và thuận tiện cho người dùng,

em quyết định sử dụng Next.js, một framework dựa trên React Next.js hỗ trợ mạnh

mẽ việc phát triển ứng dụng Single-Page Application (SPA), nhưng đồng thời cũngmang lại nhiều lợi ích của Server-Side Rendering (SSR) Nhờ vào khả năng kết hợpgiữa SPA và SSR, các ứng dụng web phát triển bằng Next.js có tốc độ tải nhanh hơn,cải thiện SEO và mang lại trải nghiệm người dùng mượt mà

Next.js giúp tải trang web một lần từ server khi khởi tạo, sau đó người dùng cóthể thực hiện mọi thao tác mà không cần tải lại trang Điều này đảm bảo rằng ứngdụng luôn phản hồi nhanh chóng và liên tục, tăng cường sự tương tác của người dùngvới từng thành phần của trang web Hơn nữa, cách phát triển mã nguồn với Next.js rất

rõ ràng và rành mạch, giúp lập trình viên dễ dàng quản lý và mở rộng dự án

Đó chính là lý do em chọn Next.js để phát triển phần Frontend của ứng dụng,nhằm đạt được hiệu quả cao nhất và mang lại trải nghiệm tốt nhất cho người dùng

Trang 23

3.2.2 Công nghệ sử dụng ở Backend

- Java:

Java là một ngôn ngữ lập trình phổ biến được sử dụng trên khắp thế giới Nóđược tạo ra bởi Sun Microsystems vào năm 1995 và sau đó được mua lại bởi OracleCorporation Java được phát triển với mục đích là một ngôn ngữ lập trình đa nền tảng,

có khả năng chạy trên nhiều hệ điều hành khác nhau như Windows, MacOS, Linux vàcác thiết bị di động.[ CITATION Vib171 \l 1033 ][ CITATION Her19 \l 1033 ]

Java được thiết kế để có tính bảo mật cao, chạy ổn định và dễ dàng phát triển Nócũng hỗ trợ rất nhiều thư viện và công cụ phát triển, giúp các nhà phát triển xây dựngcác ứng dụng phức tạp một cách dễ dàng

Java được sử dụng rộng rãi trong nhiều lĩnh vực, từ phát triển ứng dụng máy tínhđến phát triển các ứng dụng di động và web Nó cũng được sử dụng trong các ứngdụng kỹ thuật số, game và các ứng dụng tài chính

Một số đặc điểm và tính năng của Java bao gồm:

+ Đa nền tảng: Java có khả năng chạy trên nhiều hệ điều hành khác nhau,giúp cho việc phát triển và triển khai ứng dụng trở nên linh hoạt hơn

+ Ngôn ngữ lập trình hướng đối tượng (OOP): Java được thiết kế theo môhình OOP, giúp cho việc phát triển và bảo trì các ứng dụng trở nên dễ dànghơn

+ Bảo mật cao: Java có cơ chế bảo mật mạnh mẽ giúp ngăn chặn các mãđộc và virus, bảo vệ các tài nguyên của hệ thống

+ Quản lý bộ nhớ tự động: Java có bộ thu gom rác giúp quản lý bộ nhớ tựđộng, giảm thiểu việc phải thủ công quản lý bộ nhớ

+ Cú pháp dễ đọc: Java có cú pháp rõ ràng, dễ đọc và dễ hiểu, giúp choviệc phát triển và bảo trì ứng dụng trở nên dễ dàng hơn

+ Thư viện phong phú: Java có một bộ thư viện lớn và phong phú, bao gồmcác thư viện đồ họa, xử lý ảnh, kết nối cơ sở dữ liệu, đa luồng, …, giúp choviệc phát triển ứng dụng dễ dàng và tiết kiệm thời gian [ CITATIONVib20 \l 1033 ]

- Spring:

Đây là một framework của Java, như đã nói Java là một ngôn ngữ mạnh mẽ hỗtrợ phát triển rất nhiều kiểu ứng dụng, tuy nhiên để có thể phát triển ứng dụng Webmột cách thuận tiện nhất, cần phải sử dụng Spring Spring cung cấp nhiều tính năng đểquản lý các đối tượng trong ứng dụng, tương tác với cơ sở dữ liệu và xử lý requestđược gửi từ phía client [ CITATION Vib171 \l 1033 ][ CITATION Her19 \l 1033 ]

Trang 24

- Spring Boot:

Spring Boot là một framework phát triển ứng dụng Java, được xây dựng dựa trênSpring Framework Nó cung cấp một cách dễ dàng và nhanh chóng để phát triển ứngdụng Java thông qua việc tự cấu hình và tạo ra một cấu trúc mặc định

Nó cung cấp nhiều tính năng và tiện ích giúp cho việc phát triển ứng dụng dễdàng hơn, bao gồm:

+ Tự động cấu hình: Spring Boot giúp tự động cấu hình các thành phầntrong ứng dụng mà không cần phải viết nhiều mã

+ Nhúng servlet container: Spring Boot có thể nhúng servlet container nhưTomcat hoặc Jetty, giúp giảm thiểu thời gian triển khai ứng dụng

+ Tích hợp tốt với các công nghệ khác: Spring Boot tích hợp tốt với nhiềucông nghệ khác nhau như Thymeleaf, Hibernate, JPA, Spring Data…

+ Tích hợp các tính năng giúp phát triển nhanh: Spring Boot cung cấp cáctính năng như Spring DevTools, Spring Actuator, Spring Security…, giúpcho việc phát triển ứng dụng nhanh chóng và hiệu quả hơn.[ CITATIONVib171 \l 1033 ][ CITATION Her19 \l 1033 ][ CITATION Dim16 \l 1033 ]

- JWT (JSON Web Token):

JWT là một phương thức để truyền tải thông tin giữa client với server dưới dạng

một đoạn mã có chữ ký (token) và được định dạng bằng JSON Chuỗi token thườngbao gồm 3 phần: header, payload và signature và chúng được ngăn cách bởi dấu “.”JWT được sử dụng để phục vụ việc bảo mật hệ thống, yêu cầu người dùng phải đăngnhập được hệ thống mới có thể gọi đến các API trên server [ CITATION Top21 \l

1033 ]

- WebSocket:

WebSocket là một công nghệ giao tiếp hai chiều, cung cấp khả năng trao đổi dữ

liệu trong thời gian thực Nó cung cấp nhiều lợi ích như giảm số lượng kết nối, tiếtkiệm băng thông cũng như tăng tốc độ truyền dữ liệu Tạo ra khả năng tương tác trongthời gian thực [ CITATION Vib172 \l 1033 ]

- MySQL:

+ MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở(RDBMS) được sử dụng rộng rãi trong các ứng dụng web và ứng dụngdoanh nghiệp Nó là một phần của bộ công cụ LAMP (Linux, Apache,MySQL, PHP/Python/Perl), một nền tảng phát triển web phổ biến

Trang 25

+ MySQL cung cấp một loạt các tính năng quản lý cơ sở dữ liệu như lưutrữ, truy xuất, sắp xếp, tìm kiếm và phân tích dữ liệu Nó cũng hỗ trợ cáctính năng an toàn và bảo mật như xác thực, mã hóa dữ liệu và phân quyền.+ MySQL được phát triển bởi Oracle Corporation và là một phần củaOracle Database Nó cũng có các phiên bản mã nguồn mở như MariaDB vàPercona Server MySQL có thể được sử dụng trên các nền tảng khác nhaubao gồm Windows, Linux và Mac OS X, và có thể tích hợp với các ngônngữ lập trình phổ biến như PHP, Java và Python.[ CITATION 20023 \l

1033 ]

3.3 Công nghệ triển khai

Khi đã sử dụng những công nghệ để phát triển lõi của ứng dụng, lúc này các ứngdụng đã có thể chạy cục bộ trên thiết bị của người phát triển ứng dụng Tuy nhiên, để

có thể cung cấp ứng dụng đến cho nhiều người sử dụng, nhà phát triển cần triển khai

hệ thống lên các máy chủ có khả năng kết nối vào Internet, từ đó cung cấp cho ngườidùng khả năng truy cập từ xa

Có thể hiểu đơn giản, việc chúng ta có một tệp HTML và CSS khi mở ở máy tính

cá nhân của lập trình viên thì có thể hiển thị ra được Tuy nhiên, nếu muốn một ngườikhác xem được nội dung đó, lập trình viên sẽ phải gửi các tệp đó qua cho người sửdụng Điều này không khả thi và không hiệu quả khi muốn cung cấp dịch vụ cho mộtlượng lớn người dùng Tương tự như vậy với phía Backend, để một ứng dụng Backend

có thể chạy được và phục vụ các yêu cầu từ phía Frontend, nhà phát triển cần phảitriển khai bản dựng của mã nguồn lên một nơi mà Frontend có thể truy cập từ xa.Việc triển khai hệ thống lên máy chủ chính là quá trình đưa các ứng dụng này lênmôi trường Internet, cho phép nhiều người dùng cùng lúc truy cập và sử dụng Điềunày không chỉ giúp tiết kiệm thời gian và công sức của lập trình viên mà còn đảm bảorằng ứng dụng có thể hoạt động ổn định và phục vụ tốt cho nhu cầu của người dùng Chúng ta sẽ sử dụng Webserver để thực hiện nhiệm vụ này Webserver là mộtphần mềm chạy trên một phần cứng cụ thể, thường là một máy chủ chuyên dụng Khiứng dụng Webserver chạy trên thiết bị, thiết bị đó sẽ có chức năng như một máy chủweb Khi client gửi một yêu cầu nào đó, yêu cầu này sẽ được gửi đến máy chủ web.Máy chủ web sẽ xử lý yêu cầu này và trả về dữ liệu hoặc thông tin theo yêu cầu củaclient Điều này giúp đảm bảo rằng các ứng dụng có thể phục vụ liên tục và hiệu quảcho nhiều người dùng cùng lúc

Với các ứng dụng Frontend và Backend, chúng ta thường cần phải sử dụng haiứng dụng Webserver khác nhau để đảm bảo sự tách biệt rõ ràng giữa phần giao diện

Trang 26

người dùng và phần logic xử lý Webserver dành cho Frontend sẽ chịu trách nhiệmphục vụ các tệp HTML, CSS và JavaScript, trong khi Webserver cho Backend sẽ xử lýcác yêu cầu API, kết nối cơ sở dữ liệu và thực hiện các tác vụ logic khác.

Sử dụng Webserver không chỉ đảm bảo rằng các ứng dụng có thể hoạt động ổnđịnh và hiệu quả, mà còn mang lại khả năng mở rộng và bảo mật tốt hơn Bằng cáchtriển khai hệ thống lên các máy chủ mạnh mẽ và đáng tin cậy, chúng ta có thể cungcấp dịch vụ cho hàng nghìn, thậm chí hàng triệu người dùng cùng lúc, đảm bảo rằng

họ luôn có trải nghiệm tốt nhất khi sử dụng ứng dụng.Chúng ta sẽ dùng Webserver đểthực hiện nhiệm vụ này Webserver là một phần mềm chạy trên một phần cứng Ứngdụng Webserver chạy trên thiết bị sẽ khiến thiết bị đó có chức năng là một máy chủweb Khi client gửi một yêu cầu nào đó, nó sẽ được gửi đến máy chủ web, phía máychủ sẽ xử lý yêu cầu này và trả về dữ liệu hoặc thông tin tùy theo yêu cầu VớiFrontend và Backend, sẽ cần phải sử dụng hai ứng dụng Webserver khác nhau

3.3.2 Apache Tomcat

Tương tự như Frontend, phía Backend cũng cần có một webserver riêng để đảmbảo hiệu suất và tính ổn định của hệ thống Với các ứng dụng web được xây dựng trênnền tảng Java Spring Boot, Java đi kèm với Tomcat làm webserver mặc định Tomcatcung cấp khả năng chạy các ứng dụng web động được viết bằng ngôn ngữ Java, tạo ramột môi trường thực thi hiệu quả và đáng tin cậy

Tomcat được thiết kế với mục tiêu đơn giản và linh hoạt, giúp các nhà phát triển

dễ dàng triển khai và quản lý các ứng dụng web Hỗ trợ các tiêu chuẩn Java Servlet vàJavaServer Pages (JSP), Tomcat cho phép ứng dụng có thể xử lý các yêu cầu từ phíangười dùng một cách mượt mà Nhờ tính năng này, Tomcat đã trở thành một trongnhững giải pháp máy chủ ứng dụng web phổ biến nhất, được tin dùng rộng rãi trênnhiều hệ thống máy chủ của các công ty và tổ chức trên toàn thế giới

Trang 27

Khả năng xử lý đồng thời nhiều kết nối và duy trì hiệu suất cao là những ưu điểmnổi bật của Tomcat Điều này giúp đảm bảo rằng ứng dụng web có thể phục vụ mộtlượng lớn người dùng mà không gặp phải các vấn đề về tốc độ hoặc độ tin cậy Hơnnữa, với cộng đồng hỗ trợ mạnh mẽ và tài liệu phong phú, Tomcat giúp các nhà pháttriển dễ dàng tìm kiếm giải pháp cho các vấn đề gặp phải trong quá trình triển khai vàvận hành.

Nhờ vào những đặc điểm nổi bật này, Tomcat đã chứng minh được tính hiệu quảcủa mình trong nhiều dự án thực tế và trở thành một lựa chọn phổ biến trong việc xâydựng và triển khai các ứng dụng web Java Sử dụng Tomcat làm webserver choBackend không chỉ đảm bảo hiệu suất và ổn định mà còn mang lại sự linh hoạt và dễdàng trong quản lý hệ thống.[ CITATION Mắt21 \l 1033 ]

3.3.3 Dịch vụ máy chủ

Về cơ bản, khi chúng ta cài đặt ứng dụng webserver lên một máy tính, máy tính

đó sẽ trở thành máy chủ Tuy nhiên, webserver thường không được cài đặt trên máytính thông thường mà thay vào đó là trên một thiết bị phần cứng tối ưu, hoạt động liêntục 24/7 và hỗ trợ tốt cho vai trò làm máy chủ Đó chính là một máy chủ ảo (VPS).Hiện nay, có nhiều nhà cung cấp dịch vụ VPS với giá cả phải chăng, và em đã quyếtđịnh lựa chọn DigitalOcean để thuê máy chủ

DigitalOcean là một nhà cung cấp dịch vụ máy chủ và các giải pháp cơ sở hạtầng dành cho nhà phát triển với ưu điểm nổi bật là khả năng cấu hình nhanh chóng.Chỉ với vài thao tác đơn giản, em đã có thể có ngay một máy chủ sẵn sàng để sử dụng.Chúng ta sẽ thiết lập hai máy chủ trên DigitalOcean: một để triển khai Backend và một

để triển khai Frontend

Ngoài ra, chúng ta cũng cần thuê thêm một máy chủ để triển khai cơ sở dữ liệu.May mắn thay, DigitalOcean cung cấp dịch vụ riêng cho việc triển khai cơ sở dữ liệu,giúp đảm bảo rằng hệ thống cơ sở dữ liệu của chúng ta hoạt động ổn định và hiệu quả Việc sử dụng các máy chủ từ DigitalOcean không chỉ đảm bảo hiệu suất và độ tincậy cao cho hệ thống của chúng ta mà còn mang lại sự linh hoạt và dễ dàng trong quản

lý và mở rộng Điều này giúp chúng ta tập trung vào phát triển ứng dụng mà khôngphải lo lắng về các vấn đề liên quan đến hạ tầng máy chủ

3.3.4 CI/CD

Trong quá trình phát triển hệ thống, mỗi khi cập nhật mã nguồn, sửa lỗi hoặcthêm tính năng mới, việc triển khai mã nguồn mới lên máy chủ đòi hỏi phải xây dựnglại ứng dụng từ mã nguồn, tải lên máy chủ và khởi động lại webserver Quá trình này

Trang 28

rất tốn thời gian của nhà phát triển Để giải quyết vấn đề này, kỹ thuật CI/CD được sửdụng

CI/CD (Continuous Integration/Continuous Delivery/Continuous Deployment) làmột phương pháp phát triển phần mềm tự động hóa và liên tục:

- Continuous Integration là quá trình liên tục kiểm tra, xây dựng và kiểm thửphần mềm trong suốt quá trình phát triển Mỗi khi có sự thay đổi trong mãnguồn, hệ thống sẽ tự động chạy các quy trình kiểm thử đã được cấu hình trước

để đảm bảo mã nguồn ổn định và nhất quán

- Continuous Delivery/Continuous Deployment là quá trình tự động hóa việctriển khai phần mềm từ giai đoạn kiểm thử đến khi ứng dụng được triển khai lênmáy chủ

3.3.5 Docker

Docker là một nền tảng phần mềm cho phép tạo, chạy và quản lý các ứng dụngtrong một môi trường đóng gói độc lập với hệ điều hành của máy chủ Điều này cónghĩa là sau khi đã cấu hình đầy đủ các phụ thuộc cần thiết để ứng dụng có thể hoạtđộng, chúng ta chỉ cần tải tệp đóng gói của Docker lên bất kỳ thiết bị nào và chạy tệp

đó Docker sẽ tự động xử lý tất cả các bước còn lại, giúp chúng ta chạy ứng dụng màkhông cần phải tự cài đặt lại các phụ thuộc trên thiết bị đó

Quá trình đóng gói các phụ thuộc này được gọi là đóng gói Container Cáccontainer này rất nhẹ và nhanh, cho phép nhà phát triển triển khai và chạy ứng dụngmột cách linh hoạt và hiệu quả Sử dụng container giúp tăng đáng kể tốc độ triển khai

và giảm chi phí trong quá trình vận hành, bởi vì chúng ta không cần phải thiết lập lạimôi trường cho mỗi lần triển khai mới

Chúng ta sẽ sử dụng Docker để triển khai cả Frontend và Backend lên máy chủ.Điều này không chỉ giúp đảm bảo rằng các ứng dụng của chúng ta chạy nhất quán trênmọi môi trường, mà còn đơn giản hóa quá trình quản lý và bảo trì hệ thống Dockercung cấp một cách tiếp cận linh hoạt và hiện đại cho việc triển khai ứng dụng, giúpchúng ta tập trung vào phát triển tính năng thay vì phải lo lắng về các vấn đề liên quanđến môi trường triển khai.[ CITATION Top211 \l 1033 ][ CITATION Nig17 \l 1033 ]

3.4 Công cụ phát triển

3.4.1 Giới thiệu về công cụ IntelliJ IDEA

Phần mềm IntelliJ IDEA, sản phẩm nổi tiếng của JetBrains đã nhận được rấtnhiều giải thưởng Phần mềm được thiết kế để cải tiến năng suất cho các nhà pháttriển IntelliJ IDEA cung cấp trình soạn thảo thông minh, trình phân tích mã và tập hợp

Ngày đăng: 16/11/2024, 16:08

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

TÀI LIỆU LIÊN QUAN

w