Hướng dẫn xây dựng website gợi ý phim sử dụng MERN Stack, Python và .NET

Khám phá cách xây dựng website gợi ý phim sử dụng MERN Stack, Python và .NET. Hướng dẫn chi tiết từ thiết kế đến triển khai, phù hợp cho dự án cá nhân hoặc chuyên nghiệp.

Chuyên ngành

Công nghệ Thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2022

145
1
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN

1.1. CÁC VẤN ĐỀ NGHIÊN CỨU

1.2. CÁC VẤN ĐỀ PHÁT SINH

1.3. CÁC PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ

1.4. ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU VÀ PHƯƠNG PHÁP NGHIÊN CỨU

1.5. KẾT QUẢ ĐẠT ĐƯỢC

1.6. CHƯA ĐẠT ĐƯỢC

2. CHƯƠNG 2: KHẢO SÁT THỰC TRẠNG VÀ XÁC ĐỊNH YÊU CẦU

2.1. TÍNH CẤP THIẾT VÀ MỤC TIÊU CỦA ĐỀ TÀI

2.2. KHẢO SÁT THỰC TRẠNG

3. CHƯƠNG 3: CƠ SỞ LÝ THUYẾT

3.1. TỔNG QUAN VỀ MERN

3.2. TỔNG QUAN VỀ MONGODB

3.3. TỔNG QUAN VỀ EXPRESSJS

3.4. TỔNG QUAN VỀ REACTJS

3.5. TỔNG QUAN VỀ NODEJS

3.6. THUẬT TOÁN DỰ ĐOÁN PHIM LIÊN QUAN

3.7. THUẬT TOÁN DỰ ĐOÁN PHIM CHO NGƯỜI DÙNG

4. CHƯƠNG 4: NGUYÊN LÝ HOẠT ĐỘNG

4.1. NGUYÊN LÝ HOẠT ĐỘNG

5. CHƯƠNG 5: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

5.1. THIẾT KẾ CHỨC NĂNG

5.1.1. Thiết kế Usecase tổng quát

5.1.2. Thiết kế chức năng Đăng ký

5.1.3. Thiết kế chức năng Đăng nhập

5.1.4. Thiết kế chức năng Đăng xuất

5.1.5. Thiết kế chức năng Quên mật khẩu

5.1.6. Thiết kế chức năng Xem chi tiết phim

5.1.7. Thiết kế chức năng Xem phim

5.1.8. Thiết kế chức năng Xem trailer

5.1.9. Thiết kế chức năng Xem thông tin cá nhân

5.1.10. Thiết kế chức năng Xem hoạt động gần đây

5.1.11. Thiết kế chức năng Xem các phim đã xem

5.1.12. Thiết kế chức năng Xem các phim đã bình luận

5.1.13. Thiết kế chức năng Bình luận

5.1.14. Thiết kế chức năng Tìm kiếm

5.1.15. Thiết kế chức năng Nâng cấp gói cước xem phim

5.1.16. Thiết kế chức năng Quản lý người dùng

5.1.17. Thiết kế chức năng Thêm người dùng mới

5.1.18. Thiết kế chức năng Xóa người dùng

5.1.19. Thiết kế chức năng Quản lý phim

5.1.20. Thiết kế chức năng Thêm phim mới

5.1.21. Thiết kế chức năng Xóa phim

5.1.22. Thiết kế chức năng Xem báo cáo

5.2. THIẾT KẾ CƠ SỞ DỮ LIỆU

5.3. THIẾT KẾ GIAO DIỆN

5.3.1. Quên mật khẩu

5.3.2. Trang chi tiết phim

5.3.3. Trang thông tin cá nhân

5.3.4. Trang hoạt động gần đây

5.3.5. Trang nâng cấp gói cước

6. CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ ỨNG DỤNG

6.1. DANH SÁCH API

7. CHƯƠNG 7: KẾT LUẬN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Xây dựng website gợi ý phim

Đồ án tập trung vào xây dựng website gợi ý phim, kết hợp các công nghệ hiện đại như MERN Stack, Python, và .NET. Mục tiêu chính là tạo ra một nền tảng trực tuyến giúp người dùng dễ dàng tìm kiếm và xem phim dựa trên sở thích cá nhân. Hệ thống gợi ý được phát triển nhằm cá nhân hóa trải nghiệm người dùng, sử dụng các thuật toán machine learning để dự đoán phim phù hợp. Đồ án cũng đề cập đến việc tích hợp API để kết nối giữa các thành phần của hệ thống, đảm bảo tính linh hoạt và dễ mở rộng.

