Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh chuyển đổi số và sự thay đổi hành vi tiêu dùng sau đại dịch Covid-19, phương thức tiếp cận các sản phẩm giải trí điện ảnh và truyền hình của công chúng đã có sự chuyển dịch rõ nét từ hình thức truyền thống sang các nền tảng trực tuyến. Người dùng ngày càng có xu hướng sử dụng các thiết bị thông minh kết nối Internet để theo dõi các nội dung video theo yêu cầu, tạo tiền đề cho sự phát triển của các dịch vụ xem phim trực tuyến như YouTube, Vimeo, Netflix hay Dailymotion. Nhằm đáp ứng nhu cầu thưởng thức phim ảnh chất lượng với chi phí hợp lý trên đa dạng nền tảng thiết bị, nhóm tác giả thuộc Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội đã thực hiện đề tài xây dựng "Hệ Thống Website Xem Phim Trực Tuyến WatchFlick" trong khuôn khổ môn học Công nghệ phần mềm (Mã lớp: INT2208E 22, Giảng viên hướng dẫn: Tô Văn Khánh).

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định gồm các nội dung chính sau:

  1. Khảo sát, thu thập và phân tích đặc tả yêu cầu chức năng cũng như phi chức năng của một hệ thống website xem phim trực tuyến hoàn chỉnh.
  2. Xây dựng tài liệu thiết kế hệ thống phần mềm dựa trên chuẩn mô hình hóa UML, bao gồm biểu đồ ca sử dụng (Use Case), biểu đồ hoạt động (Activity Diagram), biểu đồ tương tác/tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram).
  3. Thiết kế mô hình cơ sở dữ liệu và phân tách kiến trúc phần mềm thành các thành phần: View, Controller, Model và lớp biên tương tác cơ sở dữ liệu.
  4. Triển khai xây dựng sản phẩm phần mềm thực tế với đầy đủ chức năng dành cho hai nhóm tác nhân chính là Người dùng (User) và Người quản trị (Administrator), tích hợp cổng thanh toán trực tuyến và cơ chế xác thực bảo mật.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình phân tích, thiết kế, triển khai hệ thống quản trị và truyền phát nội dung video/phim ảnh trên nền tảng website.
  • Phạm vi hệ thống: Ứng dụng web truy cập qua trình duyệt trên các thiết bị máy tính cá nhân, điện thoại thông minh, máy tính bảng có kết nối mạng Internet; hỗ trợ hai ngôn ngữ mặc định (Tiếng Việt, Tiếng Anh) và có khả năng mở rộng.

Cơ sở lý thuyết và phương pháp tiếp cận

Đề tài áp dụng các nguyên lý tiêu chuẩn của kỹ nghệ phần mềm và phương pháp phân tích thiết kế hướng đối tượng (OOAD). Nhóm nghiên cứu tiến hành chuẩn hóa thuật ngữ và phân định ranh giới hệ thống thông qua bảng thuật ngữ kỹ thuật trước khi tiến hành mô hình hóa chi tiết:

Thuật ngữ Khái niệm và định nghĩa trong hệ thống WatchFlick
Người dùng (User) Tác nhân sử dụng hệ thống, có thể chưa có tài khoản hoặc đã đăng nhập tài khoản hợp lệ để khai thác tính năng.
Người quản trị (Administrator) Tác nhân quản trị hệ thống, chịu trách nhiệm cấu hình, quản lý người dùng, quản lý danh mục phim, thể loại, quốc gia, gói cước và sửa lỗi.
Cơ sở dữ liệu (Database) Hệ thống lưu trữ chia thành hai phân vùng dữ liệu chính: Cơ sở dữ liệu người dùng và Cơ sở dữ liệu phim.
Phim lẻ (Movie) Tác phẩm điện ảnh độc lập có thời lượng từ 90 phút trở lên, có cốt truyện phát triển trọn vẹn trong một tập.
Chương trình truyền hình (TV Series) Loạt chương trình gồm nhiều tập phát sóng định kỳ, được tổ chức theo cấu trúc Mùa (Seasons) và Tập phim (Episodes).
Subscription Plan Gói dịch vụ định kỳ gồm 3 hạng mức: Cơ bản (Basic), Tiêu chuẩn (Standard), và Cao cấp (Premium).
Cổng thanh toán trực tuyến Hệ thống con xử lý thanh toán và hóa đơn, tích hợp hai cổng thanh toán quốc tế là PayPal và Stripe.
CMS (Content Management System) Phân hệ hỗ trợ quản lý, cập nhật và xuất bản nội dung số trên website.

