I. Giới thiệu về đồ án tốt nghiệp website xem phim trực tuyến
Đồ án tốt nghiệp website xem phim trực tuyến là một dự án học tập toàn diện tại Trường Đại học Sư phạm Kỹ thuật TP.HCM, được thực hiện bởi các sinh viên ngành Công nghệ Thông tin. Đề tài này tập trung vào xây dựng nền tảng streaming phim hiện đại, kết hợp công nghệ ReactJS cho frontend và Java Core cho backend. Mục tiêu chính là tạo ra một website xem phim trực tuyến hoàn chỉnh với các tính năng quản lý phim, bình luận tương tác và trải nghiệm người dùng mượt mà. Thời gian thực hiện kéo dài 15 tuần, từ tháng 3 đến tháng 7 năm 2020, với sự hướng dẫn của giảng viên chuyên môn. Dự án này đạt được các kết quả thiết thực trong việc ứng dụng các công nghệ web hiện đại vào thực tế.
1.1. Tính cấp thiết và mục tiêu của đề tài
Nhu cầu xem phim trực tuyến ngày càng tăng cao, tạo ra cơ hội phát triển website streaming phim. Mục tiêu của đồ án này là thiết kế một nền tảng đáp ứng nhu cầu người dùng hiện đại với giao diện thân thiện, tốc độ tải nhanh và tính năng tìm kiếm hiệu quả. Dự án cũng nhằm giúp sinh viên nắm vững React.js, Java Spring Framework và các công nghệ backend-frontend tiên tiến, từ đó chuẩn bị kỹ năng cho công việc thực tế.
1.2. Phạm vi và đối tượng nghiên cứu
Đề tài bao quát thiết kế, phát triển và kiểm thử website xem phim. Đối tượng sử dụng bao gồm Guest (khách), Member (thành viên đăng ký) và Admin (quản trị viên). Mỗi nhóm người dùng có quyền hạn khác nhau trong hệ thống, từ xem phim miễn phí đến quản lý nội dung phim toàn bộ. Phạm vi nghiên cứu tập trung vào công nghệ JavaScript, React.js, Redux-saga, Java, Spring Framework, MySQL và RESTful API.
II. Công nghệ và kiến trúc hệ thống
Công nghệ sử dụng trong đồ án website xem phim trực tuyến bao gồm một bộ stack hiện đại. Phía frontend sử dụng ReactJS - thư viện JavaScript mạnh mẽ cho xây dựng giao diện động, Redux-saga để quản lý trạng thái ứng dụng, và JSON Web Token (JWT) để xác thực người dùng. Phía backend được xây dựng trên Java Core với Spring Framework - nền tảng phổ biến trong phát triển ứng dụng enterprise, Spring Security cho bảo mật, Spring JPA để truy vấn cơ sở dữ liệu, và RESTful API CRUD để giao tiếp client-server. Cơ sở dữ liệu MySQL được sử dụng để lưu trữ thông tin phim, người dùng, bình luận và metadata hệ thống. Kiến trúc này đảm bảo tính mở rộng, bảo mật cao và hiệu năng tối ưu.
2.1. Frontend ReactJS và Redux saga
ReactJS là thư viện JavaScript cho xây dựng giao diện người dùng tương tác. Redux-saga quản lý các side effects phức tạp như gọi API, xác thực JWT. Kết hợp này cho phép website xem phim có giao diện mượt mà, responsive design thích ứng mọi thiết bị. Các component React được thiết kế tái sử dụng, giúp code dễ bảo trì, nâng cấp.
2.2. Backend Java Spring Framework
Java Spring Framework cung cấp nền tảng mạnh cho xây dựng API backend của website xem phim. Spring Security bảo vệ ứng dụng chống các cuộc tấn công. Spring JPA tương tác với MySQL, hỗ trợ CRUD operations hiệu quả. RESTful API chuẩn hoá cách frontend và backend giao tiếp, dễ mở rộng chức năng, tích hợp hệ thống bên ngoài.
2.3. Cơ sở dữ liệu MySQL
MySQL lưu trữ tất cả dữ liệu của hệ thống website xem phim trực tuyến: danh mục phim, thông tin người dùng, bình luận, lịch sử xem. Thiết kế CSDL chuẩn hóa, với các bảng phim, users, comments, ratings tối ưu hiệu năng truy vấn.
III. Thiết kế giao diện và chức năng chính
Giao diện website xem phim trực tuyến được thiết kế theo nguyên tắc UX/UI hiện đại, phân chia rõ ràng cho ba loại người dùng: Guest, Member, Admin. Các màn hình Guest cho phép khách lướt xem danh sách phim, tìm kiếm, xem trailer mà không cần đăng nhập. Màn hình Member cung cấp tính năng đăng ký/đăng nhập, bình luận phim, yêu thích, lịch sử xem phim. Màn hình Admin cho phép quản lý phim (thêm, sửa, xóa), duyệt bình luận, quản lý người dùng, xem thống kê. Các chức năng chính bao gồm tìm kiếm phim nâng cao theo thể loại, năm phát hành, đạo diễn; xem phim trực tuyến với chất lượng khác nhau; bình luận tương tác; hệ thống đánh giá sao; danh sách yêu thích cá nhân. Giao diện sử dụng bộ màu hợp lý, font chữ rõ, bố cục cân đối tạo trải nghiệm người dùng mượt mà.
3.1. Chức năng dành cho Guest Khách
Người dùng Guest có thể xem danh sách phim, tìm kiếm theo tên, thể loại, xem thông tin chi tiết phim như synopsis, cast, IMDb rating. Có thể xem trailer video, đọc bình luận của thành viên khác. Để xem phim trọn bộ, Guest cần đăng ký thành Member. Chức năng này không yêu cầu xác thực, cho phép khám phá nội dung tự do.
3.2. Chức năng dành cho Member Thành viên
Member được phép xem phim trực tuyến sau khi đăng nhập tài khoản. Có thể bình luận, đánh giá phim, theo dõi danh sách yêu thích cá nhân, lưu lịch sử xem. Hệ thống cho phép resume watch - tiếp tục xem từ vị trí dừng trước đó. Profile Member hiển thị thông tin cá nhân, danh sách phim đã xem, bình luận đã viết, giúp quản lý hoạt động cá nhân.
3.3. Chức năng dành cho Admin Quản trị viên
Admin kiểm soát toàn bộ nội dung: thêm, chỉnh sửa, xóa phim, quản lý thể loại, diễn viên, đạo diễn. Có thể duyệt, xóa bình luận vi phạm, quản lý tài khoản Member, xem thống kê lượng xem, tổng số người dùng hoạt động. Dashboard Admin cung cấp các biểu đồ, báo cáo giúp theo dõi hoạt động hệ thống.
IV. Quá trình phát triển và kiểm thử
Quá trình phát triển website xem phim trực tuyến kéo dài 15 tuần với kế hoạch rõ ràng từng giai đoạn. Tuần 1-2: khảo sát hiện trạng các website xem phim phổ biến (Phimmoi, Bilutv, Zing TV, Netflix, Motphim), xác định công nghệ cần dùng. Tuần 2-3: tìm hiểu React.js, Java Core, thiết kế Use Case Diagram. Tuần 4-6: mô hình hóa yêu cầu, thiết kế cơ sở dữ liệu MySQL, sơ đồ lớp UML. Tuần 7-14: lập trình giao diện và backend, xây dựng REST API, implement Spring Security, JWT authentication. Tuần 15: kiểm thử phần mềm toàn diện bao gồm unit test, integration test, kiểm thử user acceptance, phát hiện và sửa chữa lỗi. Quy trình kiểm thử bao gồm thiết kế test cases, chạy bộ kiểm thử tự động và thủ công, đảm bảo website hoạt động ổn định trước khi bàn giao.
4.1. Giai đoạn phân tích và thiết kế
Khảo sát hiện trạng các website xem phim hàng đầu giúp xác định các tiêu chí thiết kế tốt: giao diện trực quan, tốc độ tải nhanh, tính năng tìm kiếm mạnh, hệ thống bình luận. Từ đó lập Use Case Diagram mô tả các tương tác giữa người dùng và hệ thống. Thiết kế CSDL định nghĩa các bảng, quan hệ dữ liệu, đảm bảo tính toàn vẹn, hiệu năng truy vấn tối ưu.
4.2. Giai đoạn lập trình và triển khai
Sinh viên lập trình React component cho giao diện, viết Java Spring API cho backend, kết nối MySQL. Sử dụng JWT token xác thực người dùng bảo mật. Triển khai CRUD operations cho phim, bình luận, người dùng. Code được commit lên Git repository, theo dõi phiên bản, hỗ trợ hợp tác nhóm.
4.3. Giai đoạn kiểm thử và hoàn thiện
Kiểm thử phần mềm bao gồm unit test từng function, integration test các module liên quan, test API endpoint. Kiểm thử chức năng đảm bảo đăng nhập, xem phim, bình luận hoạt động đúng. Kiểm thử hiệu năng kiểm tra tốc độ tải, khả năng chịu tải. Sửa chữa lỗi, tối ưu code, chuẩn bị bàn giao sản phẩm.