1.1. Công nghệ sử dụng

Công nghệ chính được sử dụng trong đồ án là MERN Stack, bao gồm MongoDB, Express.js, React.js, và Node.js. MongoDB được chọn làm cơ sở dữ liệu chính nhờ khả năng lưu trữ linh hoạt và hiệu suất cao. Express.jsNode.js đảm nhiệm phần backend, xử lý các yêu cầu từ người dùng. React.js được sử dụng để phát triển frontend, tạo giao diện thân thiện và dễ sử dụng. Ngoài ra, Python được dùng để phát triển các thuật toán machine learning cho hệ thống gợi ý, trong khi .NET hỗ trợ xử lý các tác vụ phức tạp hơn.

1.2. Hệ thống gợi ý phim

Hệ thống gợi ý phim là trọng tâm của đồ án, sử dụng các thuật toán machine learning để phân tích dữ liệu người dùng và đưa ra đề xuất phù hợp. Dữ liệu phim được thu thập và xử lý để tạo ra các mô hình dự đoán. Python được sử dụng để triển khai các thuật toán này, đảm bảo độ chính xác và hiệu quả. Hệ thống cũng tích hợp API để kết nối giữa các thành phần, giúp quá trình gợi ý diễn ra nhanh chóng và liền mạch.

II. Phát triển web với MERN Stack

MERN Stack là công nghệ chính được sử dụng trong đồ án, bao gồm MongoDB, Express.js, React.js, và Node.js. MongoDB được chọn làm cơ sở dữ liệu chính nhờ khả năng lưu trữ linh hoạt và hiệu suất cao. Express.jsNode.js đảm nhiệm phần backend, xử lý các yêu cầu từ người dùng. React.js được sử dụng để phát triển frontend, tạo giao diện thân thiện và dễ sử dụng. Đồ án cũng đề cập đến việc tích hợp API để kết nối giữa các thành phần của hệ thống, đảm bảo tính linh hoạt và dễ mở rộng.

2.1. Backend với Node.js và Express.js

Phần backend của hệ thống được phát triển bằng Node.jsExpress.js, đảm bảo xử lý nhanh chóng các yêu cầu từ người dùng. Express.js được sử dụng để tạo các API, giúp kết nối giữa frontendbackend. Node.js cung cấp môi trường thực thi hiệu quả, đảm bảo hệ thống hoạt động ổn định ngay cả khi có nhiều người dùng truy cập cùng lúc.

2.2. Frontend với React.js

React.js được sử dụng để phát triển frontend, tạo giao diện thân thiện và dễ sử dụng. React.js cho phép xây dựng các thành phần giao diện một cách linh hoạt, giúp người dùng dễ dàng tương tác với hệ thống. Đồ án cũng tích hợp các thư viện hỗ trợ để tối ưu hóa hiệu suất và trải nghiệm người dùng.

III. Ứng dụng Python và

Python.NET được sử dụng để phát triển các tính năng nâng cao trong hệ thống. Python được dùng để triển khai các thuật toán machine learning cho hệ thống gợi ý phim, đảm bảo độ chính xác và hiệu quả. .NET hỗ trợ xử lý các tác vụ phức tạp hơn, giúp hệ thống hoạt động ổn định và linh hoạt. Đồ án cũng đề cập đến việc tích hợp API để kết nối giữa các thành phần của hệ thống, đảm bảo tính linh hoạt và dễ mở rộng.

3.1. Machine learning với Python

Python được sử dụng để triển khai các thuật toán machine learning cho hệ thống gợi ý phim. Các thuật toán này phân tích dữ liệu phim và hành vi người dùng để đưa ra đề xuất phù hợp. Python cung cấp các thư viện mạnh mẽ như scikit-learnTensorFlow, giúp quá trình phát triển và triển khai thuật toán diễn ra nhanh chóng và hiệu quả.

3.2. Xử lý tác vụ phức tạp với .NET

.NET được sử dụng để xử lý các tác vụ phức tạp trong hệ thống, đảm bảo hiệu suất và độ ổn định. .NET cung cấp môi trường phát triển mạnh mẽ, giúp tích hợp các tính năng nâng cao vào hệ thống một cách dễ dàng. Đồ án cũng đề cập đến việc sử dụng .NET để phát triển các API phức tạp, giúp kết nối giữa các thành phần của hệ thống.