Phương pháp thực hiện của đồ án bao gồm:

  • Phương pháp mô hình hóa nghiệp vụ: Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để xây dựng hệ thống biểu đồ ca sử dụng, biểu đồ hoạt động, biểu đồ tuần tự nhằm mô tả chính xác luồng dữ liệu và tương tác giữa các tác nhân với hệ thống.
  • Phương pháp thiết kế kiến trúc phân lớp: Tổ chức mã nguồn và luồng điều khiển theo mô hình Model - View - Controller (MVC), kết hợp lớp biên truy xuất dữ liệu độc lập.
  • Nguồn dữ liệu: Dữ liệu thử nghiệm về siêu dữ liệu phim (tên phim, trailer URL, video stream URL, mô tả, đạo diễn, diễn viên, quốc gia, thể loại, năm phát hành, điểm đánh giá/rating) và thông tin tài khoản người dùng.

Thiết kế và triển khai hệ thống

Hệ thống WatchFlick được thiết kế hướng tới việc tối ưu hóa khả năng mở rộng, tính bảo trì và độ tin cậy. Kiến trúc tổng thể và các ràng buộc phi chức năng được quy định cụ thể:

Kiến trúc phân lớp phần mềm

  1. Thành phần giao diện (View): Chịu trách nhiệm hiển thị dữ liệu ra trình duyệt người dùng, bắt sự kiện tương tác từ giao diện máy tính hoặc thiết bị di động, gửi yêu cầu về Controller.
  2. Thành phần điều khiển (Controller): Tiếp nhận yêu cầu từ View, thực thi logic nghiệp vụ, điều phối xác thực người dùng, gọi các phương thức xử lý từ Model và trả kết quả về View.
  3. Thành phần nghiệp vụ & dữ liệu (Model): Đại diện cho các thực thể dữ liệu trong hệ thống (User, Movie, TV Series, Season, Episode, Genre, Country, Director, Actor, SubscriptionPlan, PaymentOrder).
  4. Lớp biên tương tác cơ sở dữ liệu (Database Boundary): Đảm nhiệm các câu lệnh truy vấn, thêm, sửa, xóa (CRUD), kết nối và bảo vệ giao dịch giữa ứng dụng với hai cơ sở dữ liệu: CSDL người dùng và CSDL phim.
[ Giao diện người dùng / View ]
[ Bộ điều khiển / Controller ]
[ Lớp nghiệp vụ / Model ]
[ Lớp biên CSDL / Database Boundary ]
[ CSDL Người dùng ] [ CSDL Phim ]

Các ràng buộc và yêu cầu phi chức năng

  • Tính khả dụng (Usability): Giao diện thân thiện, tương thích đa thiết bị (Responsive Design) cho máy tính cá nhân, máy tính bảng và điện thoại thông minh qua trình duyệt web.
  • Tính tin cậy (Reliability): Hệ thống có khả năng hoạt động liên tục 24/7, đáp ứng tải với tần suất truy cập lớn.
  • Tính bảo mật (Security): Cơ chế xác thực mã OTP 6 chữ số qua email khi đăng ký tài khoản hoặc lấy lại mật khẩu; mã hóa mật khẩu; ngăn chặn hành vi truy cập trái phép vào tài nguyên quản trị.
  • Tính hiệu quả (Efficiency): Đảm bảo tốc độ tải trang, luồng truyền phát video mượt mà, công cụ tìm kiếm dữ liệu chính xác và nhanh chóng.
  • Tính khả chuyển (Portability): Khả năng tương thích đa trình duyệt, chạy độc lập trên môi trường web và tích hợp các API thanh toán bên thứ ba (PayPal, Stripe).

