Bối cảnh và vấn đề nghiên cứu
Trong thực tế vận hành tại các cụm rạp chiếu phim, công tác quản lý và tổ chức chiếu phim cùng hoạt động bán vé là bài toán nghiệp vụ phức tạp. Người quản lý thường đối mặt với khó khăn trong việc kiểm soát đồng bộ các bộ phận như danh mục phim, lịch chiếu, trang thiết bị phòng chiếu và quy trình bán vé. Về phía người tiêu dùng, hình thức mua vé truyền thống buộc khách hàng phải xếp hàng chờ đợi trong thời gian dài, dẫn đến trải nghiệm tiêu cực, làm giảm lượng người đến rạp và trực tiếp ảnh hưởng đến doanh thu của doanh nghiệp. Việc xây dựng một giải pháp phần mềm quản lý rạp chiếu phim trên nền tảng trực tuyến là yêu cầu thực tiễn cấp bách.
Mục tiêu nghiên cứu:
- Xây dựng một hệ thống website cho phép quản lý phim, quản lý cụm rạp chiếu phim trực tuyến một cách hiệu quả, nhanh chóng và đồng bộ.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng sử dụng hệ thống:
- Quản trị viên (Admin): Thực hiện quản trị danh mục phim, quản lý hệ thống rạp, quản lý phòng chiếu, thiết bị, lịch chiếu, kiểm soát bình luận và theo dõi thống kê doanh thu/hoạt động.
- Khách hàng: Tìm kiếm phim, tra cứu lịch chiếu, đặt vé trực tuyến, quản lý lịch sử xem phim, thực hiện đánh giá/bình luận và sử dụng điểm tích lũy.
- Phạm vi môi trường: Triển khai và vận hành trên môi trường Web.
- Phạm vi chức năng qua các giai đoạn:
- Kế thừa từ Đồ án 1: Quản lý rạp phim cơ bản, chức năng đặt vé xem phim.
- Phát triển mở rộng trong Đồ án 2: Quản lý hệ thống rạp phim đa chi nhánh, quản lý chính sách giảm giá, quản lý danh mục phim yêu thích, cơ chế ghi nhận tích điểm thành viên và chức năng sử dụng điểm tích lũy khi thanh toán.
Khảo sát các sản phẩm thực tế:
Tác giả đã tiến hành khảo sát các hệ thống quản lý và đặt vé trực tuyến trong nước và quốc tế để rút ra các yêu cầu nghiệp vụ trọng tâm:
| Nhóm sản phẩm |
Hệ thống khảo sát |
Tính năng và đặc điểm tiêu biểu |
| Nước ngoài |
Fandango (Mỹ) |
Cung cấp thông tin lịch chiếu, đặt vé trực tuyến đa rạp, cập nhật tin tức điện ảnh và đánh giá phim. |
|
Cinemark (Mỹ & quốc tế) |
Chuỗi rạp hiển thị lịch chiếu, giá vé, đặt chỗ trực tiếp và triển khai các chương trình khuyến mãi. |
|
Cineplex (Canada) |
Cung cấp lịch chiếu chi tiết, đặt vé trực tuyến, tin tức điện ảnh và ưu đãi hội viên. |
| Trong nước |
CGV (Việt Nam) |
Cung cấp lịch chiếu, đặt vé trực tuyến, thông tin giá vé, tin tức và các chương trình khuyến mãi. |
|
Lotte Cinema (Việt Nam) |
Cung cấp lịch chiếu, đặt vé trực tuyến, quản lý giá vé và truyền thông sự kiện đặc biệt. |
|
BHD Star Cineplex (Việt Nam) |
Cung cấp lịch chiếu, đặt vé trực tuyến, bảng giá vé và thông tin chi tiết phim. |
Từ khảo sát trên, đề tài xác định 3 bài toán nghiệp vụ cốt lõi cần giải quyết:
- Quản lý thông tin phim: Lưu trữ và quản lý chi tiết tên phim, thể loại, đạo diễn, diễn viên, đánh giá, thời lượng, năm sản xuất và mô tả nội dung.
- Quản lý lịch chiếu: Thiết lập và kiểm soát khung giờ chiếu, phòng chiếu tương ứng với từng phim và cụm rạp.
- Quản lý vé và thanh toán: Xử lý quy trình đặt chỗ, giữ chỗ, kiểm duyệt vé và trừ điểm tích lũy khi thanh toán.
Cơ sở lý thuyết và phương pháp
Đồ án áp dụng quy trình phân tích, thiết kế và phát triển phần mềm theo mô hình hướng đối tượng, kết hợp kiến trúc phân tầng Model-View-Controller (MVC).
Kiến thức nền tảng và ngôn ngữ:
- HTML (HyperText Markup Language): Ngôn ngữ đánh dấu siêu văn bản định hình cấu trúc và nội dung trang web thông qua các thẻ phần tử (tiêu đề, đoạn văn, hình ảnh, bảng dữ liệu, biểu mẫu).
- CSS (Cascading Style Sheets): Định dạng giao diện, màu sắc, bố cục và hiệu ứng hiển thị; hỗ trợ thiết kế đáp ứng (Responsive Design) và tách biệt nội dung khỏi kiểu dáng.
- Ngôn ngữ lập trình Java: Ngôn ngữ lập trình hướng đối tượng, biên dịch sang mã bytecode thực thi trên Máy ảo Java (JVM), đảm bảo tính đa nền tảng, cơ chế thu gom rác tự động (Garbage Collection), kiểm soát ngoại lệ và tính bảo mật cao.
- JavaScript: Ngôn ngữ kịch bản phía máy khách (client-side) xử lý tương tác giao diện người dùng, điều khiển cấu trúc DOM và giao tiếp bất đồng bộ với máy chủ.
- SQL (Structured Query Language): Ngôn ngữ truy vấn có cấu trúc để định nghĩa, thao tác và truy xuất dữ liệu trên hệ quản trị cơ sở dữ liệu quan hệ thông qua các lệnh
SELECT, INSERT, UPDATE, DELETE, JOIN.
Phương pháp phân tích và thiết kế hệ thống:
- Phân tích yêu cầu: Đặc tả yêu cầu chức năng thông qua mô hình Use-case và xác định các yêu cầu phi chức năng (giao diện, xử lý, chất lượng hiển thị poster, bảo mật dữ liệu người dùng).
- Thiết kế xử lý: Xây dựng các sơ đồ tuần tự (Sequence Diagram) mô tả chi tiết tương tác thời gian thực giữa các đối tượng trong từng ca sử dụng.
- Thiết kế dữ liệu: Xây dựng mô hình quan hệ thực thể, chuẩn hóa các bảng dữ liệu đáp ứng toàn vẹn ràng buộc khóa chính và khóa ngoại.
Thiết kế và triển khai
Kiến trúc công nghệ và môi trường phát triển
Hệ thống được phát triển dựa trên hệ sinh thái Java Enterprise với các công nghệ và công cụ sau:
- Spring Boot & Spring MVC: Framework phát triển ứng dụng web Java cung cấp cấu hình tự động, kiến trúc MVC phân tách rõ ràng giữa Controller (điều phối luồng), Model (dữ liệu nghiệp vụ) và View (giao diện). Thành phần
DispatcherServlet tiếp nhận và điều phối mọi yêu cầu HTTP.
- Thymeleaf: Template Engine phía máy chủ tích hợp chặt chẽ với Spring MVC, hỗ trợ ràng buộc dữ liệu (data binding) và hiển thị nội dung HTML động.
- Bootstrap 5: Framework CSS cung cấp hệ thống lưới (grid system) và các thành phần giao diện sẵn có (navbar, modal, carousel, card, form) phục vụ thiết kế đáp ứng.
- Hệ thống quản lý phiên bản & Công cụ: Quản lý mã nguồn trên GitHub với mô hình phân nhánh (branching); môi trường phát triển tích hợp gồm IntelliJ IDEA và Visual Studio Code (VSCode).
Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của hệ thống được tổ chức thành 8 bảng dữ liệu quan hệ chính:
| Tên bảng dữ liệu |
Mô tả chức năng lưu trữ |
theater |
Lưu trữ thông tin danh sách các cụm rạp chiếu phim trong toàn hệ thống. |
room |
Lưu trữ danh sách phòng chiếu thuộc từng cụm rạp cụ thể. |
seat |
Lưu trữ cấu hình sơ đồ ghế ngồi (vị trí hàng, cột, loại ghế) trong từng phòng chiếu. |
showtimes |
Lưu trữ thông tin lịch chiếu (giờ bắt đầu, ngày chiếu, phòng chiếu, phim chiếu). |
booking |
Lưu trữ thông tin các giao dịch đặt vé của khách hàng (mã vé, suất chiếu, ghế, trạng thái xác nhận). |
movie |
Lưu trữ danh mục phim (tên phim, đạo diễn, diễn viên, thời lượng, thể loại, poster, mô tả). |
comment |
Lưu trữ đánh giá, nhận xét của khách hàng đối với các bộ phim đã xem sau khi được duyệt. |
user |
Lưu trữ thông tin tài khoản, thông tin cá nhân, phân quyền vai trò (Admin, Khách hàng) và điểm tích lũy. |
Yêu cầu phi chức năng
- Giao diện: Thiết kế đơn giản, màu sắc đồng nhất, dễ tiếp cận.
- Xử lý: Tối giản các bước trong quy trình đặt vé trực tuyến.
- Chất lượng: Giảm thiểu tối đa độ trễ khi thao tác; hình ảnh poster phim bắt buộc đạt độ phân giải cao.
- Bảo mật: Dữ liệu người dùng được bảo mật; phân quyền truy cập tài nguyên nghiêm ngặt theo vai trò (Role-based access).
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 thiết lập cơ sở hình thành đề tài thông qua việc phân tích thực trạng bất cập tại các rạp chiếu phim truyền thống. Tác giả xác định đối tượng phục vụ của hệ thống (gồm phân hệ Admin và phân hệ Khách hàng), giới hạn phạm vi nghiên cứu trên môi trường Web, đồng thời vạch rõ các tính năng kế thừa từ Đồ án 1 và các tính năng phát triển mới trong Đồ án 2 (quản lý hệ thống rạp, giảm giá, tích điểm, phim yêu thích). Chương này cũng hoàn thành việc khảo sát, so sánh 6 hệ thống đặt vé thực tế trong và ngoài nước (Fandango, Cinemark, Cineplex, CGV, Lotte Cinema, BHD Star Cineplex).
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày tổng quan các kiến thức công nghệ nền tảng và môi trường thực thi được lựa chọn để xây dựng website:
- Các ngôn ngữ lập trình và định dạng: HTML, CSS, JavaScript, Java và SQL.
- Các framework và thư viện: Spring Boot, Spring MVC, Template Engine Thymeleaf, Bootstrap 5.
- Quy trình quản lý mã nguồn bằng GitHub và các công cụ phát triển IDE gồm Visual Studio Code và JetBrains IntelliJ IDEA.
Chương 3: Xây dựng hệ thống
Chương 3 tập trung vào khâu phân tích và thiết kế chi tiết toàn bộ hệ thống phần mềm:
- Phân tích tác nhân (Actors): Xác định 2 tác nhân chính là
Admin (quản trị toàn bộ tài nguyên và hoạt động hệ thống) và Khách hàng (người dùng cuối sử dụng dịch vụ).
- Đặc tả 19 ca sử dụng (Use-case) toàn hệ thống:
| Mã Use-case |
Tên Use-case |
Actor thực hiện |
Tóm tắt luồng xử lý và nghiệp vụ |
| UC01 |
Đăng nhập |
Admin / Khách hàng |
Xác thực tài khoản qua email và mật khẩu đã đăng ký trên hệ thống. |
| UC02 |
Đăng ký |
Khách hàng |
Tạo tài khoản mới bằng email hợp lệ chưa tồn tại trên hệ thống. |
| UC03 |
Đăng xuất |
Admin / Khách hàng |
Kết thúc phiên làm việc và thoát khỏi hệ thống qua thanh điều hướng. |
| UC04 |
Quản lý hệ thống rạp |
Admin |
Thực hiện thêm mới, cập nhật thông tin hoặc xóa rạp chiếu khỏi cơ sở dữ liệu. |
| UC05 |
Thống kê |
Admin |
Xem báo cáo thống kê doanh thu/vé theo từng rạp hoặc tổng các rạp. |
| UC06 |
Quản lý bình luận |
Admin |
Duyệt chấp thuận hiển thị hoặc xóa bình luận đánh giá của khách hàng. |
| UC07 |
Quản lý phòng chiếu |
Admin |
Thực hiện thêm mới, chỉnh sửa thông tin hoặc xóa phòng chiếu thuộc rạp. |
| UC08 |
Quản lý phim |
Admin |
Tìm kiếm, thêm phim mới, chỉnh sửa thông tin hoặc xóa phim khỏi hệ thống. |
| UC09 |
Quản lý lịch chiếu |
Admin |
Thêm mới (yêu cầu có sẵn phim và phòng), cập nhật hoặc xóa lịch chiếu. |
| UC10 |
Quản lý vé |
Admin |
Tiếp nhận yêu cầu đặt vé của khách hàng để thực hiện Xác nhận hoặc Từ chối. |
| UC11 |
Xem thông tin cá nhân |
Admin / Khách hàng |
Hiển thị và kiểm tra các thông tin hồ sơ của tài khoản đang đăng nhập. |
| UC12 |
Xem danh sách phim hiện tại |
Khách hàng |
Hiển thị danh sách các bộ phim đang được chiếu tại hệ thống rạp. |
| UC13 |
Tìm kiếm |
Admin / Khách hàng |
Nhập từ khóa tên phim để tra cứu nhanh thông tin phim tương ứng. |
| UC14 |
Chi tiết phim |
Khách hàng |
Xem thông tin đầy đủ về nội dung, thời lượng, diễn viên và suất chiếu của phim. |
| UC15 |
Đặt vé |
Khách hàng |
Chọn phim, ngày chiếu, suất chiếu, số lượng và vị trí ghế ngồi để đặt chỗ. |
| UC16 |
Xem vé đã đặt |
Khách hàng |
Tra cứu lịch sử đặt vé; cho phép gửi yêu cầu hủy đối với các vé chưa xác nhận. |
| UC17 |
Sử dụng điểm tích luỹ |
Khách hàng |
Chọn áp dụng điểm tích lũy tại bước xác nhận vé để giảm trừ trực tiếp tiền vé. |
| UC18 |
Xem danh sách phim đã xem |
Khách hàng |
Tra cứu danh sách các bộ phim mà tài khoản đã hoàn thành việc xem tại rạp. |
| UC19 |
Bình luận |
Khách hàng |
Viết bài đánh giá và chấm điểm cho phim (điều kiện: đã đặt vé và xem xong). |
- Thiết kế xử lý và dữ liệu: Xây dựng hệ thống sơ đồ tuần tự (Sequence Diagram) cho từng ca sử dụng và hoàn thiện sơ đồ cơ sở dữ liệu quan hệ gồm 8 bảng thực thể.
Chương 4: Xây dựng ứng dụng
Chương 4 hiện thực hóa các thiết kế thành hệ thống giao diện người dùng trực quan, phân định rõ theo hai phân hệ:
- Phân hệ Khách hàng: Giao diện Trang chủ (hiển thị phim gợi ý theo sở thích, phim đang chiếu, phim sắp chiếu), giao diện Thông tin chi tiết phim, giao diện Đặt vé và chọn ghế trực quan, giao diện Phiếu xác nhận đặt vé (tích hợp chọn giảm giá/điểm tích lũy), giao diện Danh sách phim đã xem, giao diện Viết bình luận/đánh giá, giao diện Lịch sử vé đã đặt, giao diện Thông tin cá nhân và Đổi mật khẩu.
- Phân hệ Quản trị (Admin): Giao diện Quản lý rạp phim (danh sách rạp, thêm rạp mới), giao diện Quản lý phòng chiếu (theo danh sách rạp và danh sách phòng), giao diện Quản lý phim (tìm kiếm, thêm mới phim), giao diện Quản lý lịch chiếu (danh sách và thêm lịch chiếu), giao diện Kiểm duyệt bình luận, giao diện Thống kê báo cáo (cho từng cụm rạp hoặc tổng hợp toàn hệ thống), giao diện Thông tin cá nhân và Đổi mật khẩu của Admin.
Chương 5: Kết luận
Chương 5 tổng kết toàn bộ quá trình thực hiện Đồ án 2:
- Đánh giá mức độ hoàn thành mục tiêu xây dựng website quản lý rạp chiếu phim trực tuyến.
- Ghi nhận việc hoàn thiện các tính năng tồn đọng từ Đồ án 1 và tích hợp thành công các chức năng mở rộng mới.
- Phân tích những thuận lợi và khó khăn trong quá trình phát triển hệ thống.
- Đề xuất các định hướng phát triển mở rộng hệ thống trong tương lai.
Kết quả và đóng góp
Kết quả chính đạt được:
- Xây dựng hoàn chỉnh ứng dụng web quản lý rạp chiếu phim tích hợp 2 phân hệ người dùng độc lập: Khách hàng và Quản trị viên (Admin).
- Hiện thực hóa đầy đủ 19 ca sử dụng nghiệp vụ được đặc tả chi tiết từ mức Use-case, Sequence Diagram đến giao diện tương tác thực tế.
- Thiết kế cơ sở dữ liệu quan hệ chuẩn hóa với 8 bảng dữ liệu liên kết chặt chẽ (
theater, room, seat, showtimes, booking, movie, comment, user).
- Đảm bảo quy trình đặt vé, kiểm soát lịch chiếu, quản lý phòng chiếu và kiểm duyệt bình luận diễn ra đồng bộ trên môi trường web.
Đóng góp mở rộng so với giai đoạn trước (Đồ án 1):
- Nâng cấp từ quản lý rạp đơn lẻ sang quản lý hệ thống rạp chiếu phim đa chi nhánh.
- Tích hợp thêm các module nghiệp vụ nâng cao:
- Module quản lý giảm giá và khuyến mãi.
- Module quản lý danh mục phim yêu thích của người dùng.
- Module quản lý cơ chế tích điểm thành viên khi mua vé.
- Module sử dụng điểm tích lũy để chiết khấu trực tiếp trên giá trị đơn đặt vé.
- Module kiểm duyệt bình luận và đánh giá phim sau khi xem.
- Module thống kê báo cáo doanh thu theo từng rạp hoặc tổng hợp toàn chuỗi rạp.
Hạn chế và hướng nghiên cứu tiếp
- Khó khăn và hạn chế: Báo cáo ghi nhận kinh nghiệm thực tế của nhóm sinh viên còn hạn chế trong việc tối ưu hóa quy trình nghiệp vụ và xử lý một số tương tác phức tạp của hệ thống quản lý rạp chiếu phim trực tuyến.
- Hướng phát triển: Tiếp tục hoàn thiện các chức năng mở rộng, tối ưu hóa giao diện người dùng, nâng cao hiệu năng xử lý truy vấn dữ liệu và phát triển thêm các tiện ích quản trị chuyên sâu cho chuỗi rạp chiếu phim.
Giá trị tham khảo
Tài liệu đồ án là nguồn tham khảo hữu ích cho sinh viên các chuyên ngành Công nghệ Thông tin, Công nghệ Phần mềm và Hệ thống Thông tin đang thực hiện các đồ án chuyên ngành hoặc đồ án tốt nghiệp về xây dựng ứng dụng web quản lý thương mại/dịch vụ:
- Phần phân tích yêu cầu và thiết kế hệ thống (Chương 3): Đáng tham khảo về cách xây dựng bảng danh mục Actor, bảng mô tả Use-case tổng quan, mẫu bảng đặc tả chi tiết 19 Use-case chuẩn (gồm Basic Flow, Pre-condition, Requirement) và sơ đồ tuần tự.
- Phần thiết kế dữ liệu và kiến trúc công nghệ (Chương 2 & Chương 3): Cung cấp mẫu thiết kế cơ sở dữ liệu chuẩn cho bài toán quản lý rạp chiếu phim (quản lý rạp, phòng, sơ đồ ghế, suất chiếu và giao dịch vé) trên nền tảng Spring Boot kết hợp Thymeleaf và Bootstrap 5.
Câu hỏi thường gặp
1. Đồ án 2 đã bổ sung những chức năng mới nào so với giai đoạn Đồ án 1?
Trong Đồ án 1, hệ thống chỉ dừng lại ở hai chức năng cơ bản là Quản lý rạp phim và Đặt vé xem phim. Sang Đồ án 2, tác giả đã phát triển mở rộng 5 chức năng mới gồm: Quản lý hệ thống rạp phim (chuỗi rạp), Quản lý giảm giá, Danh mục phim yêu thích, Ghi nhận tích điểm và Cho phép khách hàng sử dụng điểm tích lũy khi thanh toán.
2. Hệ thống website quản lý rạp chiếu phim phân định những Actor nào và quyền hạn cụ thể ra sao?
Hệ thống gồm 2 Actor chính:
- Admin: Nắm toàn quyền hoạt động trên hệ thống, quản lý tài nguyên phim, hệ thống rạp, phòng chiếu, lịch chiếu, duyệt/từ chối vé đặt của khách, kiểm duyệt bình luận và xem thống kê báo cáo.
- Khách hàng: Tìm kiếm phim, xem chi tiết và danh sách phim đang/sắp chiếu, thực hiện đặt vé, xem vé đã đặt, dùng điểm tích lũy, xem danh sách phim đã xem và viết bình luận đánh giá.
3. Cơ sở dữ liệu của đồ án gồm những bảng nào để quản lý chuỗi rạp và lịch chiếu?
Cơ sở dữ liệu được thiết kế gồm 8 bảng dữ liệu quan hệ: theater (thông tin rạp), room (phòng chiếu), seat (ghế ngồi), showtimes (lịch chiếu), booking (thông tin đặt vé), movie (danh mục phim), comment (bình luận) và user (tài khoản người dùng và điểm tích lũy).
4. Điều kiện tiên quyết để Khách hàng có thể bình luận và đánh giá một bộ phim là gì?
Theo đặc tả Use-case Bình luận (UC19) và Xem danh sách phim đã xem (UC18), khách hàng bắt buộc phải đăng nhập tài khoản, đã thực hiện đặt vé và đã hoàn thành việc xem bộ phim đó tại rạp thì hệ thống mới cho phép viết và gửi bình luận đánh giá. Sau khi gửi, bình luận sẽ qua bước kiểm duyệt của Admin trước khi hiển thị công khai.
5. Những công nghệ cụ thể nào được sử dụng để xây dựng hệ sinh thái phần mềm trong đồ án?
Đồ án sử dụng ngôn ngữ lập trình Java ở phía backend kết hợp framework Spring Boot và Spring MVC; giao diện web sử dụng HTML, CSS, JavaScript, Template Engine Thymeleaf và thư viện Bootstrap 5; cơ sở dữ liệu quan hệ được truy vấn bằng SQL; quản lý mã nguồn qua GitHub và phát triển trên hai môi trường IDE là IntelliJ IDEA và VSCode.
Kết luận
Đồ án "Xây dựng website quản lý rạp chiếu phim" của nhóm tác giả Trần Huyền Anh Thy và Phạm Thị Nhật Khánh (Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM) đã hoàn thành việc thiết kế và xây dựng một giải pháp phần mềm hoàn chỉnh cho bài toán vận hành rạp chiếu phim trực tuyến. Nghiên cứu đã đặc tả chi tiết 19 ca sử dụng nghiệp vụ, thiết kế cấu trúc cơ sở dữ liệu 8 bảng và hiện thực hóa thành công các phân hệ giao diện cho cả Quản trị viên và Khách hàng trên nền tảng Spring Boot, Thymeleaf và Bootstrap 5. Hệ thống giải quyết hiệu quả nhu cầu tra cứu lịch chiếu, đặt vé trực tuyến và quản lý rạp, đồng thời bổ sung các tính năng nâng cao như tích lũy điểm thưởng và quản lý chuỗi rạp đa chi nhánh.