21/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN 1. CÁC VẤN ĐỀ NGHIÊN CỨU - Tìm hiểu về các hệ thống tương tự, phân tích để tìm ra điểm mạnh và phù hợp để áp dụng cho đề tài. - Tìm hiểu về ReactJS để thiết kế giao diện và xử lý sự kiện. - Tìm hiểu về NODEJS, ASP .NET Core để giải quyết vấn đề về API cho hệ thống dự đoán phim.

- Tìm hiểu về Recommendation System (Hệ thống gợi ý) để gợi ý một số bộ phim phù hợp với từng người dùng cụ thể là ML. CÁC VẤN ĐỀ PHÁT SINH - Đánh giá và bình luận không real-time với nhiều người dùng. - Bảo mật là một trong những yêu cầu quan trọng nhất cho website thực tế. - MongoDB không cho phép lưu hình ảnh nên phải chuyển ảnh sang binary nên tốn không gian lưu trữ cũng như là truy xuất chậm, làm thời gian tải trang lâu hơn bình thường.

CÁC PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ - Sử dụng thư viện Socket.io để real-time cho bình luận và đánh giá. - Băm mật khẩu và sử dụng JWT để set cookies để cải thiện yêu cầu bảo mật cho trang web. - Sử dụng Cloudinary để lưu hình ảnh. ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU VÀ PHƯƠNG PHÁP NGHIÊN CỨU 4.

Đối tượng nghiên cứu Đồ án được thực hiện dự trên hai đối trượng trọng tâm là giữa công nghệ với kiến thức thực tế về quản lý và xây dựng trang web đề xuất, xem phim cho người dùng. Trong đó đối tượng công nghệ bao gồm sử dụng ASP.NET Core và NodeJS để viết API, RESTful APIs, ReactJS cho giao diện và xử lý sự kiện, ML.NET để dự doán phim cho từng người dùng. Ngoài ra, còn có các cơ sở dữ liệu như MongoDB, Cloudinary và các dịch vụ để triển khai và vận hành trang web trực tuyến như heroku. 1 Kến thức thực tế về quản lý và xây dựng trang web đề xuất, xem phim cho người dùng bao gồm quy trình xử lý cho người dùng xử dụng web và người quản lý web, thống kê và phân tích số liệu.

Phạm vi nghiên cứu Phạm vi nghiên cứu được đặt ra ở mức độ tổng hợp là tìm và hiểu được kiến thức chung về các nội dung nghiên cứu và vận dụng được những kiến thức đó cho các vấn đề của đề tài. KẾT QUẢ ĐẠT ĐƯỢC - Hệ thống dự đoán và xem phim bao gồm: hệ thống trang web cho phía người dùng cuối (user) và hệ thống trang web cho phía người quản lý (admin). - Giao diện dễ sử dụng, thân thiện với người dùng. - Tính cá nhân hóa cho user thông qua việc gợi ý các bộ phim có thể phù hợp.

- Dễ dàng quản lý, sửa chữa và mở rộng. CHƯA ĐẠT ĐƯỢC - Tăng tổng số lượt xem khi đã xem một khoảng thời gian nhất định cho từng bộ phim. - Hệ thống dự đoán chưa có độ chính xác cao do thiếu số liệu và số liệu không có độ tin cậy cao. 2 CHƯƠNG 2: KHẢO SÁT THỰC TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 2.

KHẢO SÁT NHU CẦU XEM PHIM HIỆN NAY Trong thời buổi nhu cầu giải trí cao ở hiện tại. Việc cung cấp một nơi để người dùng có thế thư giãn xem phim đó là cực kì tuyệt vời. Chính vì lẽ đó, ở Việt Nam chúng ta đã có rất nhiều hệ thống xem phim đáp ứng được nhu cầu đó và đã rất thành công. Có thể kế đến một số trang web thịnh hành hiện nay như là: POPS, ZingTV, FPT Play, Galaxy Play, … Nhu cầu và yêu cầu của khán giả luôn thay đổi.

Có thể là từng ngày, hoặc có thế là từng tháng. Chính vì vậy việc thu hút người dùng luôn là ưu tiên hàng đầu của các website xem phim trực tuyến. Họ luôn cho ra mắt những sản phẩm phim, nội dung phim hấp dẫn để thu hút người dùng. Cộng với thời buổi khó khăn về việc đi lại trong dịch Covid.