Nội dung chính theo từng chương

Chương I: Đặc tả yêu cầu

Chương này tập trung xác định bài toán, bảng thuật ngữ, các yêu cầu bổ sung và đặc tả chi tiết 17 ca sử dụng (Use Case) chính cùng các luồng sự kiện (Luồng cơ bản, Luồng thay thế, Luồng ngoại lệ), điều kiện tiên quyết (Preconditions) và hậu điều kiện (Postconditions).

Nhóm tác nhân Danh mục ca sử dụng (Use Case) Mô tả tóm tắt luồng nghiệp vụ
Người dùng (User) Đăng ký tài khoản Nhập thông tin biểu mẫu; hệ thống xác thực và gửi mã kích hoạt 6 chữ số qua email để hoàn tất.
Đăng nhập tài khoản Xác minh thông tin đăng nhập; phân luồng giao diện Người dùng hoặc Người quản trị; hỗ trợ các nhánh mở rộng (extension points).
Lấy lại mật khẩu Nhập email đã đăng ký; hệ thống gửi mã xác nhận 6 số; cho phép thiết lập mật khẩu mới sau khi xác thực mã.
Quản lý hồ sơ Chỉnh sửa tên hiển thị và cập nhật tệp hình ảnh đại diện của hồ sơ người dùng.
Đổi mật khẩu & Xóa tài khoản Người dùng chủ động đổi mật khẩu qua xác thực mật khẩu cũ hoặc gửi yêu cầu xóa tài khoản vĩnh viễn kèm xác nhận mật khẩu.
Tìm kiếm phim (Search engine) Tìm kiếm theo từ khóa tên phim trong cơ sở dữ liệu và hiển thị danh sách kết quả phù hợp.
Thêm/Xóa phim khỏi danh sách (My List) Lưu trữ hoặc loại bỏ các bộ phim yêu thích vào danh sách cá nhân hóa của từng tài khoản.
Chọn ngôn ngữ Chuyển đổi ngôn ngữ hiển thị giao diện giữa Tiếng Việt và Tiếng Anh.
Đăng ký Subscription Plan & Thanh toán Lựa chọn một trong ba gói (Basic, Standard, Premium) và thực hiện thanh toán qua cổng PayPal hoặc Stripe.
Xem phim Truyền phát video phim lẻ hoặc các tập phim truyền hình trực tuyến qua trình duyệt.
Quản trị viên (Admin) Quản lý nội dung phim Thêm/Xóa phim lẻ (nhập URL trailer, URL phim, mô tả, năm, rating, đạo diễn, diễn viên, thể loại, quốc gia) hoặc phim truyền hình (quản lý Season, Episode).
Quản lý danh mục thành phần Thêm, sửa, xóa danh mục Thể loại, Quốc gia, Diễn viên, Đạo diễn.
Quản lý tài khoản & Phân quyền Thêm, sửa thông tin, phân quyền hoặc xóa tài khoản người dùng từ bảng điều khiển quản trị.
Quản lý cấu hình hệ thống Thêm, xóa, thay đổi ngôn ngữ hệ thống; điều chỉnh thông số và giá cước các gói dịch vụ (Subscription Plan).

Chương II: Thiết kế biểu đồ tương tác, biểu đồ lớp và cơ sở dữ liệu

