Mục tiêu Mục tiêu chính của việc xây dựng website và ứng dụng di động hỗ trợ quản lý hệ thống phòng máy thực hành cho Trường Đại học Sư phạm Kỹ Thuật là cải thiện hiệu quả quản lý và sử
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 2Đà Nẵng, tháng 06/2023
Trang 3ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 4Đà Nẵng, tháng 06/2023
Trang 5NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Đà Nẵng, ngày tháng năm 2023
Giảng viên hướng dẫn
Trang 6NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
Đà Nẵng, ngày tháng năm 2023
Người phản biện
Trang 7tập trung vào việc xây dựng một website quản lý hệ thống phòng máy
Website sẽ được thiết kế để cung cấp thông tin về các phòng máy và các thiết bịđược trang bị trong đó, giảng viên đăng nhập và đặt lịch sử dụng phòng máy Ứng dụngvào việc quản lý hệ thống phòng máy website hỗ trợ nhân viên quản lý thực hiện cácthao tác với phòng máy dễ dàng và hiệu quả hơn trong việc sắp xếp lịch sử dụng phòngmáy tính, thêm và xóa các thiết bị trong phòng máy, duyệt yêu cầu đặt lịch sử dụng
Đề tài này sẽ đóng góp vào việc cải thiện chất lượng giảng dạy và học tập của sinhviên cũng như nâng cao năng suất của giảng viên bằng cách cung cấp một hệ thốngquản lý phòng máy hiện đại và dễ dàng thao tác
Trang 8Tên đề tài: Xây dựng website hỗ trợ quản lý hệ thống phòng máy thực hành cho
Trường Đại học Sư phạm Kỹ Thuật
Thời gian thực hiện: Từ ngày: 26/12/2022 đến ngày: 11/06/2023
5 Mục tiêu
Mục tiêu chính của việc xây dựng website và ứng dụng di động hỗ trợ quản lý
hệ thống phòng máy thực hành cho Trường Đại học Sư phạm Kỹ Thuật là cải thiện hiệu quả quản lý và sử dụng tài nguyên phòng máy của trường Cụ thể, các mục tiêu bao gồm:
- Quản lý phòng máy hiệu quả hơn: Website và ứng dụng di động sẽ giúp
quản lý phòng máy dễ dàng hơn bằng cách cho phép đặt lịch sử dụng phòng, xácđịnh trạng thái sử dụng phòng, theo dõi lịch sử sử dụng phòng của từng ngườidùng, giúp người quản lý có cái nhìn tổng quan về tình trạng phòng máy
- Tiết kiệm thời gian: Sử dụng website và ứng dụng di động sẽ giúp giảm thiểu
thời gian cần thiết để thực hiện các công việc quản lý phòng máy truyền thống,như điện thoại, gửi email hoặc gặp trực tiếp để đặt lịch sử dụng phòng
- Tăng cường tính hiện đại và tiện lợi: Sử dụng website sẽ giúp nâng cao tính
tiện lợi và hiện đại của hệ thống quản lý phòng máy, giúp cho việc quản lý và sửdụng tài nguyên phòng máy trở nên dễ dàng và thuận tiện hơn
Trang 93 Phương pháp nghiên cứu
4 Giải pháp công nghệ
5 Cấu trúc đồ án
Chương 1: Cơ sở lý thuyết
1 Tổng quan về hệ thống phòng máy thực hành của Trường Đại học Sư phạm
Kỹ thuật
2 Các công nghệ sử dụng
Chương 2: Phân tích thiết kế
1 Khảo sát yêu cầu
2 Phân tích thiết kế hệ thống
Chương 3: Xây dựng chương trình
1 Phân tích kiến trúc hệ thống
2 Lựa chọn công nghệ phù hợp để phát triển hệ thống
3 Triển khai hệ thống trên website
4 Kiểm thử các chức năng của hệ thống
5 Đánh giá hiệu quả của hệ thống
Kết luận
1 Đánh giá chung
2 Hướng phát triển
7 Kết quả dự kiến đạt được
Thiết kế và phát triển thành công website quản lý hệ thống phòng máy thực hành ,giúp giảng viên Trường Đại học Sư phạm Kỹ thuật quản lý hệ thống phòng máy thựchành hiệu quả hơn
Cải thiện hiệu suất của quá trình quản lý phòng máy thực hành, giảm thiểu thờigian và chi phí cho công việc quản lý
Nâng cao trải nghiệm của người dùng khi sử dụng hệ thống, giúp giảng viên, sinhviên và nhân viên của Trường Đại học Sư phạm Kỹ thuật có thể dễ dàng sử dụng vàtiếp cận với thông tin và các chức năng của hệ thống
Đóng góp vào quá trình nâng cao chất lượng giảng dạy và học tập tại Trường Đạihọc Sư phạm Kỹ thuật
Trang 10Hoàn thành đề cương đồ án tốt nghiệp
2 Tuần 3 Tìm hiểu và thu thập yêu cầu từ
4 Tuần 6 Cài đặt môi trường và các công
Phát triển chức năng đăng nhập
và quản lý tài khoản người dùng
Xây dựng thành công chức năng đăng nhập và quản lý người dùng
7 Tuần 9 Phát triển các chức năng của
9 Tuần 12, 13,
14
Phát triển chức năng đặt lịch sửdụng phòng máy
Xây dựng thành công chức năng đặt lịch sử dụng phòng máy
10 Tuần 15 Tổng kết và viết báo cáo đồ án
Trang 11NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Giảng viên hướng dẫn: TS Hoàng Thị Mỹ Lệ
Sinh viên thực hiện: Hồ Thái Bình Mã SV: 1911505310105
1 Tên đề tài:
Xây dựng website quản lý hệ thống phòng máy thực hành cho Trường Đại học Sưphạm Kỹ Thuật
2 Các số liệu, tài liệu ban đầu:
- Thời khóa biểu hiện hành
- Thực trạng sử dụng phòng máy
- Lịch sử sử dụng phòng máy
- Các vấn đề tồn đọng khi quản lý phòng máy một cách thủ công
3 Nội dung chính của đồ án:
Mở đầu
1 Mục tiêu đề tài
2 Đối tượng và phạm vi nghiên cứu
3 Phương pháp nghiên cứu
4 Giải pháp công nghệ
5 Cấu trúc đồ án
Chương 1: Cơ sở lý thuyết
1 Tổng quan về hệ thống phòng máy thực hành của Trường Đại học Sư phạm
Kỹ thuật
2 Các công nghệ sử dụng
Chương 2: Phân tích thiết kế
1 Khảo sát yêu cầu
2 Phân tích thiết kế hệ thống
Chương 3: Xây dựng chương trình
1 Phân tích kiến trúc hệ thống
2 Lựa chọn công nghệ phù hợp để phát triển hệ thống
3 Triển khai hệ thống trên website
4 Kiểm thử các chức năng của hệ thống
5 Đánh giá hiệu quả của hệ thống
Trang 12Kết luận và hướng phát triển
Trang 13LỜI CẢM ƠN
Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành tới Trường Đại học Sư phạm
Kỹ thuật, ngôi trường mà tôi đã gắn bó suốt quãng thời gian sinh viên quý báu này Trong suốt thời gian học tập và nghiên cứu tại trường, tôi đã nhận được sự đồng hành, hướng dẫn và khuyến khích rất lớn từ các thầy cô Nhờ có kiến thức và
kỹ năng chuyên môn mà tôi đã được trang bị, tôi đã có cơ hội tiếp cận với những kiến thức mới nhất trong lĩnh vực Công nghệ số và phát triển năng lực nghiên cứu củamình
Đặc biệt, tôi muốn bày tỏ lòng biết ơn sâu sắc tới cô Hoàng Thị Mỹ Lệ - người đãdành thời gian và tâm huyết để hướng dẫn, tạo điều kiện và động viên tôi trong quátrình thực hiện đề tài của mình Cô đã truyền đạt cho tôi không chỉ kiến thức chuyênmôn mà còn cả sự tư duy logic, phương pháp nghiên cứu khoa học và tinh thần sángtạo
Cuối cùng, tôi cũng xin gửi lời tri ân tới các bạn cùng lớp và bạn bè trong quátrình học tập và nghiên cứu Sự hỗ trợ, trao đổi và cùng nhau vượt qua khó khăn củacác bạn đã tạo nên một môi trường học tập tích cực và đầy động lực
Xin chân thành cảm ơn
i
Trang 14CAM ĐOAN
Tôi xin cam đoan rằng toàn bộ nội dung trong đồ án này được thực hiện bởi chính tay và trí tuệ của bản thân tôi, dưới sự hướng dẫn và giám sát của giảng viên hướng dẫn TS Hoàng Thị Mỹ Lệ
Tất cả các nguồn tài liệu, dữ liệu và thông tin được sử dụng trong quá trình nghiêncứu và thực hiện đồ án đều được trích dẫn đầy đủ và minh bạch
Tôi cam đoan rằng đồ án này không sao chép từ bất kỳ nguồn tài liệu nào khác vàkhông được sử dụng để đạt được bất kỳ mục đích trái phép nào
Lời cam đoan này được viết nhằm khẳng định sự chân thành và trung thực của tôitrong quá trình thực hiện đồ án và đảm bảo tính chất lành mạnh và đáng tin cậy của kếtquả nghiên cứu
Sinh viên thực hiện
Hồ Thái Bình
Trang 15MỤC LỤC
MỤC LỤC iii
DANH MỤC BẢNG BIỂU vii
DANH MỤC HÌNH VẼ viii
DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH x
MỞ ĐẦU 1
1 Mục tiêu đề tài 1
2 Đối tượng nghiên cứu và phạm vi nghiên cứu 2
a Đối tượng nghiên cứu 2
b Phạm vi nghiên cứu 2
3 Phương pháp nghiên cứu 2
4 Giải pháp công nghệ 2
5 Cấu trúc đồ án 3
Chương 1 CƠ SỞ LÝ THUYẾT 4
1.1 Giới thiệu về hệ thống phòng máy trong trường Đại học Sư phạm Kỹ thuật 4
1.2 Các công nghệ được sử dụng trong đề tài 4
1.2.1 Ngôn ngữ Java 5
1.2.1.1 Java là gì? 5
1.2.1.2 Đặc điểm của ngôn ngữ lập trình Java 5
1.2.2 HTML, CSS, JavaSscript 10
1.2.2.1 HTML 10
1.2.2.2 CSS 11
1.2.2.3 JavaScript (JS) 12
1.2.3 Spring Framework 13
iii
Trang 161.2.3.1 Spring Boot 13
1.2.3.2 Spring Security 14
1.2.4 Framework React 15
1.2.5 Hệ quản trị cơ sở dữ liệu MySQL 16
Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 18
2.1 Khảo sát yêu cầu 18
2.2 Phân tích thiết kế hệ thống 18
2.2.1 Tác nhân tham gia hệ thống 18
2.2.1.1 Quản trị viên 18
2.2.1.2 Sinh viên 18
2.2.1.3 Giảng viên 18
2.2.1.4 Nhân viên quản lý phòng máy 19
2.2.1.5 Phòng đào tạo 19
2.2.2 Sơ đồ usecase 19
2.2.3 Thiết kế các bảng dữ liệu 20
2.2.3.1 Bảng hanh_dong 20
2.2.3.2 Bảng quyen 20
2.2.3.3 Bảng chi_tiet_quyen 20
2.2.3.4 Bảng nguoi_dung 21
2.2.3.5 Bảng lop 21
2.2.3.6 Bảng chi_tiet_lop 21
2.2.3.7 Bảng phong_may 22
2.2.3.8 Bảng may_tinh 22
2.2.3.9 Bảng may_tinh_loi 22
2.2.3.10 Bảng lich_su_dung 23
Trang 172.2.4 Thiết kế ERD 24
2.2.5 Sơ đồ hoạt động 25
2.2.5.1 Đặt lịch sử dụng phòng máy 25
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 26
3.1 Công cụ xây dựng chương trình 26
3.1.1 Công cụ lập trình Intellij IDEA 26
3.1.2 Công cụ lập trình Visual Studio Code 27
3.1.3 MySQL Workbench 28
3.1.3.1 Thiết kế cơ sở dữ liệu 28
3.1.3.2 Quản lý cơ sở dữ liệu 29
3.1.3.3 Truy vấn và thao tác dữ liệu 29
3.1.3.4 Đồ họa và báo cáo 29
3.1.3.5 Tích hợp và mở rộng 29
3.1.4 Hệ thống đám mây AWS EC2 30
3.1.4.1 Quản lý và triển khai máy ảo 30
3.1.4.2 Mở rộng theo nhu cầu 31
3.1.4.3 Lựa chọn hệ điều hành và ứng dụng 31
3.1.4.4 Bảo mật và tin cậy 31
3.2 Giao diện chương trình 32
3.2.1 Giao diện trang chủ 32
3.2.2 Giao diện đăng nhập 33
3.2.3 Giao diện cấp lại mật khẩu 33
3.2.4 Giao diện thời khóa biểu (Sinh viên) 34
3.2.5 Giao diện thời khóa biểu (Giảng viên) 34
3.2.6 Giao diện đặt lịch sử dụng phòng máy 35
v
Trang 183.2.7 Giao diện quản lý người dùng 35
3.2.8 Giao diện thêm mới người dùng 36
3.2.9 Giao diện quản lý phòng máy 36
3.2.10 Giao diện thông tin phòng máy 37
3.2.11 Giao diện quản lý lớp học 37
3.2.12 Giao diện thông tin lớp học 38
3.2.13 Giao diện quản lý máy tinh 38
3.2.14 Giao diện trang cá nhân 39
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40
TÀI LIỆU THAM KHẢO 41
Trang 19DANH MỤC BẢNG BIỂU
Bảng 1.1 Bảng các công nghệ sử dụng trong đề tài 5
Bảng 2.1.Bảng hành động 20
Bảng 2.2 Bảng quyền 20
Bảng 2.3 Bảng chi tiết quyền 20
Bảng 2.4 Bảng người dùng 21
Bảng 2.5 Bảng lớp 21
Bảng 2.6 Bảng chi tiết lớp 21
Bảng 2.7 Bảng phòng máy 22
Bảng 2.8 Bảng máy tính 22
Bảng 2.9 Bảng máy tính lỗi 22
Bảng 2.10 Bảng lịch sử dụng 23
vii
Trang 20DANH MỤC HÌNH VẼ
Hình 1.1 Các phiên bản của Java 5
Hình 1.2 Quá trình thông dịch của Java 7
Hình 1.3 Các loại ứng dụng được phát triển sử dụng Java 8
Hình 1.4 Máy ảo JVM cho từng hệ điều hành 9
Hình 1.5 Logo HTML 5 10
Hình 1.6 Logo CSS 11
Hình 1.7 Logo JavaScript 12
Hình 1.8 Logo Spring boot 13
Hình 1.9 Xác thực người dùng với Spring Security 14
Hình 1.10 Các thành phần cơ bản trong React 15
Hình 1.11 Hệ quản trị cơ sở dữ liệu MySQL 16
Hình 1.12 Các câu lệnh SQL cơ bản 17
Hình 2.1 Sơ đồ usecase 19
Hình 2.2 Sơ đồ ERD 24
Hình 2.3 Sơ đồ hoạt động Đặt lịch sử dụng phòng máy 25
Hình 3.1 Logo Intellij IDEA 27
Hình 3.2 Logo Visual Studio Code 28
Hình 3.3 Kết nối với cơ sở dữ liệu thông qua SSH 29
Hình 3.4 Dịch vụ đám mây AWS 30
Hình 3.5 Mô hình EC2 instance 30
Hình 3.6 Giao diện trang chủ 32
Hình 3.7 Giao diện đăng nhập 33
Hình 3.8 Giao diện cấp lại mật khẩu 33
Hình 3.9 Giao diện thời khóa biểu (sinh viên) 34
Hình 3.10 Giao diện thời khóa biểu (Giảng viên) 34
Hình 3.11 Giao diện đặt lịch sử dụng phòng máy 35
Hình 3.12 Giao diện quản lý người dùng 35
Hình 3.13 Giao diện thêm mới người dùng 36
Hình 3.14 Giao diện quản lý phòng máy 36
Trang 21Hình 3.15 Giao diện thông tin phòng máy 37Hình 3.16 Giao diện thông tin lớp học 38
ix
Trang 22DANH MỤC CHỮ VIẾT TẮT TIẾNG ANH
Stt Chữ viết tắt Giải nghĩa Nghĩa tiếng Việt
1 HTML Hyper Text Markup Language Ngôn ngữ đánh dấu siêu văn bản
Interface
Giao diện lập trình ứng dụng
4 OOP Object-Oriented Programming Lập trình hướng đối tượng
8 XHTML Extensible Hypertext Markup
Language
Ngôn ngữ đánh dấu siêu văn bản
mở rộng
11 RESTful Representational State Transfer Dịch vụ truyền trạng thái biểu hiện
12 ORM Object-Relational Mapping Ánh xạ đối tượng-quan hệ
13 JPA Java Persistence API Giao diện lập trình liên tục Java
16 XML Extensible Markup Language Ngôn ngữ đánh dấu mở rộng
17 ERD Entity-Relationship Diagram Sơ đồ mô hình thực thể-quan hệ
Environment
Môi trường phát triển tích hợp
đầu được phát triển bởi Amazon
Trang 23Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
MỞ ĐẦU
Đề tài "Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sưphạm Kỹ thuật" được chọn vì nó giải quyết một vấn đề quan trọng trong việc quản lý
hệ thống phòng máy tại trường Đại học Sư phạm Kỹ thuật
Nghiên cứu trước đó đã chỉ ra rằng việc quản lý hệ thống phòng máy tại trường Đại học Sư phạm Kỹ thuật vẫn còn nhiều khó khăn và hạn chế trong việc đặtlịch sử dụng phòng máy và quản lý các thiết bị trong phòng Nhiều trường học và đạihọc khác đã triển khai các hệ thống quản lý phòng máy để giải quyết vấn đề này Tuynhiên, trường Đại học Sư phạm Kỹ thuật vẫn chưa có một hệ thống quản lý phòng máyhiện đại và tiện lợi
Để giải quyết vấn đề này, đề tài tập trung vào việc xây dựng một website quản lý
hệ thống phòng máy Nhiều nghiên cứu trước đó cũng đã chỉ ra rằng việc áp dụngcông nghệ thông tin trong quản lý phòng máy có thể cải thiện quy trình quản lý và tối
ưu hóa sử dụng tài nguyên phòng máy Do đó, đề tài có tính thực tiễn cao và đáp ứngnhu cầu của sinh viên và giảng viên tại trường Đại học Sư phạm Kỹ thuật
Cụ thể, đề tài này có những mục tiêu chính sau:
- Xây dựng một website quản lý phòng máy cho trường Đại học Sư phạm Kỹthuật
- Thiết lập chức năng quản lý đặt lịch sử dụng phòng máy, giúp giảng viên cóthể đăng ký sử dụng phòng máy một cách tiện lợi và linh hoạt
- Xây dựng chức năng quản lý thiết bị trong phòng máy, giúp trường có thể kiểmsoát tình trạng thiết bị trong phòng máy và sửa chữa kịp thời khi cần thiết
Trang 24Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
- Tạo ra một hệ thống quản lý phòng máy an toàn và bảo mật, đảm bảo thông tinđăng ký sử dụng phòng máy của giảng viên và sinh viên được bảo vệ
- Tăng cường chất lượng giảng dạy và học tập tại trường Đại học Sư phạm Kỹthuật
Với các mục tiêu trên, đề tài mong muốn giải quyết những công việc như đặt lịch
sử dụng phòng máy, quản lý thiết bị trong phòng máy, và giảm thiểu thời gian, côngsức của giảng viên và sinh viên khi sử dụng phòng máy Đồng thời, đề tài cũng đónggóp vào việc nâng cao chất lượng giảng dạy và học tập tại trường Đại học Sư phạm Kỹthuật
2 Đối tượng nghiên cứu và phạm vi nghiên cứu
a Đối tượng nghiên cứu
Đối tượng nghiên cứu chính bao gồm các giảng viên và sinh viên của trường Đạihọc Sư phạm Kỹ thuật, đặc biệt là những người có nhu cầu sử dụng phòng máy đểgiảng dạy và học tập Ngoài ra, nhân viên quản lý phòng máy và các phòng máy tạitrường cũng là đối tượng nghiên cứu của đề tài
b Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài tập trung vào việc xây dựng một hệ thống quản lýphòng máy tiện ích và hiệu quả cho trường Đại học Sư phạm Kỹ thuật, vì vậy sẽkhông bao gồm việc phát triển các ứng dụng hoặc hệ thống quản lý phòng máy cho cáctrường khác
3 Phương pháp nghiên cứu
Để đạt được mục tiêu của đề tài sẽ sử dụng các phương pháp nghiên cứu như sau:
- Tìm hiểu và phân tích các hệ thống quản lý phòng máy hiện có ở trường Đạihọc Sư phạm Kỹ thuật, các sản phẩm tương tự trên thị trường và các hệ thốngquản lý thiết bị sử dụng công nghệ thông tin khác
- Xây dựng các yêu cầu chức năng và yêu cầu phi chức năng cho ứng dụng quản
lý phòng máy và hệ thống quản lý thiết bị
- Tiến hành khảo sát và thu thập phản hồi từ các giảng viên và sinh viên sử dụng
hệ thống để đánh giá hiệu quả của hệ thống đã triển khai
Trang 25Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
4 Giải pháp công nghệ
Các công nghệ có thể sử dụng để xây dựng website quản lý hệ thống phòng máytính cho trường Đại học Sư phạm Kỹ thuật:
- Ngôn ngữ lập trình: Java 11
- Cơ sở dữ liệu: MySQL
- Framework: Spring Boot, Spring Security
- Front-end: ReactJS
- Công nghệ đám mây: AWS
- Công nghệ bảo mật: Xác thực người dung và phân quyền người dùng
5 Cấu trúc đồ án
Mở đầu
Chương 1: Cơ sở lý thuyết
Chương này trình bày những kiến thức lý thuyết liên quan đến đề tài nghiêncứu
Chương 2: Phân tích thiết kế hệ thống
Chương này trình bày quá trình phân tích yêu cầu của hệ thống quản lý phòngmáy và hệ thống quản lý thiết bị, thiết kế cấu trúc hệ thống và cơ sở dữ liệu
Chương 3: Xây dựng chương trình
Chương này trình bày quá trình cài đặt và triển khai hệ thống quản lý phòngmáy và hệ thống quản lý thiết bị Ngoài ra còn trình bày quá trình kiểm thử hệthống và đánh giá kết quả
Kết luận và hướng phát triển
Trang 26Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
-kỹ thuật tại Việt Nam, được đánh giá là một trong những trường đại học đầu ngành tạiMiền Trung Việt Nam Trường trực thuộc hệ thống Đại học Đại học Đà Nẵng, được xếp vào nhóm đại học trọng điểm quốc gia Việt Nam Trường đồng thời
là trung tâm nghiên cứu kỹ thuật lớn của khu vực miền Trung
Trong trường hiện nay có 5 phòng máy với khoảng từ 30 đến 40 máy mỗi phòng,phục vụ cho nhu cầu học tập, thực hành của sinh viên khối ngành công nghệ thông tin
và khối ngành kỹ thuật Cấu hình của các máy ở mỗi phòng là khác nhau nhằm mụcđích giảm thiểu chi phí nhưng vẫn đảm bảo cho công tác dạy và học của giảng viên và sinh viên trong trường
Thực tế với việc quản lý phòng máy bằng thời khóa biểu như hiện tại không đủ đáp ứng cho nhu cầu sử dụng tại trường Việc quản lý phòng máy thủ công thiếu tính linh hoạt khi có trường hợp cần đổi lịch học hoặc giảng viên tổ chức kỳ thi tại phòng máy Ngoài ra còn có các trường hợp máy hư hỏng nhưng vẫn chưa thể kiếmsoát được số lượng và tình trạng trong từng phòng Từ đó nhằm đáp ứng nhanh nhất vàtiện lợi nhất nhu cầu sử dụng phòng máy, đề tài: “Xây dựng website quản lý phòngmáy cho Trường Đại học Sư phạm Kỹ thuật” được đưa ra để khắc phục các vấn đề nêutrên
1.2 Các công nghệ được sử dụng trong đề tài
Đề tài được xây dựng trên mô hình client-server nhằm mục đích thuận tiện trong quá trình xây dựng đa nền tảng Server sẽ cung cấp các API cho việc giao tiếpgiữa client và server để thực hiện công việc truy xuất dữ liệu
Trang 27Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
Bảng 1.1 Bảng các công nghệ sử dụng trong đề tài
Công nghệ bảo mật Xác thực và phân quyền người dùng
1.1.1 Ngôn ngữ Java
1.2.1.1 Java là gì?
Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụngtrong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động.Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystemnăm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩmgia dụng, và có tên là Oak Java được phát hành năm 1994, đến năm 2010 được Oraclemua lại từ Sun MicroSystem
Hình 1.1 Các phiên bản của Java
Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (WriteOnce, Run Anywhere – WORA) Chương trình phần mềm viết bằng Java có thể chạytrên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điềukiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó
1.2.1.2 Đặc điểm của ngôn ngữ lập trình Java
Hướng đối tượng hoàn toàn
Trang 28Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trênnhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học vàquen thuộc với đa số người lập trình Vì vậy họ đã sử dụng lại các cú pháp của C vàC++
Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn
và dễ sử dụng hơn Các thao tác overload, goto hay các cấu trúc như struct và unioncũng được loại bỏ khỏi Java
Độc lập phần cứng và hệ điều hành
Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều môi trườngkhác nhau Gọi là khả năng “cross-platform” Khả năng độc lập phần cứng và hệ điềuhành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân
- Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điềuhành và phần cứng khác nhau Java có riêng một bộ thư viện để hỗ trợ vấn đềnày Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máykhác nhau mà không gặp lỗi
- Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau
mà không cần dịch lại mã nguồn Tuy nhiên cần có Java Virtual Machine đểthông dịch đoạn mã này
- Biên dịch (Compiler): Code sau khi được biên dịch sẽ tạo ra 1 file thường
là exe, và file exe này có thể đem sử dụng lại không cần biên dịch nữa
Trang 29Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch Chính xác hơn, Java làloại ngôn ngữ vừa biên dịch vừa thông dịch Cụ thể như sau: Khi viết mã, hệ thống tạo
ra một tệp java Khi biên dịch mã nguồn của chương trình sẽ được biên dịch ra mãbyte code Máy ảo Java (Java Virtual Machine) sẽ thông dịch mã byte code này thànhmachine code (hay native code) khi nhận được yêu cầu chạy chương trình
Hình 1.2 Quá trình thông dịch của Java
- Ưu điểm: Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy đượctrên nhiều nền tảng khác nhau Với điều kiện là JVM có hỗ trợ chạy trên nềntảng này
- Nhược điểm: Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn
mã Java là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong mộtmức chấp nhận được)
Cơ chế thu gom rác tự động
Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớcho các đối tượng ở trên heap
Với ngôn ngữ như C \ C++, chúng phải yêu cầu hủy vùng nhớ mà bạn đã cấpphát, để tránh việc thất thoát vùng nhớ Tuy nhiên vì một lý do nào đó, một vài vùngnhớ không bị hủy, dẫn đến việc thất thoát và làm giảm hiệu năng chương trình
Ngôn ngữ lập trình Java hỗ trợ điều đó, nghĩa là các vùng nhớ sẽ tự hủy Bộ thudọn rác của Java sẽ theo vết các tài nguyên đã được cấp Khi không có tham chiếu nàođến vùng nhớ, bộ thu dọn rác sẽ tiến hành thu hồi vùng nhớ đã được cấp phát
Đa luồng
Trang 30Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồngthời Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụngpriority…)
Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động, cơ chế xử lý lỗigiúp việc xử lý và phục hồi lỗi dễ dàng hơn
Hình 1.3 Các loại ứng dụng được phát triển sử dụng Java
Tính bảo mật
Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau
- Mức 1: Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện
mà lớp cung cấp
Trang 31Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
- Mức 2: Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc củangôn ngữ lập trình Java trước khi thông dịch
- Mức 3: Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này cóđảm bảo được các quy định, quy tắc trước khi thực thi
- Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạmgiới hạn truy xuất trước khi nạp vào hệ thống
Máy ảo Java (JVM – Java Virtual Machine)
Để đảm bảo tính đa nền, Java sử dụng cơ chế Máy ảo của Java ByteCode là ngônngữ máy của Máy ảo Java tương tự như các lệnh nhị phân của các máy tính thực Mộtchương trình sau khi được viết bằng ngôn ngữ Java (có phần mở rộng là java) phảiđược biên dịch thành tập tin thực thi được trên máy ảo Java (có phần mở rộng
là class) Tập tin thực thi này chứa các chỉ thị dưới dạng mã Bytecode mà máy ảo Javahiểu được phải làm gì
Khi thực hiện một chương trình, máy ảo Java lần lượt thông dịch các chỉ thị dướidạng Bytecode thành các chỉ thị dạng nhị phân của máy tính thực và thực thi thực sựchúng trên máy tính thực (còn gọi là khả năng khả chuyển)
Máy ảo thực tế đó là một chương trình thông dịch Vì thế các hệ điều hành khácnhau sẽ có các máy ảo khác nhau Để thực thi một ứng dụng của Java trên một hệ điềuhành cụ thể, cần phải cài đặt máy ảo tương ứng cho hệ điều hành đó
Hình 1.4 Máy ảo JVM cho từng hệ điều hành
Trang 32Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
JVM cung cấp môi trường thực thi cho chương trình Java (còn gọi là khả năngđộc lập với nền) Có nhiều JVM cho các nền tảng khác nhau chẳng hạn như:Windows, Liux, và Mac [CITATION Gia22 \l 1033 ]
1.2.2 HTML, CSS, JavaSscript
1.2.2.1 HTML
HTML được viết tắt từ HyperText Markup Language là một ngôn ngữ đánh dấuđược sử dụng để xây dựng và biểu diễn nội dung trên các trang web HTML là ngônngữ cơ bản cho việc tạo ra cấu trúc và định dạng của các trang web, đồng thời cungcấp khả năng liên kết các trang với nhau và tích hợp các phương tiện đa phương tiệnnhư hình ảnh, video và âm thanh
Hình 1.5 Logo HTML 5
HTML được tạo ra bởi Tim Berners-Lee, một nhà vật lý học của trung tâm nghiêncứu CERN ở Thụy Sĩ Hiện nay, HTML đã trở thành một chuẩn Internet được tổ chứcW3C (World Wide Web Consortium) vận hành và phát triển Bạn có thể tự tìm kiếmtình trạng mới nhất của HTML tại bất kỳ thời điểm nào trên Website của W3C
Phiên bản đầu tiên của HTML xuất hiện năm 1991, gồm 18 tag HTML Phiên bảnHTML 4.01 được xuất bản năm 1999 Sau đó, các nhà phát triển đã thay thế HTMLbằng XHTML vào năm 2000
HTML5 là một ngôn ngữ cấu trúc và trình bày nội dung cho World Wide Web.Đây là phiên bản thứ 5 của ngôn ngữ HTML, được giới thiệu bởi World Wide Web
Trang 33Xây dựng website quản lý hệ thống phòng máy cho trường Đại học Sư phạm Kỹ thuật
Consortium (W3C) HTML5 vẫn sẽ giữ lại những đặc điểm cơ bản của HTML4 và bổsung thêm các đặc tả nổi trội của XHTML, DOM cấp 2, đặc biệt là JavaScript
Với sự ra đời của HTML5 cùng với các ứng dụng cần những hiệu ứng đồ họa vàchuyển động đặc biệt, lập trình viên có thể sử dụng Canvas với kiểu bitmap hoặc SVGvới kiểu vector Không chỉ áp dụng cho việc thiết kế các trang web trực quan, HTML5còn được áp dụng để tạo ra các thư viện đồ họa giúp tạo ra các ứng dụng đồ thị, gametrong cả môi trường 2D và 3D như những ứng dụng trên desktop.[CITATION Top22 \l
1033 ]
1.2.2.2 CSS
CSS (Cascading Style Sheets) là một ngôn ngữ định dạng và trình bày cho cáctrang web Nó cho phép định dạng các thành phần HTML trên trang web, như màusắc, font chữ, khoảng cách và độ rộng của các thành phần trên trang CSS được sửdụng để tạo ra các trang web đẹp mắt và chuyên nghiệp, giúp cho người dùng có trảinghiệm tốt hơn khi sử dụng trang web CSS được sử dụng phổ biến trong thiết kế web
và là một trong những công cụ cần thiết để tạo ra các trang web chuyên nghiệp và hấpdẫn
Hình 1.6 Logo CSS
CSS được phát triển bởi W3C (World Wide Web Consortium) vào năm 1996, vìHTML không được thiết kế để gắn tag để giúp định dạng trang web