Đặt vấn đề Việc xem phim đóng vai trò quan trọng trong đời sống của con người, mang lại những lợi ích đa dạng. Nó không chỉ là một hình thức giải trí và giảm stress hiệu quả mà còn tạo nguồn năng lượng tích cực và động lực. Xem phim cung cấp cơ hội học hỏi và mở rộng kiến thức, giúp người xem hiểu biết về văn hóa, lịch sử và nhiều lĩnh vực khác. Thông qua trải nghiệm xã hội, nó còn tạo ra những kỷ niệm đặc biệt và tăng cường kết nối xã hội.
Ngoài ra, xem phim thúc đẩy sự phát triển tư duy và trí tưởng tượng, giúp người xem thách thức bản thân và khám phá những ý tưởng mới. Nó cũng đóng vai trò trong việc thiết lập giá trị và triết lý cá nhân, đồng thời là một phương tiện giao tiếp nghệ thuật, mang lại trải nghiệm thị giác và sáng tạo. Việc có ứng dụng di động và trang web xem phim không chỉ mang lại sự thuận tiện và linh hoạt cao cho người xem mà còn cung cấp trải nghiệm người dùng tối ưu hóa. Giao diện hiện đại và thân thiện của các ứng dụng giúp tăng cường trải nghiệm người dùng, đi kèm với các chức năng tìm kiếm thông minh và khả năng tương tác với người xem.
Hiện nay theo thống kê từ movieguide.org [1], tổng số người xem phim trực tuyến trên thường xuyên lên tới hơn 70% dân số đều xem phim. Trong đó, theo kết quả nghiên cứu từ GMO-Z.com RUNSYSTEM [2] cho thấy có đến hơn 67% người tham gia khảo sát có sử dụng nền tảng xem phim có bản quyền, trong đó chiếm tỉ lệ nhiều nhất là Netflix với 41.9%, và thiết bị chủ yếu khảo sát viên sử dụng rơi vào Laptop và SmartPhone. Biểu đồ tỉ lệ người xem ở các nền tảng xem phim trực tuyến 1. Lý do chọn đề tài Xuất phát từ nhu cầu thực tế trong đời sống, việc xây dựng một phần mềm xem phim, cũng như xây dựng một hệ thống khuyến nghị sẽ giúp người dùng có thể tìm thấy những bộ phim mới, phù hợp với sở thích của họ.
Việc sử dụng hệ thống khuyến nghị có thể giúp cho người dùng tiết kiệm thời gian tìm kiếm, đồng thời cũng giúp tăng trải nghiệm xem phim cho người dùng. Để giải quyết vấn đề trên, nhóm em quyết định chọn đề tài Xây dựng app và web xem phim tích hợp hệ thống khuyến nghị nhằm phát triển một ứng dụng cung cấp một lựa chọn phù hợp với người sử dụng nhất giúp cải thiện trải nghiệm người dùng và tăng khả năng giữ chân khách hàng. Mục đích và phạm vi của đề tài 1. Mục đích - Xây dựng hệ thống quản lý các bộ phim.
- Lên danh sách và cập nhật các bộ phim, sắp xếp các bộ phim theo danh mục, diễn viên, đạo diễn. Từ đó người dùng có thể tìm kiếm phim hiệu quả. 14 - Xây dựng hệ thống gợi ý phim dựa thể loại phim đang coi của người dùng và cung cấp các bộ phim phù hợp nhất cho họ. Phạm vi đề tài Đề tài tập trung xây dựng ứng dụng hỗ trợ người dùng coi phim.
Đối với admin sẽ tương tác trực tiếp trên Database. Phạm vi môi trường Triển khai sản phẩm đề tài trên Mobile và phát triển sang cả môi trường Web. Phạm vi chức năng - Chức năng coi phim, tìm phim. - Thêm/Bỏ danh sách phim.
- Quản lý danh sách xem phim. - Chức năng xem thông tin phim. - Chức năng xem thông tin diễn viên và đạo diễn và những bộ phim liên quan. - Quản lý hồ sơ cá nhân người dùng.
- Thông báo về các bộ phim sắp ra mắt và các thông báo về tài khoản người dùng. - Đánh giá phim. - Hệ thống khuyến nghị phim theo bộ phim đang xem. - Chức năng tìm kiếm phim theo keyword.
Đối tượng Đồ án này tập trung nghiên cứu: - Các công nghệ: - Flutter. - Hệ thống khuyến nghị. - Mô hình hoạt động của ứng dụng xem phim. Phương pháp nghiên cứu - Tìm hiểu công nghệ: Dart, Flutter, Supabase - PostgreSQL, Microsoft Azure.
15 - Phân tích các giải pháp của các ứng dụng tương tự trên thị trường. - Thực hiện khảo sát nhu cầu, tình trạng thực tế của người dùng. - Phân tích và xác định yêu cầu. - Lên kế hoạch.
- Thiết kế: - Thiết kế cơ sở dữ liệu. - Thiết kế đối tượng. - Hoàn thiện sản phẩm. Công nghệ sử dụng - Nền tảng phát triển: Supabase - PostgreSQL.
- Ngôn ngữ: Dart. - Công cụ xây dựng ứng dụng: Visual Studio Code. Khảo sát hiện trạng 1. Khảo sát các phần mềm hiện nay Sau khi tìm hiểu các công nghệ và phần mềm tương tự có mặt tại Việt Nam, dưới đây là bảng so sánh của một số phần mềm tiêu biểu.
Bảng khảo sát các phần mềm hiện nay Chức năng Amazon Prime Netflix Bilibili Video Bắt buộc đăng nhập để sử dụng Có Có Không Cho phép đăng nhập từ bên thứ 3 Không Không Có Cho phép bình luận Không Không Có Cho phép Tải xuống Có Có Có (giới hạn 10 lượt/ngày) Đề xuất phim Không Có Không Lưu thông tin diễn viên Có Không Không Theo dõi thời lượng đã xem mỗi Có Có Không tập phim Đa dạng thể loại Có Có Không Có thể xem miễn phí Không Có Có Hầu hết các phần mềm đều quản lý số lượng lớn các bộ phim với đa dạng thể loại. Trong đó vấn đề bảo mật và mức độ linh hoạt cũng được coi trọng. Dưới đây là bảng phân tích chi tiết phần mềm xem phim được đánh giá khá cao, Netflix. Bảng phân tích các khía cạnh Netflix Khía Cạnh Phân Tích Netflix sử dụng một kiến trúc phân tán để đảm bảo mức độ linh hoạt và mở rộng.
Cơ sở dữ liệu phải xử lý hàng triệu dữ Kiến Trúc Hệ liệu về người dùng, lịch sử xem phim, và thông tin phim. Sự Thống mở rộng đồng thời và cân nhắc kỹ thuật là quan trọng để đảm bảo trải nghiệm người dùng liền mạch. Giao diện người dùng của Netflix được thiết kế để đáp ứng tốt trên nhiều thiết bị và kích thích việc tương tác. Kỹ sư phần Trải Nghiệm mềm phải liên tục tối ưu hóa trải nghiệm người dùng, đồng Người Dùng thời sử dụng thuật toán máy học để đề xuất nội dung cá nhân hóa dựa trên lịch sử xem phim và sở thích cá nhân của người dùng.
Hệ thống quản lý nội dung phải xử lý hàng nghìn, thậm chí hàng triệu tiêu đề phim, đồng thời quản lý các biến thể chất Quản Lý Nội lượng video và phụ đề. Công nghệ mã hóa và lưu trữ phải Dung được tối ưu hóa để đảm bảo tải nhanh và chất lượng video cao. Bảo mật là mối quan tâm hàng đầu với Netflix vì thông tin Bảo Mật và người dùng, đặc biệt là thông tin thanh toán, phải được bảo Quyền Riêng vệ chặt chẽ. Kỹ sư phần mềm cần triển khai các biện pháp Tư bảo mật như mã hóa mạnh mẽ, kiểm soát truy cập và giám sát hệ thống liên tục.
Việc tối ưu hóa hiệu suất là quan trọng để đảm bảo việc xem Tối Ưu Hóa phim mượt mà và không gặp gián đoạn. Kỹ sư phần mềm cần Hiệu Suất theo dõi hiệu suất hệ thống, tối ưu hóa mã nguồn và áp dụng các kỹ thuật caching để giảm thiểu thời gian tải. Những vấn đề còn tồn tại Mặc dù các ứng dụng và trang web xem phim đã phát triển rất nhanh chóng và mang lại nhiều lợi ích cho người dùng, nhưng vẫn còn một số vấn đề cần đối mặt. - Chất lượng Video và hiệu suất: Mặc dù nhiều dịch vụ cung cấp chất lượng video cao, nhưng tùy thuộc vào kết nối internet, người dùng có thể gặp vấn đề với độ giữ kết nối và chất lượng hình ảnh.
- Tương thích và Đa nền tảng: - Tính tương thích giữa các thiết bị và hệ điều hành khác nhau có thể là một thách thức, đặc biệt là khi cập nhật hệ điều hành mới. - Tích hợp không đồng đều giữa các ứng dụng di động và trang web cũng có thể làm giảm trải nghiệm người dùng. - Chất lượng Nội dung và Sự đa dạng: Mặc dù có nhiều nội dung khổng lồ, nhưng chất lượng và sự đa dạng của nội dung vẫn là một vấn đề, đặc biệt là đối với các thể loại phim và chương trình không phổ biến. Vấn đề đề tài tập trung Để giải quyết một số vấn đề còn tồn đọng cũng như duy trì những thế mạnh của nền công nghiệp xem phim hiện nay, nhóm tập trung nghiên cứu: - Vấn đề hiệu suất: đảm bảo việc xem phim được diễn ra một cách mượt mà, duy trì kết nối ổn định, đem lại trải nghiệm có thể làm hài lòng người dùng.
- Tính tương thích phần mềm: Xây dựng phần mềm có thể hoạt động trên nhiều nền tảng nhất có thể và tăng tính trải nghiệm người dùng. - Cải thiện chất lượng xem phim: Có thể xây dựng hệ thống khuyến nghị các bộ phim tương tự dựa trên thể loại phim của người dùng đang xem, góp phần làm người dùng hứng thú hơn khi sử dụn0g phần mềm. NGHIÊN CỨU THỰC NGHIỆM – LÝ THUYẾT 2. Tổng quan về Flutter 2.
Giới thiệu Flutter [3] là một khung nguồn mở do Google phát triển và hỗ trợ. Các nhà phát triển frontend và fullstack sử dụng Flutter để xây dựng giao diện người dùng (UI) của ứng dụng cho nhiều nền tảng chỉ với một nền mã duy nhất. Tại thời điểm ra mắt vào năm 2018, Flutter chủ yếu hỗ trợ phát triển ứng dụng di động. Hiện nay, Flutter hỗ trợ phát triển ứng dụng trên sáu nền tảng: iOS, Android, web, Windows, MacOS và Linux.
Giới thiệu Flutter Flutter sử dụng Ngôn ngữ Dart. Dart là ngôn ngữ thuần OOP, nó được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động. Sự hình thành và phát triển của Flutter có thể giải quyết cho vấn đề thường gặp ở trên di động là Fast Development – phát triển nhanh và Native Performance – hiệu suất gốc. Sử dụng Flutter hoàn toàn không mất phí và dùng với mã nguồn mở.
Flutter thường bao gồm 2 thành phần chính quan trọng như sau: 20 - Một SDK (Software Development Kit): Đây là một bộ sưu tập bao gồm các công cụ có thể hỗ trợ cho người dùng có thể phát triển được các ứng dụng nền của mình. Những điều này thường bao gồm các công cụ có trình để biên dịch mã thành các mã gốc dành riêng cho hệ điều hành iOS và Android. - Một Framework (UI Library based on widgets): Mỗi một tập hợp những thành phần giao diện của người dùng đều có thể thực hiện tái sử dụng vô cùng dễ dàng nên người sử dụng có thể cá nhân hóa tùy theo nhu cầu riêng của bản thân mình.