Chương II chuyển hóa các yêu cầu chức năng thành các mô hình kỹ thuật chi tiết:

  • Thiết kế biểu đồ tương tác (Sequence Diagrams): Xây dựng biểu đồ tuần tự cho từng ca sử dụng nghiệp vụ nhằm xác định trình tự gửi nhận thông điệp giữa Actor, View, Controller, Model và Database Boundary.
  • Thiết kế biểu đồ lớp (Class Diagrams): Chi tiết hóa cấu trúc tĩnh cho từng chức năng (Đăng ký, Đăng nhập, Tìm kiếm, My List, Chọn ngôn ngữ, Đăng ký Subscription, Thêm/Xóa phim, Quản trị viên...).
  • Thiết kế thành phần hệ thống: Phân loại toàn bộ các lớp trong hệ thống thành 4 nhóm cụ thể:
    • Lớp View: Đại diện các trang giao diện (Giao diện đăng nhập, Giao diện xem phim, Giao diện quản trị, Giao diện tìm kiếm, Giao diện thanh toán...).
    • Lớp Controller: Tiếp nhận và xử lý sự kiện nghiệp vụ (AuthController, MovieController, PaymentController, AdminController...).
    • Lớp Model: Định nghĩa cấu trúc dữ liệu của các đối tượng trong ứng dụng.
    • Lớp biên tương tác Database: Các lớp quản lý kết nối và thực thi câu lệnh SQL/truy vấn xuống cơ sở dữ liệu.
  • Thiết kế cơ sở dữ liệu (Database Design): Mô hình hóa cấu trúc lưu trữ gồm các bảng quan hệ liên kết giữa Người dùng, Quyền hạn, Hồ sơ, Gói cước, Giao dịch thanh toán, Phim lẻ, Phim truyền hình, Mùa phim, Tập phim, Thể loại, Quốc gia, Đạo diễn, Diễn viên và Danh sách yêu thích (My List).

Chương III: Trình bày sản phẩm

Chương III minh họa giao diện và quy trình vận hành thực tế của hệ thống WatchFlick qua các kịch bản sử dụng:

  • Giao diện xác thực: Hệ thống phân quyền rõ ràng ngay sau khi đăng nhập: chuyển hướng tài khoản người dùng thông thường đến trang chủ xem phim và tài khoản quản trị đến trang quản trị (Admin Dashboard).
  • Phân hệ chức năng Người quản trị: Trình bày chi tiết giao diện thao tác thêm phim lẻ (nhập URL trailer, URL stream video), thêm phim truyền hình (thêm mùa, thêm tập kèm link phát), xóa phim khỏi CSDL; thêm/xóa/sửa quốc gia, thể loại, đạo diễn, diễn viên; quản lý hồ sơ người dùng; thêm/xóa ngôn ngữ và cập nhật thông số các gói dịch vụ (Basic, Standard, Premium).
  • Phân hệ chức năng Người dùng: Trình bày giao diện đăng ký tài khoản có xác thực email; giao diện trang chủ duyệt phim theo danh mục; công cụ tìm kiếm phim; giao diện quản lý danh sách cá nhân (My List); quy trình mua gói dịch vụ và thanh toán qua cổng PayPal/Stripe; giao diện trình phát video xem phim trực tuyến.

Chương IV: Kết luận và phân chia công việc

Chương IV tổng kết quá trình thực hiện đồ án, đánh giá mức độ hoàn thành so với mục tiêu ban đầu, đính kèm danh mục tài liệu tham khảo, liên kết lưu trữ tài liệu (báo cáo Doc, PDF, Slide thuyết trình và Video Demo) cùng bảng phân chia khối lượng công việc giữa 5 thành viên của Nhóm 9 (Mai Ngọc Duy, Lương Đình Dũng, Nguyễn Đình Thành Đạt, Nguyễn Huy Dũng, Nguyễn Tiến Bắc).


Kết quả và đóng góp

