



















Preview text:
lOMoARcPSD|25731242
BTL NHOM MAI 26012024 - lập trình làm web
Lập trình web (Trường Đại học Bách khoa - Đại học Quốc gia Thành phố Hồ Chí Minh) Scan to open on Studeersnel
Studocu is not sponsored or endorsed by any college or university
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
KHOA: CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN
HỌC PHẦN: LẬP TRÌNH WEB VỚI PHP
ĐỀ TÀI 37: XÂY DỰNG ỨNG DỤNG WEB QUẢN LÝ PHÒNG HỌC
TRONG TRƯỜNG ĐẠI HỌC
Sinh viên thực hiện Lớp Khóa Vương Văn Thắng DCCNTT12.10.9 12 Lưu Phúc Hậu DCCNTT12.10.9 12 DCCNTT12.10.9 12 Bắc Ninh, năm 2023
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
KHOA: CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN
HỌC PHẦN: LẬP TRÌNH WEB VỚI PHP
ĐỀ TÀI 37: XÂY DỰNG ỨNG DỤNG WEB QUẢN LÝ PHÒNG HỌC
TRONG TRƯỜNG ĐẠI HỌC ST Mã sinh Điểm bằng Điểm bằng
Sinh viên thực hiện T viên số chữ 1 Vương Văn Thắng 20213951 2 Lưu Phúc Hậu 20212586 3 CÁN BỘ CHẤM 1 CÁN BỘ CHẤM 2
(Ký và ghi rõ họ tên)
(Ký và ghi rõ họ tên) Bắc Ninh, năm 2023
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242 MỤC LỤC
LỜI NÓI ĐẦU...............................................................................................................2
CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI......................................................................3
1. Giới thiệu đề tài.........................................................................................................3
2.Cơ sở lý thuyết............................................................................................................3
3. Các công nghệ sử dụng..............................................................................................4
4. Phân chia công việc...................................................................................................4
CHƯƠNG II.PHÂN TÍCH YÊU CẦU..........................................................................6
1. Danh sách các actor...................................................................................................6
2. Danh sách các chức năng...........................................................................................6
3. Biểu đồ phân cấp chức năng......................................................................................7
4. Biểu đồ usecase..........................................................................................................7
CHƯƠNG III. THIẾT KẾ HỆ THỐNG......................................................................10
1. Thiết kế giao diện.....................................................................................................10
2. Thiết kế class...........................................................................................................11
3. Thiết kế database......................................................................................................13
CHƯƠNG IV. LẬP TRÌNH XÂY DỰNG VÀ CÀI ĐẶT HỆ THỐNG......................15
1. Xây dựng database trên mysql.................................................................................15
2. Tổ chức mã nguồn...................................................................................................16
3. Xây dựng các chức năng theo thiết kế......................................................................17
CHƯƠNG V. KIỂM THỬ...........................................................................................25
1. Danh sách các test case............................................................................................25
2. Kết quả kiểm thử(test report)...................................................................................26
CHƯƠNG VI. KẾT LUẬN.........................................................................................27
1. Kết quả đạt được......................................................................................................27
2. Hướng phát triển......................................................................................................27
TÀI LIỆU THAM KHẢO............................................................................................29 1
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242 LỜI NÓI ĐẦU
Trong thời đại ngày nay, sự tiến bộ của công nghệ thông tin đã mở ra không
gian mới cho việc hiện đại hóa hệ thống giáo dục. Đặc biệt, ứng dụng của công nghệ
trong quản lý phòng học tại các trường đại học không chỉ giúp tối ưu hóa quá trình học
tập mà còn đóng góp tích cực vào sự phát triển toàn diện của sinh viên.
Bài tập lớn này đặt ra nhiệm vụ quan trọng là xây dựng một ứng dụng web hiện đại,
tiện ích và hiệu quả cho việc quản lý phòng học trong môi trường đại học. Thông qua
việc tích hợp các tính năng đa dạng và linh hoạt, chúng ta nhằm mục tiêu nâng cao trải
nghiệm học tập của sinh viên, giảng viên và các đơn vị quản lý.
Ứng dụng sẽ không chỉ giúp theo dõi và quản lý lịch trình học tập mà còn cung cấp
các công cụ hỗ trợ tương tác, giao tiếp và đánh giá hiệu suất học tập. Ngoài ra, sự linh
hoạt trong quản lý tài nguyên phòng học, thông tin sinh viên và các tài liệu giảng dạy
sẽ được tối ưu hóa, giúp tạo nên một môi trường học tập hiện đại và đáp ứng nhanh
chóng với những thách thức thay đổi.
Chúng ta hy vọng rằng thông qua quá trình phát triển ứng dụng này, chúng ta sẽ không
chỉ đáp ứng được những yêu cầu ngày càng cao về quản lý phòng học mà còn góp
phần vào sự phát triển bền vững của giáo dục đại học. Hãy cùng nhau đồng hành và
đóng góp vào sự thành công của dự án này. 2
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
CHƯƠNG I. TỔNG QUAN VỀ ĐỀ TÀI
1. Giới thiệu đề tài
Đề tài "Xây dựng ứng dụng web quản lý phòng học trong trường đại học" được
đặt ra với mục đích chính là phát triển một hệ thống ứng dụng web tiên tiến, tập trung
vào giải quyết những thách thức đặt ra trong việc quản lý các phòng học tại một trường
đại học. Với giao diện thân thiện, ứng dụng không chỉ hỗ trợ việc quản lý lịch trình
học tập một cách linh hoạt mà còn cung cấp nhiều tính năng giúp tối ưu hóa trải
nghiệm của cả sinh viên và giảng viên.
Các đặc điểm nổi bật của dự án bao gồm quản lý thông tin phòng học, giảng
viên, và sinh viên một cách hiệu quả, đồng thời tối ưu hóa quá trình đăng ký và sử
dụng các phòng học. Hệ thống cũng sẽ cung cấp thông tin chi tiết về lịch trình học tập,
sự kiện và các thông báo quan trọng, giúp tạo ra một môi trường học tập linh hoạt và tích cực.
Qua việc tích hợp các công cụ quản lý đa dạng, đề tài đặt ra mục tiêu tạo ra một
giao diện quản trị thuận tiện cho việc giám sát, theo dõi, và tối ưu hóa nguồn lực
phòng học. Bảo mật thông tin là mối quan tâm hàng đầu, đảm bảo rằng dữ liệu cá nhân
của sinh viên và giảng viên được bảo vệ chặt chẽ.
Chúng ta tin rằng thông qua sự hiện đại hóa quy trình quản lý phòng học, đề tài
này sẽ đóng góp vào sự phát triển chung của môi trường đại học, tạo điều kiện thuận
lợi cho quá trình học tập và giảng dạy. 2.Cơ sở lý thuyết 2.1. PHP là gì?
PHP (Hypertext Preprocessor): Đây là một ngôn ngữ lập trình mã nguồn mở
được ứng dụng chủ yếu để phát triển các ứng dụng web động. PHP được tích hợp trực
tiếp vào mã HTML, giúp tạo ra nội dung động trên trang web.
2.2. Ưu điểm của PHP
PHP là một trong những ngôn ngữ lập trình phổ biến nhất vì những lợi ích mà
nó mang lại. Có bốn ưu điểm chính: 3
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
Tính đơn giản và linh động: PHP sử dụng mã nguồn mở, dễ cài đặt và sử dụng,
phù hợp với cả người mới bắt đầu với lập trình. Cộng đồng hỗ trợ lớn và thị
trường việc làm trong lĩnh vực này luôn sôi động.
Cơ sở dữ liệu đa dạng: PHP cho phép kết nối với nhiều loại cơ sở dữ liệu như
MySQL, mSQL, MS-SQL, SQLite, PostgreSQL, v.v., mang lại sự linh hoạt cho lập trình viên.
Thư viện phong phú: Có nhiều sách hướng dẫn và tài liệu tham khảo, cung cấp
kiến thức hữu ích cho những người mới bắt đầu.
2.3. Ứng dụng của ngôn ngữ lập trình PHP
Xây dựng Website: PHP được sử dụng cho cả phần Front-end và Back-end để
tạo giao diện web và xử lý chức năng.
Tạo ứng dụng: PHP có thể thực hiện các chức năng trong các ứng dụng.
Tạo hệ thống quản lý nội dung: PHP kết nối với cơ sở dữ liệu và thao tác với nó.
Làm các trang mạng xã hội: Ví dụ như Facebook.
Các công cụ lập trình được sử dụng
3. Các công nghệ sử dụng
Visual Studio Code: Trình soạn thảo mã nguồn mở và mạnh mẽ hỗ trợ PHP và nhiều ngôn ngữ khác.
XAMPP: Môi trường phát triển PHP, Apache, MySQL để phát triển và kiểm
thử ứng dụng trên máy tính cục bộ.
GitHub: Dịch vụ lưu trữ mã nguồn dựa trên Git, giúp tương tác và làm việc nhóm dễ dàng.
PHPMyAdmin: Giao diện quản lý cơ sở dữ liệu MySQL.
4. Phân chia công việc stt Nhiện vụ Yêu cầu Thành viên tham gia 1 Phân tích bài toán Tìm hiểu nhiệm vụ Cả nhóm Phân tích yêu cầu 2 Thiết kế hệ thống Thiết kế giao diện Hậu Thiết kế class Thắng 4
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242 Thiết kế dữ liệu Sơn 3 Cài đặt hệ thống
Thiết kế database trên mysql Sơn Tổ chức mã nguồn Thắng
Xây dựng chức năng theo Thắng thiết kế 4 Kiểm thử sản phẩm Cả nhóm 5 Làm báo cáo Hậu 6 Vẽ các sơ đồ Hậu 5
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
CHƯƠNG II.PHÂN TÍCH YÊU CẦU
1. Danh sách các actor Stt Tên Actor Ý nghĩa 1 Admin
Người quản lý là người có toàn quyền tương tác với
hệ thống, quyền sử dụng tất cả các chức năng mà
website xây dựng, điều khiển và kiểm soát mọi hoạt động của website. 2 Người dùng
- đăng ký mượn lớp học theo yêu cầu của mình
- Xem thông tin chi tiết về các phòng học, bao gồm
nội dung, lịch học, và yêu cầu đối với từng khóa.
- xem chi tiết từng lớp học
2. Danh sách các chức năng Stt Tên chức năng Mô tả Actor 1 Đăng nhập
Cho phép người dùng đăng nhập Admin, Người vào hệ thống dùng 2 Đăng xuất
Cho phép người đăng xuất khỏi Admin, Người hệ thống dùng 3 Quản lý phòng học
- Cho phép Thêm, sửa, xóa, tìm Admin kiếm thông tin phòng học 4
Quản lý đặt phòng Cho phép đặt phòng theo lịch Admin học 5
Quản lý thông tin Xem thông tin chi tiết các phòng Admin, phòng học
học bao gồm cả thông tin lớp , môn học , giáo viên 6 Thống kê báo cáo
Cho phép người dùng thống kê Người dùng và gửi báo cáo 7
Quản lý người dùng Cho phép admin thêm sửa xóa Admin người dùng 6
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
3. Biểu đồ phân cấp chức năng 4. Biểu đồ usecase
Biểu đồ usecase tổng quát 7
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
Biểu đồ usecase đăng nhập
Biểu đồ usecase đăng ký
Biểu đồ usecase quản lý phòng học 8
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
Biểu đồ usecase quản lý đặt phòng
Biểu đồ usecase quản lý thông tin
Biểu đồ usecase thống kê báo cáo 9
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242 5. Biểu đồ hoạt động
Biểu đồ hoạt động đăng nhập
Biểu đồ hoạt động đăng xuất 10
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242 11
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
CHƯƠNG III. THIẾT KẾ HỆ THỐNG
1. Thiết kế giao diện
Trang đăng nhập (Login): Chi tiết thành phần:
- Tiêu đề: Hiển thị tiêu đề "đăng nhập".
- Form đăng nhập: ô đăng nhập cho tên người dùng, ô đăng nhập cho mật khẩu.
- Nút đăng nhập: nút để xác nhận quá trình đăng nhập. Điều hướng:
- Nếu người dùng nhấn "đăng nhập", họ sẽ được chuyển đến trang quản lý phòng học
nếu thông tin đăng nhập chính xác.
Trang quản lý phòng học: Chi Tiết Thành Phần:
- Thanh đầu trang: hiển thị tên trang ("quản lý phòng học") và thanh điều hướng.
- Danh sách phòng học: hiển thị danh sách phòng học, các thao tác như thêm, sửa, xóa phòng học.
- Lịch học: hiển thị lịch học với thông tin chi tiết, các thao tác như thêm sự kiện học, chỉnh sửa, hủy bỏ.
Điều hướng: liên kết trong thanh điều hướng chuyển người dùng giữa các chức
năng chính như "trang chủ", "lịch học", "thông tin người dùng", "đăng xuất". Trang đặt phòng: Chi Tiết thành phần: - Form đặt phòng: Chọn phòng học.
Nhập thông tin liên hệ và thời gian đặt. - Nút đặt phòng:
Nút để xác nhận quá trình đặt phòng. Điều hướng:
Có thể có một liên kết "xem lịch đặt phòng" để người dùng có thể kiểm tra các đặt
phòng hiện tại của họ. Trang xem thông tin: Chi tiết thành phần: - Thông tin người dùng: 12
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
- Hiển thị thông tin cá nhân của người dùng. - Nút chỉnh sửa:
- Nút để chuyển đến Trang Chỉnh Sửa Thông Tin. - Nút Đăng Xuất:
- Nút để thoát khỏi hệ thống. Điều hướng:
- Liên kết "chỉnh sửa" chuyển người dùng đến trang chỉnh sửa thông tin.
Trang chỉnh sửa thông tin: Chi tiết thành phần: - Form chỉnh sửa:
Cho phép người dùng chỉnh sửa thông tin cá nhân. - Nút lưu:
Nút để lưu những thay đổi. Điều hướng:
Có thể có một liên kết "quay lại" để trở về trang xem thông tin. 2. Thiết kế class
2.1. Danh sách các class và mô tả chi tiết các class User: Mô tả:
Bảng này lưu trữ thông tin về người dùng của hệ thống. Thuộc tính:
userId: Khóa chính, định danh duy nhất của người dùng.
username: Tên đăng nhập của người dùng.
password: Mật khẩu của người dùng (nên được lưu trữ dưới dạng băm).
email: Địa chỉ email của người dùng. Classroom: Mô tả:
Bảng này lưu trữ thông tin về các phòng học trong hệ thống. Thuộc tính:
roomId: Khóa chính, định danh duy nhất của phòng học.
roomName: Tên của phòng học.
capacity: Sức chứa của phòng học. 13
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242 Booking: Mô tả:
Bảng này lưu trữ thông tin về việc đặt phòng học. Thuộc tính:
bookingId: Khóa chính, định danh duy nhất của đặt phòng.
userId: Khóa ngoại liên kết đến User.
roomId: Khóa ngoại liên kết đến ClassRoom.
dateTime: Thời gian và ngày đặt phòng.
purpose: Mục đích sử dụng phòng. Borrower: Mô tả:
Bảng này lưu trữ thông tin về việc mượn phòng học. Thuộc tính:
borrowerId: Khóa chính, định danh duy nhất của người mượn.
userId: Khóa ngoại liên kết đến User.
roomId: Khóa ngoại liên kết đến ClassRoom.
borrowedDate: Thời gian và ngày mượn phòng.
returnDate: Thời gian và ngày phải trả phòng.
2.2. Mối quan hệ giữa các class
Mối quan hệ giữa booking và user:
Booking có mối quan hệ composition với user trong class borrower.
Mỗi booking phải có một user tương ứng, và việc hủy bỏ Booking cũng có thể ảnh
hưởng đến thông tin user (Ví dụ: Lịch sử đặt phòng).
Mối quan hệ giữa booking và classRoom:
Booking có mối quan hệ composition với room.
Mỗi booking phải được thực hiện trong một room cụ thể, và việc xóa room có thể ảnh
hưởng đến thông tin Booking.
Mối quan hệ giữa borrower và booking:
Borrower có mối quan hệ aggregation với booking.
Mỗi borrower có danh sách các booking của mình. mối quan hệ này cho phép một
booking tồn tại mà không cần phải liên kết chặt chẽ với một Borrower.
Mối quan hệ giữa classroom và booking: 14
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
Classroom có mối quan hệ aggregation với booking.
Mỗi classroom có danh sách các booking của mình. mối quan hệ này cho phép một
booking tồn tại mà không cần phải liên kết chặt chẽ với một classroom.
Mối quan hệ giữa user và classroom:
User có mối quan hệ association với classroom.
Một user có thể thực hiện các thao tác quản lý trên classroom (Ví dụ: Thêm, sửa, xóa phòng học).
3. Thiết kế database
3.1. Sơ đồ quan hệ erd
3.2. Cấu trúc các bảng trong database Bảng bookings CREATE TABLE `bookings` ( `id` int(11) NOT NULL,
`classroom_id` int(11) DEFAULT NULL,
`subject` varchar(255) DEFAULT NULL,
`start_time` datetime DEFAULT NULL,
`end_time` datetime DEFAULT NULL,
`status` enum('Pending','Approved','Rejected') DEFAULT 'Pending',
`teacher_name` varchar(255) DEFAULT NULL, 15
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
`classroom_name` varchar(255) NOT NULL ) Bảng borrower CREATE TABLE `borrowers` ( `id` int(11) NOT NULL,
`user_id` int(11) DEFAULT NULL,
`classroom_id` int(11) DEFAULT NULL,
`borrowed_at` timestamp NOT NULL DEFAULT current_timestamp(),
`status` enum('borrowed','returned') DEFAULT 'borrowed' ) Bảng classrooms CREATE TABLE `classrooms` ( `id` int(11) NOT NULL,
`room_name` varchar(50) NOT NULL, `capacity` int(11) NOT NULL,
`status` enum('available','occupied') DEFAULT 'available',
`borrower_id` int(11) DEFAULT NULL,
`teacher_id` int(11) DEFAULT NULL,
`subject` varchar(255) DEFAULT NULL ) Bảng users CREATE TABLE `users` ( `id` int(11) NOT NULL,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL ) 16
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com) lOMoARcPSD|25731242
CHƯƠNG IV. LẬP TRÌNH XÂY DỰNG VÀ CÀI ĐẶT HỆ THỐNG
1. Xây dựng database trên mysql
1.1. Cấu trúc các bảng Bảng bookings Bảng borrower Bảng classrooms Bảng users 17
Downloaded by 32. Nguy?n V?n Thi?u (nguyenvanthieu2005.qv@gmail.com)