Yêu cầu bài toán Bài toán xem phim đặt ra một số yêu cầu quan trọng để đáp ứng nhu cầu và mong đợi của người dùng.. 1.3 Quản lí danh mục phim Cho phép thêm,sửa,xóa các danh 2.1 Trang đăn
Trang 1TRƯỜNG ĐẠI HỌC VINHVIỆN KỸ THUẬT VÀ CÔNG NGHỆ
ĐỒ ÁN HỌC PHẦN PHÁT TRIỂN ỨNG DỤNG WEB
THIẾT KẾ VÀ XÂY DỰNG WEBSITE
XEM PHIMNHÓM: 11
GVHD: TS Cao Thanh Sơn
Nhóm sinh
viên:
Hoàng Đăng Hải, 215748020110001
Nguyễn Cảnh Đức, 215748020110202
Trang 2Nghệ An, 12/2023
MỤC LỤC
GIỚI THIỆU ĐỀ TÀI 2
CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN BÀI TOÁN XEM PHIM .3
1.1 Bài toán xem phim 3
1.2 Yêu cầu bài toán 3
1.3 Một số website phim liên quan 5
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG XEM PHIM 9
2.1 Phân tích hệ thống xem phim 9
2.2 Thiết kế hệ thống xem phim 20
CHƯƠNG 3 ỨNG DỤNG ASP.NET CORE MVC XÂY DỰNG WEBSITE XEM PHIM 24
3.1 Tổng quan về ASP.NET CORE MVC 24
3.2 Công cụ và công nghệ sử dụng 27
3.3 Xây dựng giao diện người dùng 29
3.4 Xây dựng giao diện quản trị viên 33
KẾT LUẬN 35
4.1 Kết quả đạt được 35
4.2 Hướng phát triển 35
TÀI LIỆU THAM KHẢO 36
Trang 3GIỚI THIỆU ĐỀ TÀIXem phim trực tuyến đã trở thành một phần không thể thiếu
trong cuộc sống hiện đại Với một cú click chuột, chúng ta mở ra một
thế giới phim ảnh đa dạng từ hành động kịch tính đến những câu
chuyện lãng mạn đầy cảm xúc Đây không chỉ là giải trí mà còn là
cách thư giãn, giảm căng thẳng và tận hưởng những câu chuyện
tuyệt vời
Thực tế, không phải lúc nào chúng ta cũng có thời gian hoặc cơ
hội để đến rạp chiếu phim Thay vào đó, các ứng dụng web xem
phim trực tuyến đang trở thành sự lựa chọn phổ biến Đây là nơi
chúng ta có thể dễ dàng tìm kiếm và xem phim yêu thích, bất kể ở
đâu và khi nào
Đó là lý do tại sao dự án xây dựng một website xem phim trở
nên quan trọng Nó không chỉ là một dự án áp dụng công nghệ
thông tin, mà còn là cách mang lại trải nghiệm xem phim tốt nhất
cho người dùng Đặc biệt, mục tiêu không sử dụng quảng cáo và
giảm gián đoạn là điều rất quan trọng Điều này đảm bảo người
dùng có thể thưởng thức phim mình yêu thích mà không bị làm
phiền bởi những quảng cáo gây gián đoạn
Đề Tài "Xây dựng Website Xem Phim" không chỉ là một dự án
đào tạo, mà còn là một cam kết thúc đẩy công nghệ và giúp người
dùng thư giãn sau những giờ học và làm việc căng thẳng Rất vui
được chia sẻ với người dùng những tính năng và trải nghiệm tuyệt
vời mà dự án này mang lại
Trang 4CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN BÀI TOÁN XEM PHIM1.1 Bài toán xem phim
Trong thời đại số hóa và phát triển công nghệ, xem phim đã
trở thành một hoạt động giải trí phổ biến và phổ quát trong
cuộc sống hàng ngày của con người Bài toán xem phim đặt ra
những thách thức và yêu cầu cần được đáp ứng để mang lại trải
nghiệm tốt nhất cho người dùng Bài toán xem phim không chỉ
đơn giản là việc chọn một bộ phim và xem nó trên màn hình
1.2 Yêu cầu bài toán
Bài toán xem phim đặt ra một số yêu cầu quan trọng để đáp
ứng nhu cầu và mong đợi của người dùng Dưới đây là các yêu cầu
chính của bài toán xem phim:
- Đa dạng nội dung: Người dùng mong muốn có sự đa dạngtrong lựa chọn nội dung phim Điều này bao gồm các thể loại phim
khác nhau như hành động, tình cảm, viễn tưởng, hài hước, kinh dị,
v.v Yêu cầu này đảm bảo rằng người dùng có nhiều sự lựa chọn và
có thể tìm thấy phim phù hợp với sở thích của mình
- Chất lượng hình ảnh và âm thanh: Một yêu cầu quan trọng
khác là chất lượng hình ảnh và âm thanh của phim Người dùng
mong muốn có trải nghiệm xem phim với hình ảnh rõ nét, màu sắc
sống động và âm thanh chất lượng cao Điều này đòi hỏi sự hỗ trợ
của thiết bị phát phim và mạng Internet để đảm bảo truyền tải nội
dung phim một cách mượt mà và chất lượng
- Sự tiện lợi và linh hoạt: Người dùng muốn có sự tiện lợi và linhhoạt trong việc truy cập và xem phim Họ mong muốn có nhiều
phương thức truy cập như xem phim trực tiếp, tải về, thuê hoặc mua
phim Đồng thời, người dùng cũng muốn có khả năng xem phim trên
Trang 5nhiều thiết bị và nền tảng khác nhau như máy tính, điện thoại di
động, TV thông minh, v.v
- Sự tương tác và phản hồi: Người dùng mong muốn có khả năng
tương tác với nội dung phim và nhận phản hồi từ nền tảng xem
phim Điều này có thể bao gồm khả năng đánh giá phim, viết bình
luận, chia sẻ ý kiến và khám phá nội dung liên quan khác như trailer,
phỏng vấn diễn viên, v.v Người dùng muốn có cơ hội tham gia vào
cộng đồng xem phim và chia sẻ trải nghiệm của mình
1.1.1 Yêu cầu chức năng
I HỆ THỐNG QUẢN TRỊ
1.1 Trang đăng nhập Đăng nhập vào hệ thống quản trị
1.2 Quản lí phim Cho phép thêm, sửa, xóa danh
sách trên website người dùng
1.3 Quản lí danh mục phim Cho phép thêm,sửa,xóa các danh
2.1 Trang đăng nhập Cho phép người dùng đăng
nhập vào hệ thống website
Trang 62.4 Yêu thích phim Cho phép người dùng yêu thích
phim2.5 Đánh giá phim Cho phép người dùng đánh giá
phim
1.1.2 Yêu cầu phi chức năng
Cấu trúc rõ ràng, giao diện đơn giản, dễ nhìn, dễ sử dụng
Hiển thị tốt trên các thiết bị cuối như: PC, Laptop, Tablet,Mobile…
Thời gian thực hiện các chức năng nhanh; hạn chế các thôngtin không cần thiết; hạn chế lạm dụng hiệu ứng, hình ảnh
Thư viện phim đa dạng: Cung cấp một bộ sưu tập phim đadạng với nhiều thể loại và nguồn nội dung
Chất lượng hình ảnh và âm thanh cao cấp: Hỗ trợ phát phimvới chất lượng hình ảnh cao (HD, 4K) và âm thanh vòm để cải thiện
trải nghiệm xem phim
1.3 Một số website phim liên quan
Dưới đây là một số các website xem phim phổ biến
1.3.1 Trang web hhtq.net
Địa chỉ website: hhtq.net
Các chức năng chính của website:
Trang 7thiệu những tin tức nổi bật qua các hình ành, tiếp đến là giới thiệu
các mặt hàng cùng với giá của sản phẩm rất tiện cho người dùng có
thể tham khảo Giao diện chính được thể hiện trong Hình 1.1, Hình
1.2,Hình 1.3
Hình 1.1 Giao diện chính của web hhtq.net
Trang 8Hình 1.2 Giao diện danh mục phim hoạt hình 3d
Hình 1.3 Giao diện thông tin phim
1.3.2 Trang web tvhay2.net
Địa chỉ website: tvhay2.net
Các chức năng chính của website:
Xem danh Phim: Xem danh sách phim theo chủ đề, khi clickvào danh mục bất kì website sẽ hiển thị các bộ phim thuộc danh
mục đó
Xem chi tiết phim: Xem chi tiết bộ phim bao gồm các thông
Trang 9tin: tên đạo diễn,ngày phát hành,tên diễn viên,
Giao diện chính của trang web được thiết kế theo phong cáchlanding page, ngoài phần menu chính, tiếp theo là thanh trượt giới
thiệu những tin tức nổi bật qua các hình ành, tiếp đến là giới thiệu
các mặt hàng cùng với giá của sản phẩm rất tiện cho người dùng có
thể tham khảo
Hình 1.4 Giao diện trang chính của web
Hình 1.5 Giao diện danh mục phim chiếu rạp
Trang 10Hình 1.6 Giao diện chi tiết phimCHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG XEM
PHIM2.1 Phân tích hệ thống xem phim
Hệ thống có 2 đối tượng sử dụng bao gồm: người dùng và quản
trị viên
Người dùng là những người thông qua website Có thể đăng ký tài
khoản thành viên, đăng nhập vào hệ thống để xem phim, nêu có nhu
cầu xem các bộ phim người dùng chỉ cần nhấn vào bộ phim đó là có
thể xem được Cùng với đó người dùng có thể bình luận các bài viết
trên trang, cũng như là trả lời các bình luận của những thành viên
khác
Quản trị viên là người quản trị các thông tin của website baogồm: Quản lý menu website và các hình ảnh, slide trên website
Ngoài ra quản trị viên cũng quản lý các loại mặt hàng, sản phẩm
trên website, quản lý người dùng, cho phép khóa các tài khoản người
dùng.Thống kê báo cáo các thông tin liên quan đến cửa hàng như:
Thống kê doanh thu,lượt xem,lượt đánh giá bộ phim
Trang 11Biểu đồ ca sử dụng của hệ thống được mô tả như Hình 2.1 với
2 tác nhân: Khách hàng và Quản trị viên
Trang 123) Hệ thống kiểm tra thông tin và ghi thông tin tàikhoản vào cơ sở dữ liệu đồng thời thông báocho người dùng biết đã đăng ký thành công vàchuyển tới trang đăng nhập
Các bước bổ
sung
Trong bước 2, nếu số điện thoại hoặc mật khẩu bị trống thì hệ thống sẽ thông báo và yêu cầunhập dữ liệu
Các ngoại lệ Nếu số điện thoại hoặc email đã tồn tại trong
cơ sở dữ liệu thì dữ liệu sẽ không được ghi vào cơ
sở dữ liệu và thông báo cho người dùng biết
Trang 13Trong bước 2, nếu số điện thoại hoặc mật khẩu
bị trống thì hệ thống sẽ thông báo và yêu cầu nhập
dữ liệu
Các ngoại lệ Nếu thông tin đăng nhập không chính xác hoặc
tài khoản có vấn đề thì hệ thống sẽ thông báo cho người dùng biết
Tham chiếu Không
2.1.1.3 Danh sách phim
Mục đích Người dùng có thể xem danh sách các bộ phim
với thông tin tóm tắt như tiêu đề, thể loại, quốc gia,
Trang 14Các ngoại lệ Không
Tham chiếu Không
2.1.1.4 Phim theo thể loại
Mục đích Cho phép người dùng lọc danh sách phim theo thể loại
mong muốn, giúp họ tìm kiếm phim dễ dàng hơn
Trang 15Tham chiếu Không
2.1.1.5 Tìm kiếm phim
Mục đích Người dùng có thể tìm kiếm phim dựa trên tên phim, đạo
diễn hoặc diễn viên
Trang 16Mục đích Người dùng có thể đánh dấu các bộ phim mình thích và
thêm chúng vào danh sách phim yêu thích
Trang 17Tham chiếu Không
2.1.1.8 Chức năng phim yêu thích
Mục đích Cho phép người dùng tạo và quản lý danh sách các bộ phim
Trang 18Tham chiếu Không
2.2.2 Các chức năng dành cho quản trị
Trang 19diện trang chủ
Các bước bổ
sung
Trong bước 2, nếu số điện thoại hoặc mật khẩu
bị trống thì hệ thống sẽ thông báo và yêu cầu nhập
dữ liệu
Các ngoại lệ
Nếu thông tin đăng nhập không chính xác hoặctài khoản có vấn đề thì hệ thống sẽ thông báo chongười dùng biết
Tham chiếu Không
Trang 203) Hệ thống kiểm tra các yêu cầu và trả ra kếtquả cho người dùng hoặc cập nhật kết quả vào
cơ sở dữ liệu
Các bước bổ Khi thêm phim mới, nếu dữ liệu bị trống hoặc
sai định dạng thì yêu cầu nhập lại dữ liệu
Trang 21sung
Các ngoại lệ
Không
Tham chiếu Không
2.1.1.4 Thống kê, báo cáo
Mục đích Xem thống kê, báo cáo về số lượt xem phim
Các ngoại lệ Không
Tham chiếu Không
Trang 222.2 Thiết kế hệ thống xem phim
2.2.1 Thiết kế cơ sở dữ liệu
Dựa trên các thực thể đã thiết kế, chúng tôi thực hiện các bước
chuẩn hóa 1NF, 2NF và 3NF để có được các bảng dữ liệu sau:
a) Bảng User (Người dùng) dùng lưu trữ thông tin người dùng của hệthống:
định
Ràngbuộc
Ghichú
b) Bảng Genres ( Thể Loại ) lưu trữ thể loại phim
định
Ràngbuộc
Ghichú
1
Mã thể loại GenreId
2 Tên thể loại GenreName NVARCHAR(30) Not null
c) Bảng Movie ( Phim ) dùng để lưu các bộ phim:
Trang 23định
Ràngbuộc
Ghichú
d) Bảng FavoriteMovie ( Các bộ phim yêu thích) dùng để lưu
thông tin các bộ phim yêu thích
Trang 24định
Ràngbuộc
Ghichú
thích phim
FavoriteMoviesId
2 Tên người
dùng
e) Bảng Movieviews (Lượt xem phim) dùng để lưu thông tin lượt
xem
định
Ràngbuộc
Ghichú
Trang 25định
Ràngbuộc
Ghichú
Ghichú
2.2.2 Mô hình cơ sở dữ liệu quan hệ
Trang 26Mô hình MVC là một kiến trúc thiết kế của một phần mềm công
nghê thông tin, trong đó có cả PHP Khi một phần mềm sử dụng mô
hình này thì nó sẽ phải chia ra thành ba phần chính
Model-View-Controller (MVC) với 3 nhiệm vụ khác nhau:
Model: là thành phần chứa tất cả các phương thức xử lý, truyxuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…
View: Là phần đảm nhận việc hiển thị thông tin, tương tác vớingười dùng Hoặc chúng ta có thể hiểu nôm na đó là phần giao diện
Trang 27của ứng dụng
Controller: Controller là phần xử lý và điều hướng các hànhđộng của client, từ đó đưa ra các xử lý với database nếu có Hay nói
các khác thì controller là cầu nối giữa view và Model
Hình 3.1 Mối liên hệ mô hình MVC
3.1.2 ASP NET Core MVC là gì ?
ASP.NET Core MVC là một framework “nhẹ”, opensource, giúptối ưu hóa hiệu năng của ứng dụng với ASP.NET Core
ASP.NET Core MVC cung cấp các tính năng dựa trên mô hìnhxây dựng website động cho phép phân chia rõ ràng các khối lệnh
Nó cung cấp cho bạn toàn quyền kiểm soát đánh dấu, hỗ trợ phát
triển với TDD-friendly và sử dụng các tiêu chuẩn web mới nhất
Tính năng của ASP.NET Core MVC bao gồm:
Routing: Routing sẽ xác định URL và điều khiển thông tintương ứng với URL mà người dùng web nhập vào Tất cả các cấu hìnhRouting của một ứng dụng ASP.NET MVC được lưu trữ trongRouteTable, nó đóng vai trò định tuyến các URL để xác định các lớp
xử lý tương ứng khi có request được gửi đến từ người dùng web
Model binding: Trong ASP.NET Core MVC Model binding chuyểnđổi dữ liệu yêu cầu từ phía client (form values, route data, query string
Trang 28parameters, HTTP headers) vào bên trong đối tượng để controller cóthể xử lí Kết quả là Controller của bạn không phải thực hiện công
việc tìm ra dữ liệu từ đâu đến Nó chỉ đơn giản là kiểm tra dữ liệu và
tham số từ phương thức action
Model validation: ASP.NET Core MVC hỗ trợ ràng buộc dữliệu cho các thuộc tính trong model của bạn, các thuộc tính sẽ được
kiểm tra ở client xem có hợp lệ không trước khi giá trị của thuộc tính
đó được gửi về server Cũng như trên server trước khi action của
controller gọi
Dependency injection: Trong ASP.NET Core MVC controller
có thể gửi yêu cầu cần thiết đến các service thông cấu trúc xây
dựng của chúng
Filters: Filters giúp các lập trình viên đóng gói “cross-cutting
concerns” giống như là xử lý ngoại lệ và phân quyền Filter được
kích hoạt để chạy trước và sau các action của controller Ví dụ về
phân quyền [Authorize] được đặt trước action
Areas: Khi một website ASP.NET MVC trở nên quá lớn quá vàphức tạp,số Controller chắc chắn sẽ tăng lên, với nhiều controller
như vậy bạn sẽ thấy chúng có thể thuộc về một nhóm như phần
Administrator, phần sản phẩm, phần nhóm sản phẩm… Areas cho
phép bạn chia các Controllers,models và views tới các vị trí khác
nhau trong solution với cùng một thư mục độc lập
Web APIs: Ngoài việc là một nền tảng tuyệt vời để xâydựng các trang web ASP.NET Core MVC hỗ trợ rất nhiều cho việc xâydựng API Web Bạn có thể xây dựng các dịch vụ tiếp cận nhiều kháchhàng bao gồm trình duyệt web và thiết bị di động
Testability: Việc xây dựng các framework’s sử dụng các
interface và DI làm cho việc kiểm tra ứng dụng trở nên dễ dàng hơn
và framework’s bao gồm các tính năng (like a TestHost and
InMemory provider for Entity Framework) chúng giúp ích cho lập
trình viên rất nhiều
Trang 29Razor view engine: ASP.NET Core MVC views sử dụng Razor
view engine để render các code html đến view.Razor được sử dụng để
tự động tạo nội dung web trên máy chủ
Tag Helpers: Tag Helpers cho phép mã phía máy chủ tham
gia vào việc tạo và hiển thị các phần tử HTML trong các tệp razor
View Components: View Component là cơ chế tái sử dụng
trong Razor Pages hướng tới xây dựng các thành phần tương đối độc
lập, phức tạp với các logic xử lý dữ liệu riêng
3.1.3 Ưu điểm của ASP NET Core
ASP.NET Core có một số thay đổi kiến trúc dẫn đến modular
framework nhỏ
ASP.NET Core không còn dựa trên System.Web.dll Nó dựa
trên một tập hợp nhiều yếu tố của Nuget packages
Điều này cho phép bạn tối ưu ứng dụng của mình chỉ
cần những NuGet packages cần thiết
Lợi ích của diện tích bề mặt ứng dụng nhỏ hơn thì bảo mật
chặt chẽ hơn, giảm dịch vụ, cải thiện hiệu suất và giảm chi phí
3.2 Công cụ và công nghệ sử dụng
3.2.1 Phần mềm Visual Studio Code
Visual Studio Code chính là ứng dụng cho phép biên tập, soạn thảo các đoạncode để hỗ trợ trong quá trình thực hiện xây dựng, viết mã nguồn một cách nhanhchóng Visual Studio Code hỗ trợ đa dạng các chức năng kiểm tra lỗi, đi kèm với Git.Đặc biệt là tự hoàn thành mã thông minh và khả năng cải tiến mã nguồn
Ưu điểm của Visual Studio Code:
- Miễn phí và mã nguồn mở: Visual Studio Code là một công cụ mã nguồn mở
và hoàn toàn miễn phí, nó mang lại sự tiện lợi về chi phí cho các nhà phát triển
- Hỗ trợ đa ngôn ngữ: Visual Studio Code hỗ trợ nhiều ngôn ngữ lập trình, giúpngười dùng dễ dàng chuyển đổi giữa các dự án và các ngôn ngữ lập trình khác nhau -