Đồ án đã đạt được các kết quả kỹ thuật cụ thể theo nội dung báo cáo:

  • Hoàn thành hệ thống đặc tả phần mềm chuẩn hóa: Xây dựng đầy đủ tài liệu đặc tả 17 ca sử dụng chính, bao gồm luồng cơ bản, luồng ngoại lệ và các điểm mở rộng nghiệp vụ.
  • Thiết kế kiến trúc hướng đối tượng hoàn chỉnh: Xây dựng hệ thống biểu đồ tuần tự, biểu đồ lớp chi tiết theo mô hình phân lớp MVC kết hợp lớp biên cơ sở dữ liệu, đảm bảo tính tách biệt giữa logic nghiệp vụ, giao diện và tầng lưu trữ dữ liệu.
  • Triển khai ứng dụng website xem phim trực tuyến WatchFlick:
    • Xây dựng phân hệ người dùng hỗ trợ tìm kiếm, lọc phim, quản lý danh sách yêu thích (My List), hỗ trợ đa ngôn ngữ (Tiếng Việt, Tiếng Anh).
    • Tích hợp thành công quy trình thanh toán trực tuyến qua 2 cổng thanh toán quốc tế là PayPal và Stripe cho 3 gói cước dịch vụ (Basic, Standard, Premium).
    • Xây dựng cơ chế bảo mật xác thực tài khoản và khôi phục mật khẩu thông qua mã OTP 6 chữ số gửi qua email.
    • Xây dựng phân hệ quản trị (Admin) toàn diện cho phép quản lý nội dung đa dạng từ phim lẻ (Movie) đến phim truyền hình nhiều tập (TV Series với Seasons và Episodes), cùng các danh mục phân loại đi kèm.
  • Đóng góp của đồ án: Thể hiện việc áp dụng bài bản quy trình kỹ nghệ phần mềm từ khâu khảo sát, đặc tả yêu cầu, thiết kế kiến trúc đến hiện thực hóa một sản phẩm truyền thông đa phương tiện trực tuyến hoàn chỉnh.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi và nội dung được nhóm tác giả trình bày trong tài liệu:

  • Hạn chế:
    • Đề tài được thực hiện trong khuôn khổ bài tập lớn môn học nên bị giới hạn nhất định về thời gian và phạm vi triển khai thử nghiệm thực tế trên môi trường phân tán quy mô lớn.
    • Số lượng ngôn ngữ hỗ trợ mặc định hiện tại mới dừng ở Tiếng Việt và Tiếng Anh (dù hệ thống đã thiết kế sẵn kiến trúc cho phép Admin thêm ngôn ngữ mới).
  • Hướng phát triển:
    • Tiếp tục hoàn thiện và tối ưu hóa hiệu năng truyền tải luồng video (streaming bitrate) đối với các kết nối mạng có băng thông thấp.
    • Mở rộng thêm các cổng thanh toán nội địa và tích hợp thêm các thuật toán gợi ý phim cá nhân hóa dựa trên lịch sử xem của người dùng.

Giá trị tham khảo

Tài liệu đồ án mang lại giá trị tham khảo thiết thực cho sinh viên các ngành Công nghệ thông tin, Kỹ thuật phần mềm và Hệ thống thông tin:

  • Tài liệu tham khảo mẫu về quy trình phân tích thiết kế: Cung cấp bộ tài liệu hoàn chỉnh về đặc tả ca sử dụng (Use Case Specifications), mô tả chi tiết luồng sự kiện cơ bản và luồng ngoại lệ.
  • Mẫu thiết kế biểu đồ UML chuẩn mực: Sinh viên có thể tham khảo cách ánh xạ từ biểu đồ Use Case sang biểu đồ hoạt động, biểu đồ tuần tự (Sequence Diagram) và biểu đồ lớp (Class Diagram) theo kiến trúc MVC.
  • Mô hình quản lý dữ liệu Video/VOD: Cung cấp cấu trúc phân rã thực thể phù hợp cho các bài toán phát trực tuyến nội dung số, phân biệt rõ ràng giữa phim lẻ độc lập và phim truyền hình nhiều mùa/tập.