Thị trường phim online luôn là một miếng bánh béo bỡ của mọi nhà đầu tư. Chúng ta thấy được sự thay đổi hình thức xem phim của người dùng. Nhất là khi sự phát triền của các hệ thống website xem phim đang lớn mạnh như hiện nay. Các nền tảng xem phim được sử dụng nhiều nhất[1]: - Netflix (41,99%): là ứng dụng xem phim hàng đầu trên thế giới với hầu hết tất cả bộ phim, hình ảnh và chất lượng đều được ở mức cao nhất.

- FPT Play (24,27%): FPT Play là ứng dụng xem video, xem tivi trực tuyến rất phổ biến trên điện thoại, máy tính và nay là cả trên tivi.56%): VieON là ứng dụng giải trí hàng đầu của người Việt và cho người Việt, cung cấp bởi Dzones Network trực thuộc công ty Đất Việt VAC.Với kho giải trí khổng lồ có bản quyền cùng sự kết hợp với K+.27%): ZING TV (tv.vn ) là kênh truyền hình trực tuyến theo yêu cầu, với kho nội dung phong phú quy tụ các chương trình truyền hình, hài kịch, phim ảnh, các chương trình giáo dục, thể thao. CÁC TRANG WEB XEM PHIM KHẢO SÁT 3 Trong thời buổi nhu cầu giải trí cao ở hiện tại. Việc cung cấp một nơi để người dùng có thế thư giãn xem phim đó là cực kì tuyệt vời. Chính vì lẽ đó, ở Việt Nam chúng ta đã có rất nhiều hệ thống xem phim đáp ứng được nhu cầu đó và đã rất thành công.

Có thể kế đến một số trang web thịnh hành hiện nay như là: POPS, ZingTV, FPT Play, Galaxy Play, … Ngoài các yếu tố về mặt nội dung, thì hình thức trình bày của một website cũng mang tính chất quan trọng. Việc người dùng truy cập vào một website xem phim với bố cục đẹp, hình ảnh sống động, dễ thao tác cũng góp phần khiến người đó nhớ tới website và truy cập nó thường xuyên hơn. Chính vì vậy việc thiết kế website làm sao cho thu hút người dùng cũng là điều đáng để lưu ý và chú trọng. Website ZingTV Đây là website cung cấp dịch vụ video theo yêu cầu đã được ưu chuộng trong thời gian trước và ngày nay.

Zing TV đáp ứng được hầu hết các người dùng, cung cấp cho chúng ta các chương trình YV show hấp dẫn hoặc các series phim truyền hình dài tập. Bên cạnh đó Zing Tv còn cung cấp các chương trình giáo dục bổ ích dành cho thiếu nhi và các bộ phim điện ảnh dành cho gia đình. Tất cả nội dung trên đều được chọn lọc và đảm bảo về chất lượng. Trang chủ website Zing TV Ưu điểm: 4 - Thiết kế giao diện đẹp, dễ nhìn và thân thiện người dùng.

- Tối ưu việc trải nghiệm cho người dùng. Các thao tác trên website rất dễ dàng, hỗ trợ việc xem trên điện thoại bằng ứng dụng. - Tốc độ truyền tải tốt, tạo cảm giác thoải mái cho người xem. Cho hình ảnh chất lượng cao tránh trường hợp chất lượng kém và thường xuyên đứt đoạn gây ức chế người dùng.

- Phim truyền hình đa dạng, cập nhật nhanh, phụ đề chuẩn. Nhược điểm: - Chưa có tính năng xem tivi online. - Vẫn còn tồn tại số ít video chất lượng chưa cao. - Kho phim chỉ có phim bộ, không có phim lẻ.

Website FPT Play FPT Play là một website xem phim trực tuyến và phổ biến hiện nay. Đã phát triển mạnh mẽ thành ứng dụng cho các thiết bị di động, máy tính bảng và cả tivi thông minh… Đây là hệ thống website do tập đoàn FPT Telecom nghiên cứu và sản xuất. Cung cấp cho người dùng các chương trình truyền hình, phim ảnh, bóng đá, game show… với chất lượng hình ảnh cực kì sắt nét, âm thanh sống động. Bên cạnh đó FPT Play còn cung cấp hệ thống kênh truyền hình ngay trong nước và nước ngoài với các nội dung hấp dẫn và các gói cước đáng mời gọi.

