Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh công nghệ thông tin phát triển và ứng dụng mạnh mẽ vào đời sống xã hội, tối ưu hóa trải nghiệm người dùng là một trong những mục tiêu then chốt của các doanh nghiệp cung cấp dịch vụ giải trí. Đối với lĩnh vực chiếu phim, nhu cầu thưởng thức điện ảnh của khán giả ngày càng gia tăng, kéo theo áp lực phục vụ lớn tại các cụm rạp. Phương thức bán vé thủ công truyền thống bộc lộ nhiều điểm hạn chế như phát sinh chi phí in ấn, gây mất thời gian do tình trạng xếp hàng chờ đợi, đồng thời khiến việc thống kê dữ liệu doanh thu của bộ phận quản lý gặp nhiều khó khăn. Chuyển đổi số thông qua các hệ thống bán vé trực tuyến trở thành giải pháp cần thiết nhằm đáp ứng khả năng tiếp cận dịch vụ mọi lúc, mọi nơi của người dùng. Xuất phát từ thực tiễn đó, đề tài khóa luận tốt nghiệp "Xây dựng website đặt vé xem phim online" được thực hiện bởi sinh viên Trương Minh Phương và Lê Quốc Vinh, dưới sự hướng dẫn của ThS. Hoàng Công Trình tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh.
Mục đích nghiên cứu của đề tài được xác định qua 5 nhiệm vụ cụ thể:
- Cung cấp cho các rạp chiếu phim một giải pháp đặt vé trực tuyến thuận tiện trên môi trường web.
- Góp phần giảm thiểu tình trạng khách hàng phải chờ đợi, xếp hàng mua vé trực tiếp tại rạp.
- Tạo ra một quy trình chọn vé – đặt vé – thanh toán vé thuận lợi và nhanh chóng.
- Hỗ trợ việc quản lý vé và doanh thu thuận tiện, hiệu quả hơn so với phương thức bán vé truyền thống.
- Xây dựng giao diện hiển thị thông tin và thống kê trực quan, giúp người quản lý dễ dàng theo dõi và vận hành hoạt động kinh doanh.
Đối tượng nghiên cứu của khóa luận bao gồm:
- Các nền tảng công nghệ phần mềm: Framework Spring Boot (Backend), thư viện ReactJS (Frontend), hệ quản trị cơ sở dữ liệu MySQL, công cụ quản lý luồng Cadence Workflow, hệ thống CI/CD CircleCI và nền tảng đám mây Azure.
- Các mô hình website đặt vé xem phim tương tự trên thị trường trong nước và quốc tế để phân tích quy trình vận hành và kiến trúc chức năng.
- Đối tượng người dùng hệ thống: Khách hàng đại chúng (thành viên đăng ký tài khoản và khách vãng lai) với nhu cầu tra cứu, đặt vé, tương tác; cùng đội ngũ quản lý và nhân viên rạp phụ trách vận hành nghiệp vụ.
Phạm vi nghiên cứu được xác lập trên các phương diện:
- Về công nghệ: Tập trung ứng dụng Spring Boot làm backend, ReactJS xây dựng frontend, MySQL lưu trữ dữ liệu quan hệ, kết hợp Uber Cadence cho quy trình giữ vé và CircleCI hỗ trợ tự động hóa tích hợp/triển khai.
- Về đối tượng phục vụ: Hướng tới khách hàng xem phim trực tuyến và mô hình vận hành của các cụm rạp chiếu phim tại Việt Nam.
- Về môi trường hoạt động: Môi trường web phục vụ hoạt động thương mại điện tử trong lĩnh vực giải trí, hỗ trợ giao dịch trực tuyến và đặt vé tại quầy.
- Về kỹ năng vận hành: Đối với khách hàng, hệ thống yêu cầu các thao tác tìm kiếm, xem phim, đặt vé, viết đánh giá và thanh toán. Đối với ban quản lý và nhân viên, hệ thống yêu cầu các kỹ năng nghiệp vụ về quản trị cơ sở dữ liệu phim, lịch chiếu, chi nhánh, duyệt bài đánh giá và quản lý hóa đơn.
Tác giả đã tiến hành khảo sát và phân tích 4 hệ thống thương mại thực tế nhằm rút ra bài học thiết kế:
| Hệ thống khảo sát |
Đặc điểm nổi bật |
Tiện ích và dịch vụ cung cấp |
Bài học kinh nghiệm rút ra cho đề tài |
| CGV (Việt Nam / Hàn Quốc) |
Bố cục bắt mắt, cập nhật tin tức phim liên tục, tốc độ tải trang nhanh, có hệ thống điểm thưởng tích lũy. |
Giao diện chọn rạp và chọn ghế trực quan; phân phối nhiều danh mục phim; xác thực tài khoản qua email. |
Học hỏi thiết kế giao diện đặt vé trực quan, tổ chức nội dung theo cụm rạp và tăng cường tính bảo mật qua xác thực. |
| BookMyShow (Ấn Độ / Đa quốc gia) |
Phong cách thiết kế trang trọng, danh mục Trending Searches Right Now, tích hợp dịch vụ sự kiện trực tuyến. |
Đăng nhập đa kênh (Google, Apple, Email); chấp nhận thanh toán quốc tế và thẻ tín dụng. |
Học hỏi cấu trúc điều hướng danh mục phim và quản lý dữ liệu lớn; giới hạn phạm vi thanh toán trong nước để phù hợp nguồn lực sinh viên. |
| Galaxy Cinema (Việt Nam) |
Giao diện sáng sủa, phối màu hiện đại; đưa danh sách phim hot lên trang chủ; tích hợp chuyên mục blog/bình luận điện ảnh. |
Đăng ký tài khoản bằng số điện thoại/email; đặt vé nhanh; hiển thị tin tức sự kiện đi kèm từng cụm rạp. |
Học hỏi cách bố trí khối chức năng đặt vé ngay tại đầu trang; xây dựng diễn đàn đánh giá và bình luận phim tương tác. |
| PVR Cinemas (Ấn Độ) |
Tông màu đen - vàng chủ đạo; tích hợp tính năng tìm kiếm bằng giọng nói; hiển thị trailer trực tiếp trên giao diện. |
Lọc phim chính xác theo thành phố; liên kết đăng nhập mạng xã hội (Facebook, Google); tối ưu hóa phân vùng người dùng. |
Học hỏi cách bố trí màu sắc mang phong cách rạp chiếu hiện đại; tích hợp xem trailer và thông tin tóm tắt phim chi tiết. |
Cơ sở lý thuyết và phương pháp
Khóa luận thiết lập hệ thống lý thuyết dựa trên 6 tiêu chí đánh giá chất lượng một trang web đặt vé xem phim trực tuyến:
- Độ tin cậy: Thông tin về giá vé, sơ đồ ghế ngồi thực tế tại phòng chiếu và dữ liệu phim phải đồng bộ tuyệt đối; hệ thống tích hợp chứng chỉ bảo mật SSL (Secure Sockets Layer) để bảo vệ dữ liệu truyền tải giữa máy khách và máy chủ.
- Thiết kế giao diện: Bố cục cần đạt tính thẩm mỹ, hiện đại, hỗ trợ điều hướng nhanh và hiển thị đầy đủ thông tin cần thiết.
- Khả năng vận hành đa nền tảng: Giao diện có tính tương thích cao, hiển thị ổn định trên nhiều thiết bị và kích thước màn hình khác nhau.
- Nội dung thông tin: Nội dung phim, lịch chiếu, tin tức và chương trình khuyến mãi được cập nhật chính xác, có tính chọn lọc.
- Tối ưu hóa trải nghiệm người dùng: Đơn giản hóa toàn bộ các bước thao tác từ đăng ký, đăng nhập, tìm kiếm phim, chọn vị trí ghế ngồi cho đến bước xác nhận thanh toán.
- Hiệu suất hệ thống: Đảm bảo khả năng xử lý đồng thời, duy trì tốc độ phản hồi nhanh, hạn chế hiện tượng nghẽn đường truyền khi lượng người truy cập tăng đột biến.
Phương pháp nghiên cứu được triển khai bao gồm:
- Phương pháp phân tích - so sánh tài liệu: Khảo sát cấu trúc vận hành của các hệ thống bán vé lớn để xác định mô hình kiến trúc chuẩn.
- Phương pháp phân tích và thiết kế hướng đối tượng (OOAD): Xây dựng sơ đồ chức năng (Functional Diagram), biểu đồ lớp thực thể (ERD), biểu đồ tuần tự (Sequence Diagram) và biểu đồ cộng tác (Collaboration Diagram).
- Phương pháp thực nghiệm phần mềm: Triển khai mã nguồn hệ thống theo mô hình phân tầng Client-Server độc lập, tích hợp công cụ điều phối quy trình phân tán và thiết lập đường ống CI/CD.
- Phương pháp kiểm thử phần mềm: Kiểm thử hộp đen chức năng người dùng, kiểm thử giao diện lập trình ứng dụng (API Testing) và đo lường độ trễ phản hồi của hệ thống.
Nguồn dữ liệu sử dụng trong nghiên cứu bao gồm tài liệu kỹ thuật chuyên ngành về Spring Boot, ReactJS, Uber Cadence; dữ liệu khảo sát từ các nền tảng bán vé trực tuyến; và tập dữ liệu kiểm thử giả lập về danh mục phim, suất chiếu, sơ đồ phòng vé cùng tài khoản người dùng thử nghiệm.
Thiết kế và triển khai
Hệ thống được thiết kế theo kiến trúc phân tầng tách biệt giữa Frontend và Backend, kết nối thông qua giao thức truyền thông HTTP RESTful API.
+-----------------------------------------------------------------------------------+
| NGƯỜI DÙNG / TRÌNH DUYỆT |
+-----------------------------------------------------------------------------------+
+-----------------------------------------------------------------------------------+
| TẦNG TRÌNH DIỄN (FRONTEND - REACTJS) |
| - Virtual DOM & JSX Rendering |
| - Quản lý trạng thái tập trung với Redux (Store, Actions, Reducers) |
| - Nginx Web Server đóng gói qua Docker Container |
+-----------------------------------------------------------------------------------+
+-----------------------------------------------------------------------------------+
| TẦNG DỊCH VỤ NỀN TẢNG (BACKEND) |
| +-------------------------------------+ +---------------------------------+ |
| | SPRING BOOT SERVER | | CADENCE WORKFLOW ENGINE | |
| | - Quản lý nghiệp vụ chính | | - Điều phối quy trình đặt vé | |
| | - Xác thực, phân quyền người dùng | | - Quản lý trạng thái giữ ghế | |
| | - API Phim, Lịch chiếu, Đánh giá | | - Đảm bảo tính nhất quán luồng | |
| +-------------------------------------+ +---------------------------------+ |
+-----------------------------------------------------------------------------------+
+---------------------------------+ +---------------------------------+
| HỆ QUẢN TRỊ CSDL MYSQL | | HỆ QUẢN TRỊ CSDL CASSANDRA |
| - Lưu trữ dữ liệu quan hệ | | - Lưu trữ lịch sử thực thi |
| - Bảng phim, người dùng, vé | | và trạng thái của Cadence |
+---------------------------------+ +---------------------------------+
Kiến trúc công nghệ Frontend
Frontend xây dựng trên nền tảng thư viện ReactJS, tận dụng cơ chế Virtual DOM nhằm tối ưu hóa hiệu năng kết xuất giao diện khi người dùng thao tác. Cấu trúc giao diện sử dụng cú pháp JSX, cho phép tổ chức mã nguồn dưới dạng các thành phần (components) độc lập có khả năng tái sử dụng cao. Trạng thái toàn cục của ứng dụng được quản lý thông qua Redux với luồng dữ liệu một chiều rõ ràng:
- Action: Khởi tạo thông điệp chứa loại hành động (
type) và dữ liệu gửi kèm (payload) thông qua phương thức store.dispatch().
- Reducer: Hàm thuần túy tiếp nhận trạng thái hiện tại và Action để tính toán trả về trạng thái mới cho ứng dụng.
- Store: Điểm lưu trữ tập trung duy nhất duy trì toàn bộ cây trạng thái của hệ thống.
Quy trình phát triển và kiểm thử giao diện được thực hiện trên Visual Studio Code, sử dụng lệnh npx create-react-app để khởi tạo cấu trúc, cài đặt gói phụ thuộc bằng lệnh npm i --force, và khởi chạy máy chủ phát triển cục bộ tại cổng 3000 bằng lệnh npm start.
Kiến trúc Backend và Động cơ điều phối Cadence Workflow
Backend xây dựng bằng nền tảng Spring Boot (sử dụng công cụ quản lý dự án Java Maven), hỗ trợ phát triển nhanh và cung cấp khả năng mở rộng hệ thống. Cơ sở dữ liệu chính sử dụng MySQL để quản lý các quan hệ dữ liệu có cấu trúc.
Điểm đặc thù trong kiến trúc kỹ thuật của đồ án là việc tích hợp nền tảng Cadence Workflow Engine (do Uber phát triển, mã nguồn mở theo giấy phép MIT) nhằm tách biệt quy trình đặt và giữ vé ra khỏi hệ thống chính:
- Cadence hỗ trợ quản lý trạng thái của các quy trình dài hạn (Long-running processes), cho phép xử lý hàng chục nghìn cập nhật mỗi giây và hàng tỷ quy trình mở.
- Luồng công việc (Workflow) và các tác vụ (Activities) được lập trình hướng đối tượng. Toàn bộ ngăn xếp luồng và biến cục bộ được bảo toàn ngay cả khi máy chủ dịch vụ gặp lỗi đột ngột.
- Khi máy chủ chính gặp sự cố, hệ thống đặt vé vẫn duy trì việc giữ chỗ và sẽ tự động kết nối, tái đồng bộ trạng thái khi hệ thống chính phục hồi.
- Cadence được triển khai độc lập thông qua Docker Compose đi kèm hệ quản trị cơ sở dữ liệu phân tán Apache Cassandra để lưu trữ trạng thái phiên làm việc; quá trình vận hành được giám sát thông qua bảng điều khiển Cadence Web.
Hệ thống CI/CD và Hạ tầng Triển khai
Để đảm bảo tính sẵn sàng cao, nhóm tác giả ứng dụng quy trình DevOps hiện đại:
- Tự động hóa tích hợp và chuyển giao liên tục (CI/CD) thông qua CircleCI, kết nối trực tiếp với kho mã nguồn GitHub nhánh chính (
main).
- Tự động kích hoạt quy trình biên dịch gói Java Maven, chạy kiểm thử và đóng gói ứng dụng thành các Docker image thông qua tệp cấu hình
config.yml.
- Frontend được đóng gói cùng máy chủ web Nginx nhằm phục vụ nội dung tĩnh và điều hướng truy cập.
- Ứng dụng và hệ cơ sở dữ liệu được triển khai thực tế trên nền tảng đám mây Microsoft Azure, sử dụng máy chủ ảo Azure VPS (kết nối quản trị an toàn bằng khóa xác thực SSH) kết hợp dịch vụ Azure App Service.
| Hạng mục kỹ thuật |
Công nghệ áp dụng |
Vai trò và chức năng trong hệ thống |
| Giao diện người dùng |
ReactJS, Redux, JSX, Virtual DOM |
Hiển thị giao diện tương tác, quản lý trạng thái động, tối ưu hóa tốc độ tải trang. |
| Dịch vụ máy chủ chính |
Spring Boot (Java, Maven) |
Cung cấp RESTful API, quản lý các quy tắc nghiệp vụ, phân quyền tài khoản. |
| Hệ thống điều phối quy trình |
Uber Cadence Workflow, Cassandra |
Quản lý quy trình nghiệp vụ đặt vé, giữ ghế tạm thời, đảm bảo chịu lỗi phân tán. |
| Cơ sở dữ liệu quan hệ |
MySQL |
Lưu trữ dữ liệu người dùng, danh mục phim, rạp, suất chiếu, lịch sử giao dịch. |
| Tự động hóa CI/CD |
CircleCI, Docker, GitHub |
Tự động hóa quá trình đóng gói, kiểm thử và chuyển giao mã nguồn lên máy chủ. |
| Máy chủ Web & Hạ tầng |
Nginx, Microsoft Azure (VPS, App Service) |
Điều phối phân phối web tĩnh, lưu trữ đám mây và mở cổng kết nối cơ sở dữ liệu. |
Nội dung chính theo từng chương
Phần mở đầu
Trình bày tính cấp thiết của việc xây dựng hệ thống đặt vé xem phim trực tuyến trong thời kỳ chuyển đổi số ngành dịch vụ giải trí. Xác định mục tiêu trọng tâm là khắc phục nhược điểm của phương thức bán vé thủ công, rút ngắn thời gian giao dịch của người dùng và hỗ trợ đơn vị vận hành rạp chiếu theo dõi doanh số minh bạch. Xác lập đối tượng, phạm vi nghiên cứu về mặt công nghệ, phân hệ người dùng và môi trường hoạt động. Tiến hành khảo sát thực tế 4 website tiêu biểu (CGV, BookMyShow, Galaxy Cinema, PVR Cinemas), phân tích các ưu điểm về mặt giao diện, cơ chế tìm kiếm, thanh toán, tương tác cộng đồng để định hình các yêu cầu chức năng cho dự án.
Chương 1: Cơ sở lý thuyết
Xác định khung lý thuyết với 6 tiêu chuẩn cốt lõi cấu thành một website đặt vé chất lượng (độ tin cậy, thiết kế giao diện, tính tương thích đa nền tảng, chất lượng nội dung, tối ưu hóa trải nghiệm khách hàng và hiệu suất tải dữ liệu). Giới thiệu tổng quan kiến trúc phân tầng Client-Server và vai trò của từng công nghệ trong hệ thống. Trình bày chi tiết lý thuyết nền tảng của ReactJS (cú pháp JSX, cơ chế hoạt động của Virtual DOM, mô hình quản lý trạng thái Redux với Store, Action, Reducer); cơ chế phát triển ứng dụng nhanh của Spring Boot; nguyên lý hoạt động của nền tảng Uber Cadence Workflow trong việc đảm bảo tính chịu lỗi cho quy trình giữ vé; cùng nguyên lý vận hành của đường ống tự động hóa tích hợp/triển khai CircleCI kết hợp môi trường Docker.
Chương 2: Phân tích và thiết kế hệ thống
Phân tích yêu cầu chức năng và phi chức năng của hệ thống đặt vé. Phân ranh giới quyền hạn rõ ràng giữa hai nhóm người dùng: khách hàng (thành viên) và ban quản lý (quản trị viên, nhân viên bán vé). Mô hình hóa dữ liệu thông qua lược đồ quan hệ thực thể (ERD), sơ đồ chức năng tổng quát, biểu đồ tuần tự (Sequence Diagram) và biểu đồ cộng tác (Collaboration Diagram) cho nghiệp vụ đặt vé. Chi tiết hóa hệ thống qua 27 bảng đặc tả Use case (từ Bảng 7 đến Bảng 33), bao gồm:
- Luồng nghiệp vụ phía khách hàng: Tìm kiếm phim, đăng ký/đăng nhập hệ thống, đổi mật khẩu, cập nhật thông tin cá nhân, xem chi tiết phim và lịch chiếu, đặt vé và thanh toán trực tuyến, quản lý lịch sử đặt vé, tạo và quản lý bài đánh giá phim cá nhân, bình luận và lưu bài viết yêu thích.
- Luồng nghiệp vụ phía quản trị/nhân viên: Quản lý danh mục phim, quản lý lịch chiếu, quản lý thông tin cụm rạp và chi nhánh, tạo tài khoản nhân viên, phê duyệt hoặc từ chối bài viết đánh giá, quản trị sự kiện/khuyến mãi, quản lý hóa đơn giao dịch, thực hiện bán vé và thanh toán trực tiếp tại quầy, theo dõi bảng điều khiển số liệu thống kê (Dashboard).
Chương 2 đồng thời cung cấp hệ thống 44 màn hình giao diện thực tế (từ Hình 55 đến Hình 86 và các hình phụ trợ), minh họa chi tiết từng bước thao tác từ trang chủ, trang đặt vé, chọn ghế, trang quản lý suất chiếu đến các bảng điều khiển quản trị.
Chương 3: Triển khai và kiểm thử hệ thống
Mô tả quy trình cài đặt, cấu hình và vận hành hệ thống trên môi trường máy chủ thực tế. Cung cấp cấu hình tệp Dockerfile, cấu hình máy chủ Nginx, tệp thiết lập kết nối tự động CircleCI (config.yml), và thông số cài đặt máy ảo Azure VPS (thiết lập cổng kết nối MySQL, cấu hình khóa SSH, cấu hình Azure App Service). Trình bày kết quả thử nghiệm kiểm thử giao diện lập trình ứng dụng (API testing) và đo lường độ ổn định của các dịch vụ. Tổng hợp số liệu thử nghiệm thực tế tại Bảng 41 nhằm đánh giá mức độ đáp ứng của hệ thống đối với các yêu cầu kỹ thuật và nghiệp vụ đã đề ra.
Phần kết luận
Đánh giá tổng kết các mục tiêu đã hoàn thành của đồ án; đối chiếu kết quả sản phẩm xây dựng được với các yêu cầu đặt ra ban đầu; chỉ rõ những mặt còn hạn chế do điều kiện tài nguyên nghiên cứu; và đề xuất các hướng phát triển kỹ thuật trong tương lai.
Kết quả và đóng góp
Đồ án đã đạt được các kết quả kỹ thuật và đóng góp thực tiễn cụ thể:
- Xây dựng hoàn chỉnh website đặt vé xem phim trực tuyến với đầy đủ hai phân hệ độc lập: cổng thông tin tương tác dành cho khách hàng và cổng quản trị nghiệp vụ dành cho nhà quản lý, nhân viên rạp chiếu.
- Hiện thực hóa thành công quy trình nghiệp vụ mua vé trực tuyến khép kín: Khách hàng có thể tìm kiếm phim, xem trailer, tra cứu lịch chiếu theo ngày và rạp, chọn sơ đồ ghế ngồi trực quan, áp dụng mã khuyến mãi và hoàn tất thanh toán.
- Thiết kế hệ thống đặt vé và thanh toán tại quầy dành riêng cho nhân viên rạp, giúp số hóa toàn bộ giao dịch trực tiếp, loại bỏ việc in vé thủ công truyền thống và đồng bộ tức thời với cơ sở dữ liệu trung tâm.
- Cung cấp giao diện bảng điều khiển (Dashboard) trực quan giúp người quản lý theo dõi doanh thu bán vé, số lượng giao dịch, quản lý dữ liệu phim, suất chiếu và duyệt các bài đánh giá của người dùng.
- Điểm đóng góp nổi bật về mặt kiến trúc phần mềm so với các đồ án sinh viên thông thường là việc ứng dụng thành công nền tảng điều phối Uber Cadence Workflow độc lập trên Docker Compose. Cơ chế này đảm bảo việc giữ chỗ và điều phối phiên giao dịch không bị gián đoạn, duy trì tính toàn vẹn dữ liệu ngay cả khi hệ thống máy chủ chính phát sinh lỗi kết nối.
- Thiết lập hoàn chỉnh quy trình chuyển giao phần mềm tự động hóa CI/CD thông qua CircleCI, liên kết mã nguồn GitHub với hạ tầng đám mây Microsoft Azure, bảo đảm tính sẵn sàng cao và dễ dàng bảo trì sản phẩm.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của hệ thống:
- Do điều kiện ngân sách và nguồn lực của mô hình đồ án tốt nghiệp sinh viên, hệ thống chưa thể tích hợp các cổng thanh toán quốc tế đa năng (như Visa, MasterCard quy mô toàn cầu) do phát sinh chi phí duy trì lớn, mà chỉ tập trung thử nghiệm các luồng giao dịch cơ bản trong nước.
- Hệ thống cơ sở dữ liệu và quy trình giữ vé dựa trên Cadence Workflow đòi hỏi hạ tầng máy chủ phân tán có cấu hình mạnh để phát huy tối đa hiệu năng, trong khi hệ thống thử nghiệm hiện mới triển khai trên cấu hình máy ảo Azure cơ bản.
Hướng nghiên cứu và phát triển tiếp theo:
- Hoàn thiện và tích hợp đa dạng các cổng thanh toán điện tử nội địa và quốc tế có tính bảo mật cao.
- Nghiên cứu áp dụng các công nghệ hiện đại học hỏi từ các hệ thống lớn, ví dụ như tính năng tìm kiếm phim bằng giọng nói (dựa trên trí tuệ nhân tạo tương tự PVR Cinemas).
- Phát triển ứng dụng trên nền tảng di động (sử dụng React Native dựa trên nền tảng ReactJS sẵn có) nhằm đồng bộ hóa trải nghiệm đa nền tảng cho người dùng.
- Tối ưu hóa thuật toán đề xuất phim và phân tích dữ liệu hành vi khách hàng trên hệ thống Dashboard quản trị.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo có giá trị chuyên môn đối với:
- Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang chuẩn bị thực hiện đồ án tốt nghiệp hoặc các dự án công nghệ web quy mô lớn.
- Các lập trình viên cần tìm hiểu mô hình ứng dụng kết hợp giữa Spring Boot (Backend) và ReactJS/Redux (Frontend) theo kiến trúc RESTful API chuẩn mực.
- Tài liệu đặc biệt hữu ích ở nội dung triển khai thực tế nền tảng điều phối quy trình Uber Cadence Workflow, cách viết Worker, quản trị quy trình qua Cadence Web và thiết lập Docker Compose.
- Cung cấp mẫu tham khảo chuẩn mực về tài liệu đặc tả yêu cầu phần mềm, hệ thống 27 bảng đặc tả Use case chi tiết, thiết kế biểu đồ tương tác, cùng quy trình thiết lập CI/CD thực tế qua CircleCI lên hạ tầng máy chủ Microsoft Azure.
Câu hỏi thường gặp
1. Tại sao nhóm tác giả sử dụng Cadence Workflow Engine cho quy trình đặt vé thay vì chỉ dùng cơ sở dữ liệu quan hệ thông thường?
Cadence Workflow Engine cung cấp giải pháp quản lý luồng công việc phân tán với khả năng xử lý hàng chục nghìn cập nhật mỗi giây và bảo toàn hoàn toàn trạng thái thực thi (stack luồng, biến cục bộ). Khi người dùng thực hiện giữ ghế trong quá trình đặt vé, Cadence vận hành một phiên làm việc độc lập. Nếu hệ thống chính gặp sự cố kỹ thuật hoặc khởi động lại, phiên công việc đặt vé vẫn được bảo toàn và tự động kết nối lại khi hệ thống phục hồi, tránh được tình trạng xung đột hoặc mất dữ liệu ghế ngồi.
2. Hệ thống phân chia vai trò và quyền hạn của các nhóm người dùng như thế nào?
Hệ thống phân định rõ hai nhóm vai trò chính:
- Khách hàng (Thành viên/Người dùng): Đăng ký, đăng nhập tài khoản, tra cứu thông tin phim, xem lịch chiếu, thực hiện đặt vé và thanh toán, xem lịch sử giao dịch, đổi thông tin cá nhân/mật khẩu, viết bài đánh giá (review), chỉnh sửa bình luận và lưu bài viết yêu thích.
- Quản trị viên và Nhân viên: Nhân viên có nghiệp vụ quản lý thanh toán và đặt vé trực tiếp tại quầy cho khách mua tại rạp. Quản trị viên quản lý danh mục phim, lịch chiếu, chi nhánh rạp, quản lý tài khoản người dùng/nhân viên, phê duyệt hoặc từ chối các bài viết review, quản trị tin tức sự kiện và theo dõi biểu đồ thống kê kinh doanh trên Dashboard.
3. Quy trình CI/CD trong đồ án được thiết lập và vận hành ra sao?
Quy trình CI/CD sử dụng nền tảng CircleCI kết nối trực tiếp với kho lưu trữ GitHub của dự án. Khi nhà phát triển cập nhật mã nguồn lên nhánh chính (main), CircleCI sẽ tự động nhận diện tệp cấu hình config.yml, khởi chạy môi trường biên dịch Java Maven để đóng gói dự án Spring Boot thành tệp thực thi, kiểm tra lỗi và hỗ trợ đẩy mã nguồn đã đóng gói lên máy chủ đám mây Microsoft Azure để tự động triển khai.
4. Bốn website đặt vé thực tế được khảo sát trong khóa luận là những hệ thống nào và đóng góp gì cho đề tài?
Bốn hệ thống được khảo sát gồm: CGV, BookMyShow, Galaxy Cinema và PVR Cinemas. Tác giả đã rút ra các bài học thiết kế cụ thể: CGV cung cấp kinh nghiệm về bố cục chọn rạp/ghế trực quan và xác thực bảo mật email; BookMyShow định hình tư duy tổ chức danh mục phim khoa học; Galaxy Cinema gợi ý mô hình tích hợp bình luận/blog điện ảnh và đặt vé nhanh tại trang chủ; PVR Cinemas mang lại ý tưởng về phối màu hiện đại và tính năng đa phương tiện (xem trailer trực tiếp).
5. Dữ liệu của hệ thống được lưu trữ và quản lý bởi những công cụ nào?
Hệ thống sử dụng hai cơ sở dữ liệu phục vụ cho hai mục đích riêng biệt:
- MySQL: Là hệ quản trị cơ sở dữ liệu quan hệ chính của Backend Spring Boot, dùng để lưu trữ toàn bộ dữ liệu nghiệp vụ bao gồm thông tin tài khoản, danh mục phim, phòng chiếu, chi nhánh rạp, vé xem phim, hóa đơn và các bài viết review.
- Apache Cassandra: Cơ sở dữ liệu NoSQL phân tán được tích hợp đi kèm với động cơ Cadence Workflow (thông qua Docker Compose) nhằm lưu trữ lịch sử thực thi, nhật ký phiên làm việc và trạng thái của các luồng giữ vé phân tán.
Kết luận
Khóa luận tốt nghiệp "Xây dựng website đặt vé xem phim online" của sinh viên Trương Minh Phương và Lê Quốc Vinh đã hoàn thành xuất sắc mục tiêu số hóa toàn diện quy trình mua bán vé xem phim trực tuyến và quản lý rạp chiếu. Đề tài thể hiện tính chuẩn mực cao trong quy trình kỹ thuật phần mềm thông qua việc khảo sát thực tế chuyên sâu, mô hình hóa dữ liệu chi tiết qua 27 ca sử dụng (Use case) và xây dựng hệ thống kiến trúc phân tầng vững chắc. Điểm sáng nổi bật của công trình là việc làm chủ và tích hợp các công nghệ hiện đại như Spring Boot, ReactJS/Redux, động cơ chịu lỗi phân tán Uber Cadence Workflow cùng quy trình tự động hóa CI/CD trên nền tảng điện toán đám mây Microsoft Azure. Công trình là tài liệu kỹ thuật có giá trị ứng dụng và tham khảo cao đối với sinh viên cũng như các kỹ sư phần mềm định hướng phát triển các hệ thống thương mại điện tử quy mô lớn.