Câu hỏi thường gặp

1. Hệ thống WatchFlick hỗ trợ những gói dịch vụ (Subscription Plan) nào và thanh toán qua đâu?

Hệ thống cung cấp 3 gói dịch vụ trực tuyến gồm: Gói cơ bản (Basic), Gói tiêu chuẩn (Standard) và Gói cao cấp (Premium). Quá trình thanh toán phí dịch vụ được thực hiện tự động thông qua hai cổng thanh toán trực tuyến được tích hợp là PayPal và Stripe.

2. Quy trình xác thực khi đăng ký tài khoản và lấy lại mật khẩu diễn ra như thế nào?

Khi người dùng đăng ký tài khoản mới hoặc yêu cầu lấy lại mật khẩu khi quên, hệ thống sẽ kiểm tra tính hợp lệ của thông tin và gửi một mã xác nhận gồm 6 chữ số đến địa chỉ email đã đăng ký. Người dùng phải nhập đúng mã 6 chữ số này vào hệ thống để kích hoạt tài khoản hoặc truy cập biểu mẫu thiết lập lại mật khẩu mới.

3. Dữ liệu phim trong hệ thống WatchFlick được phân loại và quản lý theo cấu trúc nào?

Dữ liệu phim được chia thành hai loại chính:

  • Phim lẻ (Movie): Phim có thời lượng từ 90 phút trở lên, có cốt truyện độc lập, quản lý theo URL Trailer, URL Phim, Đạo diễn, Diễn viên, Quốc gia, Thể loại, Năm phát hành và Rating.
  • Chương trình truyền hình (TV Series): Phim bộ gồm nhiều tập phát sóng, được tổ chức phân cấp theo từng Mùa (Seasons) và từng Tập phim (Episodes) với URL video riêng cho từng tập.

4. Kiến trúc lớp của hệ thống WatchFlick được tổ chức thành những thành phần nào?

Hệ thống được thiết kế theo mô hình 4 thành phần chính:

  • Lớp View: Các giao diện tương tác phía người dùng và quản trị viên.
  • Lớp Controller: Xử lý và điều phối logic nghiệp vụ từ các yêu cầu của View.
  • Lớp Model: Biểu diễn các thực thể dữ liệu nghiệp vụ của hệ thống.
  • Lớp biên tương tác Database: Thực hiện các tác vụ truy vấn và thao tác trực tiếp với hai cơ sở dữ liệu (CSDL người dùng và CSDL phim).

5. Người quản trị (Administrator) có những quyền hạn gì trên hệ thống WatchFlick?

Quản trị viên có toàn quyền quản lý hệ thống, bao gồm: thêm/xóa phim lẻ và phim truyền hình (quản lý seasons, episodes); thêm/xóa/sửa danh mục Quốc gia, Thể loại, Đạo diễn, Diễn viên; thêm, xóa, chỉnh sửa tài khoản và phân quyền người dùng; cấu hình thay đổi ngôn ngữ hệ thống; và điều chỉnh các gói dịch vụ (Subscription Plan).


Kết luận

Đồ án môn học Công nghệ phần mềm "Hệ Thống Website Xem Phim Trực Tuyến WatchFlick" của nhóm sinh viên Trường Đại học Công nghệ – ĐHQGHN đã hoàn thành việc nghiên cứu, đặc tả yêu cầu, thiết kế kiến trúc và triển khai một nền tảng xem phim trực tuyến hoàn chỉnh. Đề tài xây dựng đầy đủ các mô hình UML từ Use Case, Sequence Diagram đến Class Diagram theo cấu trúc MVC, đồng thời tích hợp các cơ chế bảo mật mã OTP 6 số và cổng thanh toán PayPal/Stripe. Đây là tài liệu tham khảo có giá trị cao về mặt phương pháp luận và kỹ thuật thiết kế phần mềm ứng dụng trong lĩnh vực truyền thông số.