Bối cảnh và vấn đề nghiên cứu
Sự bùng nổ của mạng Internet và công nghệ số đã thúc đẩy mạnh mẽ nhu cầu tiếp cận thông tin giải trí của công chúng, đặc biệt là trong lĩnh vực điện ảnh chiếu rạp. Tại Việt Nam, sự phát triển nhanh chóng của các cụm rạp chiếu phim mang đến nhiều lựa chọn giải trí nhưng cũng làm phát sinh nhiều bất cập trong trải nghiệm của khán giả. Thực tế phản ánh trên các diễn đàn mạng xã hội cho thấy người xem thường gặp phải các vấn đề như: thiếu minh bạch về giá vé và chi phí dịch vụ, không nắm bắt kịp thời các chương trình ưu đãi, gặp khó khăn trong việc định vị địa điểm rạp chiếu, cũng như thiếu nguồn thông tin tổng hợp đáng tin cậy về nội dung phim, lịch chiếu và tình trạng công chiếu tại từng cụm rạp. Về phía các đơn vị kinh doanh rạp và nhà phát hành, nhu cầu tiếp cận khách hàng tiềm năng và giới thiệu các tác phẩm điện ảnh mới một cách tập trung cũng trở nên cấp thiết.
Nhằm giải quyết các bất cập nêu trên, đề tài "Xây dựng quản lý Website review phim bằng công nghệ React + Node JS" do sinh viên Trần Thị Phương Lan thực hiện (ngành Công nghệ Thông tin, Trường Đại học Công nghệ Đông Á, 2022) tập trung vào việc nghiên cứu và phát triển một hệ thống thông tin trực tuyến tích hợp dữ liệu về phim và rạp chiếu phim trên phạm vi toàn quốc.
Mục tiêu nghiên cứu của đề tài được xác định gồm 3 nhiệm vụ cụ thể:
- Tìm hiểu về rạp chiếu phim và những công nghệ liên quan đến lập trình web.
- Xây dựng website với những chức năng phù hợp với đề tài.
- Tạo ra sản phẩm đáp ứng được nhu cầu sử dụng với giao diện thân thiện, hỗ trợ đa nền tảng.
Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Hệ thống thông tin giới thiệu phim mới của rạp chiếu phim; quy trình, phương pháp phát triển website và các công nghệ lập trình web hiện đại.
- Phạm vi nghiên cứu:
- Về giải pháp: Xây dựng hệ thống thông tin giới thiệu và quản lý phim chiếu rạp trên nền tảng web.
- Về công nghệ: Nghiên cứu chuyên sâu thư viện ReactJS cho tầng giao diện (Front-end), môi trường thực thi NodeJS cho tầng xử lý máy chủ (Back-end) và hệ quản trị cơ sở dữ liệu phi quan hệ MongoDB.
- Về kiến trúc: Nghiên cứu mô hình Web Services và phương thức tích hợp Web API vào hệ thống.
Cơ sở lý thuyết và phương pháp
Đồ án xây dựng nền tảng dựa trên các khái niệm lý thuyết về điện ảnh, hệ thống thông tin và kiến trúc phần mềm hướng dịch vụ:
- Khái niệm và phân loại trong điện ảnh: Phim ảnh được tiếp cận dưới góc độ sản phẩm truyền thông và kinh tế nghệ thuật với các vị trí nhân sự chính (Nhà sản xuất, Đạo diễn, Biên kịch, Diễn viên, Kỹ thuật viên). Hệ thống phân loại độ tuổi khán giả theo tiêu chuẩn quốc tế gồm: Nhãn G (mọi đối tượng), Nhãn PG (cần phụ huynh hướng dẫn), Nhãn PG-13 (khuyến cáo không dành cho trẻ dưới 13 tuổi), Nhãn R (dưới 17 tuổi cần người lớn đi cùng) và Nhãn NC-17 (không dành cho người vị thành niên). Tác giả phân định rõ hai trạng thái chiếu rạp: Phim sắp chiếu (ngày công chiếu lớn hơn ngày hiện tại, quảng bá qua poster và trailer) và Phim đang chiếu (ngày công chiếu nhỏ hơn hoặc bằng ngày hiện tại).
- Lý thuyết Hệ thống thông tin (HTTT): Cấu trúc hệ thống gồm 3 thành phần (Input - Handle - Output) dựa trên sự phối hợp giữa con người, quy trình và dữ liệu. Đồ án áp dụng 5 tiêu chuẩn đánh giá chất lượng HTTT gồm: Độ tin cậy, Tính đầy đủ, Tính thích hợp và dễ hiểu, Tính được bảo vệ, và Tính kịp thời.
- Kiến trúc Web Services và Web API: Mô hình phân tách 3 lớp Front-end (HTML, CSS, JavaScript) – Back-end – Cơ sở dữ liệu. Web Services sử dụng các giao thức và định dạng mở như XML, HTTP, SOAP, UDDI, WSDL để giao tiếp độc lập nền tảng. Web API hỗ trợ đầy đủ các phương thức chuẩn RESTful (GET, POST, PUT, DELETE), cho phép cập nhật dữ liệu thời gian thực và tái sử dụng logic xử lý cho nhiều nền tảng client khác nhau.
- Công nghệ triển khai:
- ReactJS: Thư viện JavaScript của Facebook/Instagram, sử dụng cú pháp JSX, cơ chế đóng gói React Components, luồng dữ liệu Props và quản lý trạng thái State nội bộ để render giao diện động.
- NodeJS: Môi trường thực thi JavaScript phía máy chủ chạy trên Chrome V8 engine, hỗ trợ đa nền tảng (OS X, Windows, Linux).
- MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (document-oriented), lưu trữ dữ liệu dạng Document JSON trong các Collection. Hệ thống tận dụng ưu điểm schema linh hoạt, không ràng buộc khóa ngoại phức tạp, cơ chế đánh chỉ mục tự động trường
_id, bộ nhớ đệm RAM và khả năng mở rộng ngang (Horizontal Scalability) theo cụm (Cluster).
Phương pháp nghiên cứu và triển khai thực tế:
- Phương pháp khảo sát, phân tích và tổng hợp chức năng từ các hệ thống thông tin và trang web giới thiệu phim hiện có.
- Phương pháp phân tích và thiết kế hệ thống hướng đối tượng bằng ngôn ngữ mô hình hóa thống nhất UML (Sơ đồ Use Case và Biểu đồ hoạt động - Activity Diagrams).
- Phương pháp lập trình và kiểm thử phần mềm trên môi trường thực tế.
Nguồn dữ liệu khảo sát và tham chiếu:
- Số liệu thống kê từ Công ty TNHH CJ CGV Việt Nam, Báo Quân đội nhân dân và các báo cáo ngành điện ảnh giai đoạn 2009–2020.
- Dữ liệu đánh giá và phản hồi phim trích xuất tham chiếu từ hai nền tảng đánh giá quốc tế: imdb.com và rottentomatoes.com.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo mô hình kiến trúc phân tách rõ ràng giữa giao diện người dùng và dịch vụ phía máy chủ:
[ Người dùng cuối (EU) ] <---> [ Front-end: ReactJS ]
| (HTTP Request / Response via Web API)
v
[ Back-end: NodeJS ] <---> [ Database: MongoDB ]
Kiến trúc chức năng và phân quyền Use Case
Hệ thống xác định 2 tác nhân chính tham gia tương tác: Người dùng (User) và Quản trị viên (Admin), bao gồm 9 nhóm chức năng cụ thể:
| Mã Use Case |
Tên chức năng |
Tác nhân thực hiện |
Mô tả nghiệp vụ |
| UC #001 |
Xem danh sách phim |
Người dùng |
Lọc và hiển thị phim theo thể loại, trạng thái (hot, mới, đang chiếu, sắp chiếu) và kết quả tìm kiếm |
| UC #002 |
Xem thông tin về phim |
Người dùng |
Hiển thị chi tiết nội dung, diễn viên, thời lượng, trailer, điểm IMDb/Rotten Tomatoes, rạp đang/sắp chiếu |
| UC #003 |
Xem thông tin về rạp |
Người dùng |
Tra cứu thông tin cụm rạp, bảng giá vé, dịch vụ liên quan, trụ sở và danh sách rạp cơ sở |
| UC #004 |
Tìm kiếm phim |
Người dùng |
Tìm kiếm thông tin phim theo từ khóa tên phim |
| UC #005 |
Đăng nhập |
Quản trị viên |
Xác thực tài khoản quản trị (tên đăng nhập và mật khẩu) để truy cập giao diện quản lý |
| UC #006 |
Quản lý phim |
Quản trị viên |
Thao tác Thêm, Sửa, Xóa và cập nhật thông tin chi tiết phim vào cơ sở dữ liệu |
| UC #007 |
Quản lý rạp |
Quản trị viên |
Thêm, sửa, xóa thông tin đơn vị rạp và cấu trúc danh sách rạp cơ sở trực thuộc |
| UC #008 |
Xử lý trạng thái phim |
Quản trị viên |
Gán/xóa trạng thái phim Hot, phim Mới; xử lý trạng thái Phim đang chiếu, Phim sắp chiếu |
| UC #009 |
Quản lý diễn viên |
Quản trị viên |
Thêm, sửa, xóa thông tin hồ sơ diễn viên phục vụ liên kết dữ liệu phim |
Quy trình nghiệp vụ và xử lý logic
- Logic phân loại trạng thái chiếu: Hệ thống tự động so sánh trường
Ngày công chiếu của phim với ngày hiện tại của máy chủ. Nếu ngày công chiếu lớn hơn ngày hiện tại, phim tự động được xếp vào danh mục Phim sắp chiếu. Nếu ngày công chiếu nhỏ hơn hoặc bằng ngày hiện tại, phim được chuyển sang danh mục Phim đang chiếu. Quản trị viên có quyền can thiệp để xóa phim khỏi danh sách đang chiếu khi phim ngừng chiếu.
- Logic quản lý trạng thái nổi bật: Quản trị viên chủ động chọn phim từ danh sách tất cả các phim để thêm hoặc xóa trạng thái Phim hot (dựa trên tiêu chí lượt xem và điểm đánh giá cao) hoặc Phim mới (phim mới ra mắt tại rạp).
- Quản lý rạp đa cấp: Phân tách rõ ràng giữa thông tin đơn vị rạp chính (tên rạp, giới thiệu, bảng giá dịch vụ, liên hệ trụ sở) và các điểm rạp cơ sở (tên cụm rạp chi nhánh, địa chỉ cụ thể).
Nội dung chính theo từng chương
Chương I: Cơ sở lý thuyết
Chương này thiết lập nền tảng lý luận và kỹ thuật cho toàn bộ đề tài:
- Trình bày tổng quan về điện ảnh, cấu trúc tổ chức làm phim và hệ thống phân loại nhãn khán giả (G, PG, PG-13, R, NC-17).
- Đánh giá thực trạng thị trường rạp chiếu phim Việt Nam qua các giai đoạn: dấu mốc Sắc lệnh 147/SL (15/3/1953) thành lập Doanh nghiệp Quốc doanh Chiếu bóng và Chụp ảnh Việt Nam; bước tăng trưởng từ 87 phòng chiếu (302 tỷ đồng) năm 2009 lên 1.063 phòng chiếu tại 204 cụm rạp (176 triệu USD) năm 2019; biến động do dịch Covid-19 năm 2020 khi doanh thu giảm xuống 1.660 tỷ đồng nhưng doanh thu phim nội địa đạt 710 tỷ đồng (chiếm tỷ trọng 42,5%).
- Tổng hợp kiến thức về hệ thống thông tin, quy trình xử lý dữ liệu thành thông tin, 5 tiêu chuẩn chất lượng của hệ thống.
- Phân tích chi tiết các công nghệ nền tảng: Mô hình Web Services (XML, HTTP, SOAP, UDDI, WSDL), Web API RESTful, thư viện Front-end ReactJS (Component, Props, State, JSX), môi trường Back-end NodeJS, và hệ quản trị cơ sở dữ liệu NoSQL MongoDB kèm phân tích ưu nhược điểm kỹ thuật (ưu điểm truy vấn nhanh, mở rộng cụm, lưu trữ JSON; nhược điểm lặp key tốn bộ nhớ, không hỗ trợ join, và độ trễ ghi dữ liệu 60 giây từ RAM xuống đĩa cứng).
Chương II: Xây dựng hệ thống
Chương này tập trung vào khảo sát thực tế, phân tích yêu cầu và thiết kế chi tiết hệ thống:
- Trình bày số liệu khảo sát thị trường điện ảnh Việt Nam: năm 2018 đạt 901 phòng chiếu, doanh thu 3.252 tỷ đồng (143,3 triệu USD), 47,2 triệu lượt khán giả, giá vé trung bình 68,9 nghìn đồng/vé; dự báo năm 2019 đạt 4.100 tỷ đồng (178,3 triệu USD) và 57,5 triệu khán giả. Thị phần rạp tính đến tháng 2/2019 dẫn đầu bởi CJ CGV (75 rạp), Lotte Cinema (42 rạp), Galaxy Cinema (14 rạp) và BHD (9 rạp).
- Phân tích số liệu khảo sát người dùng: Internet là kênh tìm kiếm thông tin chiếm tỷ lệ cao nhất (83.x%), theo sau là bạn bè (64,0%) và banner/poster (44.x%). Về quyết định chọn rạp, giá vé là yếu tố quan trọng nhất (81%), tiếp theo là chất lượng màn hình và âm thanh (65.x%).
- Đặc tả yêu cầu dữ liệu cho phim (tên, đạo diễn, biên kịch, nhà sản xuất, thời lượng, ngày công chiếu, thể loại, điểm IMDb/Rotten Tomatoes, giới hạn tuổi, quốc gia, trailer, diễn viên, nội dung) và dữ liệu cho rạp chiếu (tên rạp, bảng giá vé, giới thiệu, liên hệ, danh sách rạp cơ sở).
- Xây dựng sơ đồ phân hệ website cho Người dùng (Trang chủ, Trang về rạp, Trang phim chi tiết, Trang danh sách phim) và Quản trị viên (Tất cả phim, Danh mục phim trạng thái, Danh mục rạp, Danh mục diễn viên).
- Mô hình hóa chi tiết 9 nhóm Use Case và xây dựng 21 biểu đồ hoạt động (Activity Diagrams) mô tả luồng xử lý dữ liệu cho từng chức năng.
- Quy định cấu trúc lập trình Front-end (ReactJS) và Back-end (NodeJS) kết nối CSDL MongoDB.
Chương III: Kết quả đạt được
Chương này tổng kết kết quả hiện thực hóa sản phẩm phần mềm:
- Phân hệ giao diện Người dùng: Hoàn thiện giao diện Trang chủ (hiển thị menu điều hướng, slide, banner, liên hệ, khối phim hot và phim mới), Trang thông tin chi tiết phim (tích hợp video trailer, điểm đánh giá, danh sách rạp đang/sắp chiếu), Trang thông tin rạp chiếu (bảng giá vé, dịch vụ và danh sách cụm rạp cơ sở), Trang danh sách phim theo thể loại/trạng thái và công cụ tìm kiếm phim theo tên.
- Phân hệ giao diện Quản trị viên: Hoàn thiện hệ thống quản lý tập trung cho phép đăng nhập bảo mật, quản lý toàn bộ danh sách phim (thêm mới, cập nhật, xóa, tìm kiếm), quản lý trạng thái phim (hot, mới, đang chiếu, sắp chiếu), quản lý danh mục đơn vị rạp cùng hệ thống rạp cơ sở, và quản lý danh sách diễn viên.
Kết quả và đóng góp
Số liệu khảo sát và kết quả phân tích trong đồ án
Đồ án đã tổng hợp và lượng hóa các chỉ số quan trọng về thị trường rạp chiếu phim và hành vi người dùng tại Việt Nam:
| Chỉ tiêu thống kê |
Dữ liệu ghi nhận trong đồ án |
| Số lượng rạp chiếu phim cả nước |
Hơn 220 rạp (120 rạp hoạt động thường xuyên, 100 rạp đủ chất lượng) |
| Tỷ lệ phục vụ dân số của rạp |
1 rạp / 450.000 dân tại Việt Nam (so với 1 rạp / 5.000 dân tại Mỹ) |
| Tốc độ tăng trưởng doanh thu rạp |
20% - 30% mỗi năm |
| Kênh tìm kiếm thông tin rạp phổ biến |
Internet (83.x%), Bạn bè (64,0%), Banner/poster (44.x%) |
| Yếu tố quyết định lựa chọn rạp |
Giá vé (81%), Chất lượng màn hình và âm thanh (65.x%) |
| Doanh thu phòng vé Việt Nam (2018) |
3.252 tỷ đồng (~143,3 triệu USD), 47,2 triệu lượt khách, 275 phim |
| Quy mô cụm rạp các hãng (tháng 2/2019) |
CGV: 75 rạp; Lotte Cinema: 42 rạp; Galaxy: 14 rạp; BHD: 9 rạp |
Giải pháp và đóng góp của đề tài
- Về mặt giải pháp công nghệ: Ứng dụng thành công mô hình Single Page Application với ReactJS kết hợp RESTful Web API xây dựng bằng NodeJS, giúp tối ưu hóa hiệu năng tải trang và trải nghiệm người dùng (UX/UI). Việc sử dụng cơ sở dữ liệu MongoDB giúp cấu trúc dữ liệu phim và rạp có tính linh hoạt cao, dễ dàng mở rộng thuộc tính.
- Về mặt ứng dụng thực tiễn: Hệ thống giải quyết bài toán phân mảnh thông tin bằng cách tổng hợp dữ liệu của nhiều đơn vị rạp trên toàn quốc về một đầu mối duy nhất; cung cấp đầy đủ thông tin về giá vé, chương trình khuyến mãi, địa điểm rạp cơ sở và đánh giá chất lượng phim (IMDb, Rotten Tomatoes); đồng thời mở ra kênh liên hệ quảng cáo trực tuyến cho các đơn vị kinh doanh rạp và phát hành phim.
- Về mặt học thuật và phương pháp: Đồ án cung cấp một tài liệu mô hình hóa hệ thống thông tin hoàn chỉnh từ khâu khảo sát thực tế, phân tích yêu cầu nghiệp vụ, thiết kế biểu đồ Use Case, xây dựng 21 biểu đồ hoạt động UML chi tiết đến hiện thực hóa mã nguồn Fullstack.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Hệ thống dừng lại ở phạm vi cung cấp thông tin, giới thiệu phim, đánh giá và định vị rạp chiếu; chưa tích hợp module đặt vé trực tuyến và cổng thanh toán điện tử.
- Về mặt cơ sở dữ liệu, theo phân tích của tác giả, MongoDB tiềm ẩn rủi ro dư thừa dữ liệu do không hỗ trợ phép nối (join) và cơ chế ghi dữ liệu từ RAM xuống đĩa cứng có độ trễ 60 giây, có thể gây thất thoát dữ liệu tạm thời nếu xảy ra sự cố nguồn điện đột ngột.
- Hướng nghiên cứu tiếp:
- Nghiên cứu tích hợp hệ thống Web API hiện có với các ứng dụng di động (Mobile App) trên nền tảng Android và iOS.
- Hoàn thiện và tích hợp thêm các dịch vụ mở rộng như đặt vé xem phim trực tuyến, tích điểm thành viên và gợi ý phim thông minh.
Giá trị tham khảo
Đồ án là tài liệu tham khảo phù hợp cho:
- Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm, Hệ thống thông tin: Tham khảo quy trình phân tích thiết kế hệ thống hướng đối tượng bằng UML (đặc biệt là phương pháp xây dựng sơ đồ Use Case và biểu đồ hoạt động chi tiết cho hệ thống web quản lý).
- Lập trình viên phát triển ứng dụng web: Tham khảo cách kết hợp bộ công nghệ ReactJS – NodeJS – MongoDB, phương pháp xây dựng và cấu trúc Web API RESTful phục vụ truyền nhận dữ liệu thời gian thực.
- Người nghiên cứu thị trường điện ảnh: Tham khảo các số liệu tổng hợp về thị trường rạp chiếu phim, thị phần các cụm rạp lớn và hành vi tiếp cận thông tin rạp chiếu của khán giả tại Việt Nam giai đoạn 2009–2020.
Câu hỏi thường gặp
1. Hệ thống phân loại trạng thái phim "sắp chiếu" và "đang chiếu" theo cơ chế nào?
Hệ thống xử lý tự động dựa trên ngày công chiếu của phim: khi quản trị viên nhập thông tin phim, hệ thống so sánh ngày công chiếu với ngày hiện tại. Nếu ngày công chiếu lớn hơn ngày hiện tại, phim được xếp vào danh mục "Phim sắp chiếu"; nếu ngày công chiếu nhỏ hơn hoặc bằng ngày hiện tại, phim thuộc danh mục "Phim đang chiếu". Quản trị viên có thể thao tác xóa trạng thái khi phim đã ngừng chiếu.
2. Điểm đánh giá phim trên hệ thống được tham chiếu từ các nguồn nào?
Theo đặc tả khảo sát hệ thống trong đồ án, điểm đánh giá của mỗi bộ phim được lấy từ hai website đánh giá điện ảnh quốc tế uy tín là imdb.com và rottentomatoes.com để hiển thị trên trang chi tiết phim cho người dùng tham khảo.
3. Khảo sát trong đồ án chỉ ra yếu tố nào quyết định nhiều nhất đến việc chọn rạp của khán giả?
Kết quả khảo sát trong đồ án ghi nhận: "Giá vé" là yếu tố quyết định hàng đầu với gần 81% (81/100 người) quan tâm khi chọn rạp xem phim. Yếu tố quan trọng tiếp theo là chất lượng phòng chiếu gồm "màn hình rộng sắc nét" và "âm thanh chuẩn" với tỷ lệ quan tâm đạt 65.x%.
4. Tác giả đã chỉ ra những ưu và nhược điểm kỹ thuật nào của cơ sở dữ liệu MongoDB?
- Ưu điểm: Lưu trữ dưới dạng Document JSON linh hoạt, không cần kiểm tra ràng buộc toàn vẹn khi thêm/sửa/xóa giúp tốc độ truy vấn nhanh hơn RDBMS; dễ mở rộng theo chiều ngang (cluster); trường
_id tự động đánh index; dữ liệu truy vấn được cache trên RAM.
- Nhược điểm: Tốn bộ nhớ do lặp lại các key trong collection; không hỗ trợ phép join dẫn đến dễ dư thừa dữ liệu; cơ chế ghi dữ liệu từ RAM xuống ổ cứng định kỳ sau mỗi 60 giây gây nguy cơ mất dữ liệu khi mất điện đột ngột.
5. Hệ thống hỗ trợ quản trị danh mục rạp chiếu phim theo cấu trúc nào?
Hệ thống tổ chức dữ liệu rạp theo hai cấp: Đơn vị rạp chính (quản lý tên hãng rạp, thông tin giới thiệu chung, bảng giá vé, bảng giá dịch vụ, thông tin liên hệ trụ sở) và Danh sách rạp cơ sở (quản lý thêm, sửa, xóa các điểm rạp chi nhánh cụ thể kèm địa chỉ chi tiết trực thuộc đơn vị rạp đó).
Kết luận
Đồ án tốt nghiệp "Xây dựng quản lý Website review phim bằng công nghệ React + Node JS" của sinh viên Trần Thị Phương Lan đã giải quyết trọn vẹn bài toán xây dựng hệ thống thông tin tổng hợp cho ngành điện ảnh chiếu rạp tại Việt Nam. Bằng việc kết hợp kiến trúc Web API RESTful cùng bộ công nghệ ReactJS, NodeJS và MongoDB, tác giả đã hiện thực hóa thành công hai phân hệ chức năng cho người dùng tra cứu và quản trị viên vận hành dữ liệu. Công trình thể hiện quy trình phân tích thiết kế phần mềm bài bản và cung cấp tài liệu tham khảo có giá trị ứng dụng cao cho sinh viên khối ngành kỹ thuật phần mềm.