Trang chủ website FPT Play Ưu điểm: - Kho nội dung giải trí phong phú, được sắp xếp theo từng thể loại: Phim truyện, thể thao, thiếu nhi, ca nhạc, hài kịch, sân khấu, thư giãn…Trong đó, kho phim có lẽ là điểm mạnh nhất trong kho nội dung của FPT Play HD. - Tốc độ truyền tải cao giúp trải nghiệm người dùng cực cao. - Có hỗ trợ xem các kênh truyền hình trực tuyến. - Nhiều gói cước tham khảo.

- Có hỗ trợ trên nền tảng di động, máy tính bảng, … - Giao diện hiển thị cực kì bắt mắt, thu hút người dùng. Nhược điểm: - Gói cước không quá rẻ cho người dùng. - Chất lượng phụ thuộc vào đường truyền. - Bắt buộc phải đăng nhập để xem một số chương trình.

Website NetFlix Netflix là dịch vụ xem video trực tuyến của Mỹ, các nội dung chủ yếu trên đó là phim và các chương trình truyền hình, rất phổ biến ở Mỹ và nhiều nước khác trên thế giới. 6 Chính vì thế nó mang đến đa dạng các loại chương trình truyền hình, phim, phim tài liệu đoạt giải thưởng và nhiều nội dung khác trên hàng nghìn thiết bị có kết nối Internet. Giống như một số website hiện nay ở Việt Nam Netflix cung cấp một kho video cực kỳ khổng lồ với chất lượng cao và có cả những bộ phim có bản quyền. Thậm chí hỗ trợ mạnh ở nền tảng điện thoại, máy tính bảng và tivi.

Chính vì thế người dùng chỉ cần có kết nối internet và tài khoản của Netflix là có thể trải nghiệm nội dụng trên đó dễ dàng. Trang chủ website FPT Play Ưu điểm: - Hỗ trợ xem phim lên tới 4k, điều mà rất ít hệ thống xem phim hiện nay có thể đáp ứng được. - Khả năng gợi ý phim rất tốt. Dễ dàng chọn lọc và gợi ý các phim, chương trình liên quan cho người dùng.

- Luôn cập nhật phim và chương trình nhanh nhất có thể. - Giao diện hình ảnh đẹp va thuận tiện thao tác cho người dùng. - Lưu thông tin phim và thời lương phim cho người xem sau khi dừng. - Chọn lọc và phân loại phim dành cho trẻ em, trẻ vị thành niên.

- Các nội dung phim đều được chọn lọc kỹ càng. Nhược điểm: 7 - Tốn phí duy trì tài khoản xem phim. Mức giá vẫn khá cao so với mặt bằng chung nên đối tượng sử dụng chưa nhiều. - Quá trình thanh toán quá rờm rà.

Nếu muốn sử dụng dịch vụ của Netflix thì phải có tài khoản thanh toán quốc tế gây khó khăn cho người dùng vì không phải ai cũng có tài khoản thanh toán quốc tế để đăng ký. - Kho phim vẫn chủ yếu xoay quanh Mỹ và ít các phim Hồng Kong, Thái Lan như các website hiện nay ở Việt Nam đang cung cấp. TỔNG KẾT KHẢO SÁT Bảng 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Xây dựng website gợi ý phim với MERN Stack, Python và .NET" cung cấp một cái nhìn tổng quan về cách phát triển một nền tảng gợi ý phim sử dụng các công nghệ hiện đại như MERN Stack (MongoDB, Express.js, React.js, Node.js), Python và .NET. Bài viết không chỉ hướng dẫn chi tiết từng bước trong quá trình xây dựng website mà còn nhấn mạnh những lợi ích của việc sử dụng các công nghệ này, như khả năng mở rộng, hiệu suất cao và tính linh hoạt trong phát triển.

Để mở rộng kiến thức của bạn về các công nghệ web khác, bạn có thể tham khảo tài liệu Xây dựng website mạng xã hội sử dụng django và reactjs, nơi bạn sẽ tìm thấy cách kết hợp Django và React.js để tạo ra một nền tảng mạng xã hội. Ngoài ra, tài liệu Build a selling course website using reactjs and springboot sẽ giúp bạn hiểu rõ hơn về việc xây dựng một website bán khóa học, sử dụng React.js và Spring Boot. Cuối cùng, bạn có thể khám phá tài liệu Xây dựng website kinh doanh thời trang sử dụng reactjs và spring boot để nắm bắt cách phát triển một nền tảng thương mại điện tử hiệu quả.

Những tài liệu này không chỉ giúp bạn mở rộng kiến thức mà còn cung cấp những góc nhìn đa dạng về việc phát triển website trong các lĩnh vực khác nhau.