TỔNG QUAN VỀ ĐỒ ÁN
HIỆN TRẠNG HỆ THỐNG
Hệ thống website mà nhóm chúng em phát triển là một dự án trong môn "Lập trình Web", và hiện tại vẫn đang trong quá trình hoàn thiện để đáp ứng tốt hơn với nhu cầu ngày càng cao của người dùng và khách truy cập.
Nhóm em đang phát triển một hệ thống website cho phép người dùng và khách truy cập thưởng thức kho phim ngày càng phong phú, bao gồm cả phim lẻ và phim chiếu rạp Hệ thống hiện đã hoàn thiện và đáp ứng nhu cầu của người dùng với các quy trình hoạt động chính.
Đối với người quản trị, biên tập viên
Đăng nhập: Người quản trị hoặc biên tập viên sẽ đăng nhập vào hệ thống.
Người quản trị hoặc biên tập viên sẽ bổ sung các thông tin quan trọng liên quan đến phim vào hệ thống, bao gồm thể loại, thẻ tag, ngôn ngữ, quốc gia, đạo diễn và diễn viên.
Thêm phim: Người quản trị hoặc biên tập viên sẽ thêm những bộ phim mới vào hệ thống.
Đối với người dùng, khách truy cập
Đăng nhập: Người dùng, khách truy cập sẽ đăng nhập vào tài khoản.
Chọn phim: Thực hiện chọn phim từ các danh sách hoặc tìm kiếm phim mong muốn.
Xem chi tiết phim: Xem chi tiết thông tin phim.
Xem phim: Thưởng thức nội dung phim.
MỤC TIÊU VÀ PHẠM VI ĐỒ ÁN
Sau khi tiến hành khảo sát các website xem phim, nhóm chúng tôi đã phát triển một trang web xem phim trực tuyến, ứng dụng những kiến thức đã học Website này được trang bị nhiều chức năng hữu ích, nhằm mang đến trải nghiệm xem phim tốt nhất cho người dùng.
Trang web cho phép người dùng và khách truy cập xem các bộ phim lẻ và phim chiếu rạp Chỉ những tài khoản quản trị hoặc biên tập viên mới có quyền thêm mới hoặc chỉnh sửa thông tin phim Người dùng và khách truy cập có thể tìm kiếm phim và thực hiện đánh giá đơn giản bằng cách thích hoặc không thích bộ phim.
Sử dụng các ngôn ngữ: HTML, CSS, Javascript, C# (.NET Framework 4.5)
Sử dụng các công cụ lập trình: Visual Studio Code, SQL Server 2014 trở lên, Visual Studio 2019.
Các công cụ hỗ trợ khác: Live Server (tiện ích trong Visual Studio Code), Live Share (tiện ích được tích hợp trong Visual Studio Code và Visual Studio
2019), Nền tảng quản lý mã nguồn Github.
SỰ CẦN THIẾT VÀ LÝ DO CHỌN ĐỒ ÁN
Hiện nay, Việt Nam đang trải qua quá trình công nghiệp hóa hiện đại hóa, dẫn đến việc nâng cao chất lượng cuộc sống của người dân Do đó, nhu cầu giải trí cũng gia tăng đáng kể Sự phát triển của Internet đã thúc đẩy sự ra đời của nhiều website xem phim, nhằm đáp ứng nhu cầu giải trí ngày càng lớn của đại bộ phận người dân.
Nhằm đáp ứng nhu cầu ngày càng tăng về việc xem phim online, nhóm chúng tôi đã phát triển một website chuyên cung cấp dịch vụ xem phim, mang đến trải nghiệm giải trí thú vị cho người dùng sau những giờ làm việc căng thẳng.
PHÂN TÍCH YÊU CẦU VÀ QUY TRÌNH NGHIỆP VỤ
PHÂN TÍCH YÊU CẦU VÀ QUY TRÌNH NGHIỆP VỤ
Yêu cầu của người dùng, khách truy cập
Giao diện dễ sử dụng, phù hợp với nhu cầu xem phim online.
Tìm kiếm được phim dễ dàng.
Có các đáp ứng được các nhu cầu cần thiết cho người dùng, khách truy cập.
Đăng ký, đăng nhập tài khoản, các tác vụ quản lý tài khoản dễ dàng.
Thông tin tài khoản được bảo mật tốt.
Yêu cầu của người quản trị, biên tập viên
Có các chức năng thống kê: Số lượng phim, thể loại, lượt xem trang hiện tại, tình trạng hệ thống,…
Quản lý được các dữ liệu phim (xem chi tiết, thêm, xóa, sửa).
Quản lý được các dữ liệu liên quan như: Thể loại, thẻ tag, ngôn ngữ, quốc gia, đạo diễn, diễn viên,…
Quản lý các tài khoản, quyền hạn của tài khoản,…(Chỉ có người quản trị mới có thể thay đổi).
Quản lý các dữ liệu trên hệ thống dễ dàng.
Các tình huống sử dụng
Các tác nhân Các tác vụ có thể thực hiện
Quản trị, biên Quản lí phim, thể loại, đạo diễn, diễn viên,… tập viên
Quản trị, biên Các chức năng thống kê. tập viên
Quản trị Quản lí các tài khoản, quyền hạn tài khoản,…
Quản trị, biên Đăng nhập, đăng xuất, đăng ký, lấy lại mật khẩu. tập viên, người dùng
Quản trị, biên Các tác vụ như xem chi tiết phim, phim theo thể loại, tìm tập viên, người kiếm, xem phim, đánh giá phim. dùng
Bảng 1: Các tình huống sử dụng
1.2.1 Mô hình nghiệp vụ tạo tài khoản
Bước 1: Khách truy cập, người dùng nhập vào thông tin cá nhân để tiến hành đăng ký tài khoản.
Hệ thống sẽ kiểm tra tên người dùng và địa chỉ email mà khách truy cập đã nhập Nếu phát hiện thông tin bị trùng hoặc sai, người dùng sẽ được yêu cầu quay lại bước 1 và nhận thông báo tương ứng.
Hệ thống sẽ bắt đầu quá trình tạo tài khoản trong cơ sở dữ liệu Nếu việc tạo tài khoản không thành công, người dùng sẽ được chuyển hướng trở lại bước 1 và nhận thông báo về sự cố.
Bước 4 yêu cầu người dùng nhập mã xác nhận được gửi đến email đã đăng ký Nếu mã xác nhận nhập sai, trang sẽ tự động tải lại và hiển thị thông báo lỗi Người dùng có thể sử dụng chức năng gửi lại mã xác nhận nếu chưa nhận được email hoặc bị mất mã.
Bước 4: Sau khi nhập mã xác nhận thành công, hệ thống sẽ chuyển hướng đến trang đăng nhập.
Hình 1: Mô hình nghiệp vụ tạo tài khoản
1.2.2 Mô hình nghiệp vụ đăng nhập tài khoản
Bước 1: Người dùng nhập vào thông tin gồm tên người dùng, mật khẩu.
Hệ thống sẽ kiểm tra thông tin người dùng đã nhập Nếu tài khoản không tồn tại hoặc mật khẩu không chính xác, hệ thống sẽ trở về bước 1 và hiển thị thông báo lỗi.
Bước 3: Hệ thống tiến hành đăng nhập Trong quá trình đăng nhập, nếu không thành công, hệ thống sẽ quay lại bước 1 và kèm theo thông báo.
Hệ thống sẽ tự động chuyển hướng người dùng đến trang phù hợp dựa trên quyền hạn của tài khoản Nếu tài khoản có quyền là User, người dùng sẽ được chuyển đến trang chủ Ngược lại, nếu tài khoản có quyền là Admin hoặc Editor, hệ thống sẽ dẫn đến trang quản trị.
Hình 2: Mô hình đăng nhập tài khoản
1.2.3 Mô hình nghiệp vụ lấy lại mật khẩu cho tài khoản
Bước 1: Người dùng sẽ nhập địa chỉ email của tài khoản để tiến hành lấy lại mật khẩu.
Bước 2: Hệ thống sẽ kiểm tra địa chỉ email mà người dùng nhập vào, nếu không tồn tại thì hệ thống quay lại bước 1 và kèm theo thông báo.
Bước 3: Hệ thống sẽ chuyển đến trang nhập mã xác nhận Nếu mã xác nhận nhập vào không đúng, trang sẽ được tải lại và hiển thị thông báo lỗi Trong trường hợp bạn không nhận được email hoặc bị mất mã xác nhận, bạn có thể sử dụng chức năng gửi lại mã xác nhận.
Sau khi nhập mã xác nhận, hệ thống sẽ chuyển đến trang nhập mật khẩu mới Sau khi hoàn tất việc nhập mật khẩu mới, hệ thống sẽ tiến hành thay đổi mật khẩu Nếu việc thay đổi mật khẩu không thành công, người dùng sẽ quay lại bước đầu tiên Nếu thành công, hệ thống sẽ chuyển hướng đến trang đăng nhập.
Hình 3: Mô hình nghiệp vụ lấy lại mật khẩu cho tài khoản
1.2.4 Mô hình nghiệp vụ phần dành cho người dùng, khách truy cập
Khi người dùng truy cập trang chủ, hệ thống sẽ tự động lấy và hiển thị danh sách các bộ phim mới nhất cùng với danh sách phim phân loại theo từng thể loại.
Khi người dùng truy cập vào trang chi tiết phim, hệ thống sử dụng ID phim trong địa chỉ để tìm kiếm thông tin liên quan Nếu không tìm thấy, người dùng sẽ được chuyển hướng về trang chủ Trên trang chi tiết, nếu người dùng đã đăng nhập, họ sẽ có các chức năng để đánh giá phim bằng cách thích hoặc không thích.
Khi người dùng truy cập vào trang xem phim hoặc trang chi tiết, hệ thống sẽ sử dụng ID của phim trong địa chỉ để tìm kiếm thông tin liên quan Nếu không tìm thấy thông tin, hệ thống sẽ tự động chuyển hướng về trang chủ Đồng thời, hệ thống cũng sẽ tải video, cho phép người dùng và khách truy cập xem phim một cách dễ dàng.
Chức năng tìm kiếm được tích hợp trên tất cả các trang dành cho người dùng và khách truy cập Khi người dùng nhập từ khóa vào thanh tìm kiếm và nhấn enter, hệ thống sẽ kiểm tra tính hợp lệ của từ khóa và chỉ thực hiện tìm kiếm nếu từ khóa không rỗng Sau khi quá trình tìm kiếm hoàn tất, hệ thống sẽ trả về các kết quả tìm thấy.
Hình 4: Mô hình nghiệp vụ phần dành cho người dùng, khách truy cập
1.2.5 Mô hình nghiệp vụ phần quản trị
Các nghiệp vụ thêm dữ liệu
Bước 1: Người quản trị, biên tập viên tiến hành nhập các thông tin vào biểu mẫu.
Bước 2: Hệ thống sẽ tiến hành kiểm tra thông tin Nếu thông tin bị trùng, hệ thống sẽ quay lại bước 1 và kèm theo thông báo lỗi.
Hệ thống sẽ thêm dữ liệu vào cơ sở dữ liệu và quay lại bước 1, đồng thời cung cấp thông báo về trạng thái thêm dữ liệu, cho biết liệu quá trình này thành công hay thất bại.
Hình 4: Mô hình nghiệp vụ phần quản trị - thêm dữ liệu
Các nghiệp vụ chỉnh sửa dữ liệu
Bước 1: Người quản trị, biên tập viên sẽ tiến hành thay đổi các thông tin đang hiện trên biểu mẫu.
Bước 2: Hệ thống sẽ tiến hành kiểm tra thông tin Nếu thông tin bị trùng, hệ thống sẽ quay lại bước 1 kèm theo thông báo lỗi.
Hệ thống sẽ cập nhật dữ liệu vào cơ sở dữ liệu và sau đó quay lại bước 1, kèm theo thông báo về trạng thái chỉnh sửa dữ liệu, cho biết liệu quá trình này thành công hay thất bại.
Hình 4: Mô hình nghiệp vụ phần quản trị - chỉnh sửa dữ liệu
Các nghiệp vụ xóa dữ liệu
Bước 1: Người quản trị, biên tập viên sẽ chọn thông tin đang cần xóa, sau đó nhấn nút xóa.
Hệ thống sẽ kiểm tra thông tin và xác minh các ràng buộc dữ liệu, trong đó một số đối tượng không cần phải kiểm tra Nếu phát hiện ràng buộc tồn tại, hệ thống sẽ trở lại bước 1 và hiển thị thông báo lỗi.
Hệ thống sẽ xóa dữ liệu trong cơ sở dữ liệu và quay lại bước 1, đồng thời thông báo trạng thái xóa dữ liệu, cho biết liệu quá trình này thành công hay thất bại.
Hình 5: Mô hình nghiệp vụ phần quản trị - xóa dữ liệu
1.2.6 Mô hình Usecase tổng quát của hệ thống
Hình 6: Mô hình Usecase tổng quát của hệ thống
YÊU CẦU CHỨC NĂNG
Nhóm các chức năng thuộc phần quản trị:
Quản lí phim: Chức năng thêm, sửa, xoá các thông tin của bộ phim.
Quản lý thể loại: Chức năng thêm, sửa, xoá các thông tin thể loại của bộ phim.
Quản lý thẻ tag: Chức năng thêm, sửa, xoá các thẻ tag của bộ phim.
Quản lý quốc gia: Chức năng thêm, sửa, xoá các quốc gia sản xuất của bộ phim.
Quản lý ngôn ngữ: Chức năng thêm, sửa, xoá các ngôn ngữ gốc của bộ phim.
Quản lý đạo diễn: Chức năng thêm, sửa, xoá các đạo diễn của bộ phim.
Quản lý diễn viên: Chức năng thêm, sửa, xoá các diễn viện của bộ phim.
Nhóm các chức năng thuộc phần tài khoản:
Đăng nhập: Cho phép đăng nhập vào tài khoản người dùng, người quản trị, biên tập viên và điều hướng tới trang phù hợp.
Đăng xuất: Đăng xuất khỏi tài khoản, xóa phiên người dùng hiện tại.
Đăng ký: Đăng ký 1 tài khoản mới tài khoản người dùng mới
Xác minh tài khoản: Sau khi kích hoạt tài khoản thành công, người dùng có thể đăng nhập vào website.
Lấy lại mật khẩu: Hỗ trợ người dùng, người quản trị, biên tập viên có thể tạo mới mật khẩu nếu như quên mật khẩu hiện tại.
Nhóm các chức năng thuộc phần dành cho người dùng, khách truy cập:
Phim mới nhất: Lấy ra danh sách phim mới được thêm.
Phim theo thể loai: Lấy ra danh sách phim theo thể loại được yêu cầu.
Danh sách thể loại: Danh sách thể loại phim của trang web đang có.
Chi tiết phim: Lấy ra toàn bộ thông tin phim bao gồm: tên, mô tả, đạo diễn, diễn viên, ngôn ngữ, quốc gia,…
Trang xem phim: Trang có chức năng cho người dùng xem phim đã chọn.
Tìm kiếm phim: Tìm những bộ phim có tên chứa từ khóa được nhập vào.
THIẾT KẾ HỆ THỐNG
CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU
Bảng người dùng (User) là bảng lưu trữ thông tin tài khoản của người dùng và người quản trị.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID varchar(100) ID của người dùng (khóa chính).
2 userName varchar(50) Tên người dùng.
3 surName nvarchar(50) Họ của người dùng.
4 middleName nvarchar(50) Tên lót của người dùng.
5 name nvarchar(50) Tên của người dùng.
6 email nvarchar(100) Địa chỉ email của người dùng.
7 phoneNumber char(11) Số điện thoại của người dùng.
8 password varchar(100) Mật khẩu của người dùng.
9 salt varchar(100) Chuỗi mật khẩu bổ sung, tăng độ phức tạp cho mật khẩu.
10 description ntext Mô tả của người dùng.
11 activated bit Trạng thái kích hoạt của người dùng.
12 roleId varchar(100) ID quyền hạn Thuộc tính này là khóa ngoại tham chiếu tới thuộc tính ID của bảng Role.
13 createAt datetime Ngày tạo dữ liệu.
14 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 2: Cấu trúc dữ liệu bảng người dùng (User)
2.2 Bảng vai trò người dùng (Role)
Bảng vai trò của người dùng (Role) là bảng lưu trữ các mức quyền hạn của người dùng.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID varchar(100) ID quyền hạn (khóa chính).
2 name nvarchar(50) Tên quyền hạn.
3 createAt datetime Ngày tạo dữ liệu.
4 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 3: Cấu trúc dữ liệu bảng vai trò người dùng (Role)
2.3 Bảng phản ứng của người dùng (UserReaction)
Bảng phản ứng của người dùng (UserReaction) là bảng lưu trữ các thao tác thích,không thích phim của người dùng.
STT Tên trường Kiểu dữ liệu Mô tả
1 filmId varchar(100) ID của phim (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Film.
2 userId varchar(100) ID của người dùng (khóa chính) Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng User.
3 upvoted bit Trạng thái đã thích phim, khi upvoted là true thì downvoted là false.
4 downvoted bit Trạng thái không thích phim, khi downvoted là true thì upvoted là false.
5 createAt datetime Ngày tạo dữ liệu.
6 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 4: Cấu trúc dữ liệu bảng phản ứng của người dùng (UserReaction)
2.4 Bảng phương thức thanh toán (PaymentMethod)
Bảng phương thức thanh toán (PaymentMethod) lưu trữ thông tin các phương thức thanh toán.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID int ID của phương thức thanh toán (khóa chính tự động tăng).
2 name varchar(30) Tên phương thức thanh toán.
3 createAt datetime Ngày tạo dữ liệu.
4 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 5: Cấu trúc dữ liệu bảng phương thức thanh toán (PaymentMethod)
2.5 Bảng thông tin thanh toán (PaymentInfo)
Bảng thông tin thanh toán (PaymentInfo) là bảng lưu trữ thông tin thanh toán của người dùng.
STT Tên trường Kiểu dữ liệu Mô tả
1 userId varchar(100) ID của người dùng (khóa chính) Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng User.
2 paymentMethodId int ID của phương thức thanh toán (khóa chính) Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng PaymentMethod.
5 owner varchar(100) Tên chủ thẻ (Tên in trên thẻ).
6 expirationDate varchar(30) Ngày hết hạn của thẻ.
7 createAt datetime Ngày tạo dữ liệu.
8 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 6: Cấu trúc dữ liệu bảng thông tin thanh toán (PaymentInfo)
Bảng thể loại (Category) là bảng lưu trữ thông tin thể loại.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID int ID của thể loại (khóa chính tự động tăng).
2 name nvarchar(50) Tên thể loại.
3 description ntext Mô tả thể loại.
4 createAt datetime Ngày tạo dữ liệu.
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 7: Cấu trúc dữ liệu bảng thể loại (Category)
Bảng thẻ Tag (Tag) là bảng lưu trữ thông tin thẻ tag.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID bigint ID của thẻ tag (khóa chính tự động tăng).
2 name nvarchar(50) Tên thẻ tag.
3 description ntext Mô tả thẻ tag.
4 createAt datetime Ngày tạo dữ liệu
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 8: Cấu trúc dữ liệu bảng thẻ Tag (Tag)
Bảng quốc gia (Country) là bảng lưu trữ thông tin quốc gia của phim
STT Tên trường Kiểu dữ liệu Mô tả
1 ID int ID của quốc gia (khóa chính tự động tăng).
2 name nvarchar(50) Tên quốc gia.
3 description ntext Mô tả quốc gia.
4 createAt datetime Ngày tạo dữ liệu.
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 9: Cấu trúc dữ liệu bảng quốc gia (Country)
Bảng ngôn ngữ (Language) là bảng lưu trữ thông tin ngôn ngữ của phim.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID int ID của ngôn ngữ (khóa chính tự động tăng).
2 name nvarchar(50) Tên ngôn ngữ.
3 description ntext Mô tả ngôn ngữ.
4 createAt datetime Ngày tạo dữ liệu.
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 10: Cấu trúc dữ liệu bảng ngôn ngữ (Language)
Bảng đạo diễn (Director) là bảng lưu trữ thông tin đạo diễn.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID bigint ID của đạo diễn (khóa chính tự động tăng).
2 name nvarchar(50) Tên đạo diễn.
3 description ntext Mô tả đạo diễn.
4 createAt datetime Ngày tạo dữ liệu.
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 11: Cấu trúc dữ liệu bảng đạo diễn (Director)
Bảng diễn viên (Cast) là bảng lưu trữ thông tin diễn viên.
STT Tên trường Kiểu dữ liệu Mô tả
1 ID bigint ID của diễn viên (khóa chính tự động tăng).
2 name nvarchar(50) Tên diễn viên.
3 description ntext Mô tả diễn viên.
4 createAt datetime Ngày tạo dữ liệu.
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 12: Cấu trúc dữ liệu bảng diễn viên (Cast)
2.12 Bảng phân phối thể loại (CategoryDistribution)
Bảng phân phối thể loại (CategoryDistribution) là bảng lưu trữ thông tin các thể loại của phim.
Kiểu dữ liệu Mô tả
1 categoryId int ID của thể loại (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Category.
2 filmId varchar(100) ID của phim (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Film.
3 createAt datetime Ngày tạo dữ liệu.
4 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 13: Cấu trúc dữ liệu bảng phân phối thể loại (CategoryDistribution)
2.13 Bảng phân phối thẻ Tag (TagDistribution)
Bảng phân phối thẻ Tag (TagDistribution) là bảng lưu trữ thông tin các thẻ tag của phim.
STT Tên trường Kiểu dữ liệu Mô tả
1 tagId bigint ID của thẻ tag (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Tag.
2 filmId varchar(100) ID của phim (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Film.
3 createAt datetime Ngày tạo dữ liệu.
4 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 14: Cấu trúc dữ liệu bảng phân phối thẻ Tag (TagDistribution)
2.14 Bảng đạo điễn của phim (DirectorOfFilm)
Bảng đạo điễn của phim (DirectorOfFilm) là bảng lưu trữ các đạo diễn của phim.
STT Tên trường Kiểu dữ liệu Mô tả
1 directorId bigint ID của đạo diễn (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Tag.
2 filmId varchar(100) ID của phim (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Film.
3 role nvarchar(50) Vai trò cụ thể của đạo diễn.
4 createAt datetime Ngày tạo dữ liệu.
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 15: Cấu trúc dữ liệu bảng đạo diễn của phim (DirectorOfFilm)
2.15 Bảng diễn viên của phim (CastOfFilm)
Bảng diễn viên của phim (CastOfFilm) là bảng lưu trữ thông tin các diễn viên của phim.
STT Tên trường Kiểu dữ liệu Mô tả
1 castId bigint ID của diễn viên (khóa chính) Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Tag.
2 filmId varchar(100) ID của phim (khóa chính).
Thuộc tính này cũng là khóa ngoại tham chiếu tới thuộc tính ID của bảng Film.
3 role nvarchar(50) Vai trò cụ thể của diễn viên.
4 createAt datetime Ngày tạo dữ liệu.
5 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 16: Cấu trúc dữ liệu bảng diễn viên của phim (CastOfFilm)
Bảng phim (Film) là bảng lưu trữ thông tin phim
STT Tên trường (thuộc Kiểu dữ liệu Mô tả tính)
1 ID varchar(100) ID của phim (khóa chính).
3 description ntext Mô tả phim.
4 countryId int ID của quốc gia Thuộc tính này là khóa ngoại tham chiếu tới thuộc tính ID của bảng Country.
5 productionCompany nvarchar(50) Công ty sản xuất.
6 languageId int ID của ngôn ngữ Thuộc tính này là khóa ngoại tham chiếu tới thuộc tính ID của bảng Language.
7 releaseDate varchar(10) Ngày phát hành.
8 upvote bigint Số lượng lượt thích phim.
9 downvote bigint Số lượng lượt không thích phim.
10 views bigint Số lượng lượt xem phim.
11 duration varchar(20) Thời lượng của phim.
12 thumbnail varchar(100) Đường dẫn hình ảnh phim.
13 source varchar(100) Đường dẫn phim.
14 createAt datetime Ngày tạo dữ liệu.
15 updateAt datetime Ngày cập nhật dữ liệu.
Bảng 17: Cấu trúc dữ liệu bảng phim (Film)
XÂY DỰNG CHƯƠNG TRÌNH
GIAO DIỆN PHẦN NGƯỜI DÙNG, KHÁCH TRUY CẬP
Hiển thị các phim mới nhất, danh sách thể loại và danh sách phim theo từng thể loại.
Hình 8: Giao diện trang chủ
1.2 Trang phim theo thể loại
Hiển thị danh sách phim theo thể loại, kèm theo là thông tin số lượng phim của thể loại đó.
Hình 9: Giao diện trang phim theo thể loại
1.3 Trang danh sách thể loại
Hiển thị danh sách thể loại bao gồm các thông tin như sau: Tên thể loại, Số lượng phim và liên kết tới trang phim theo thể loại.
Hình 10: Giao diện trang danh sách thể loại
1.4 Trang kết quả tìm kiếm
Hiển thị danh sách các kết quả (phim) của từ khóa được tìm kiếm, kèm theo là thông tin số lượng kết quả tìm kiếm được.
Hình 11: Giao diện trang kết quả tìm kiếm
1.5 Trang lịch sử xem phim của phiên đăng nhập
Hiển thị các phim đã xem trong phiên đăng nhập, sau khi đăng xuất hoặc hết hạn phiên thì dữ liệu sẽ tự xóa.
Hình 12: Giao diện trang lịch sử xem phim của phiên đăng nhập
Trang web hiển thị đầy đủ thông tin về phim, bao gồm tên, mô tả, hình ảnh, thể loại, thẻ tag, quốc gia, ngôn ngữ, lượt xem, diễn viên và đạo diễn Người dùng có thể đánh giá phim bằng cách chọn thích hoặc không thích.
Hình 13: Giao diện trang chi tiết phim
Hiển thị khung video cho phép xem phim
Hình 14: Giao diện trang xem phim
GIAO DIỆN PHẦN TÀI KHOẢN
Trần Phương Bình, qua chức năng
Dương Diếp Nhật Live Share.
4 Giao diện phần người Phan Xuân Chánh, Làm nhóm thông Hoàn thành dùng, khách truy cập Trần Phương Bình, qua chức năng
5 Giao diện phần quản trị Phan Xuân Chánh Hoàn thành
6 Các chức năng cho phần Phan Xuân Chánh Hoàn thành tài khoản
7 Các chức năng cho phần Trần Phương Bình, Làm nhóm thông Hoàn thành người dùng, khách hàng Dương Diếp Nhật qua chức năng
8 Các chức năng cho phần Phan Xuân Chánh Hoàn thành quản trị
9 Xây dựng project hỗ trợ Phan Xuân Chánh Hoàn thành mở rộng kết nối Sql
Server, project Data và project Common
10 Kiểm thử, phát hiện lỗi Dương Diếp Nhật Hoàn thành
11 Làm báo cáo Word Phan Xuân Chánh, Làm nhóm thông Hoàn thành
Trần Phương Bình, qua Google
12 Làm báo cáo Powerpoint Phan Xuân Chánh, Làm nhóm thông Hoàn thành
Dương Diếp Nhật qua Google
Ngày nay, công nghệ thông tin đã phát triển mạnh mẽ và trở thành chìa khóa thành công cho nhiều cá nhân và tổ chức Những ứng dụng của công nghệ thông tin mang lại nhiều lợi ích không thể phủ nhận, đặc biệt trong lĩnh vực quản lý kinh tế, góp phần tạo ra sự thay đổi nhanh chóng cho bộ mặt xã hội.
Trong quá trình thực hiện đề tài, nhóm chúng em đã đối mặt với nhiều khó khăn, nhưng nhờ sự hỗ trợ của bạn bè và sự hướng dẫn tận tình từ giảng viên Trần Như Ý, chúng em đã hoàn thành đề tài với nỗ lực cao nhất Chúng em xin chân thành cảm ơn những người bạn đã góp ý và giúp đỡ, đặc biệt là cô Trần Như Ý, người đã giúp chúng em xác định yêu cầu, mục tiêu và trang bị các kỹ năng cần thiết để thực hiện đề tài.
Với kiến thức thực tế và hiểu biết còn hạn chế, nhóm chúng em nhận thấy trong quá trình hoàn thành báo cáo vẫn còn một số sai sót Chúng em rất mong nhận được sự góp ý và đóng góp từ cô và các bạn để có thể hoàn thiện bài tập lớn một cách tốt hơn.
Chúng em xin chân thành cảm ơn!
CHƯƠNG 1 TỔNG QUAN VỀ ĐỒ ÁN 1
2 MỤC TIÊU VÀ PHẠM VI ĐỒ ÁN 1
3 SỰ CẦN THIẾT VÀ LÝ DO CHỌN ĐỒ ÁN 2
CHƯƠNG 2 PHÂN TÍCH YÊU CẦU VÀ QUY TRÌNH NGHIỆP VỤ 3
1 PHÂN TÍCH YÊU CẦU VÀ QUY TRÌNH NGHIỆP VỤ 3
1.2.1 Mô hình nghiệp vụ tạo tài khoản 4
1.2.2 Mô hình nghiệp vụ đăng nhập tài khoản 5
1.2.3 Mô hình nghiệp vụ lấy lại mật khẩu cho tài khoản 6
1.2.4 Mô hình nghiệp vụ phần dành cho người dùng, khách truy cập 7
1.2.5 Mô hình nghiệp vụ phần quản trị 8
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG 13
2 CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU 13
2.2 Bảng vai trò người dùng (Role) 14
2.3 Bảng phản ứng của người dùng (UserReaction) 14
2.4 Bảng phương thức thanh toán (PaymentMethod) 15
2.5 Bảng thông tin thanh toán (PaymentInfo) 15
2.12 Bảng phân phối thể loại (CategoryDistribution) 18
2.13 Bảng phân phối thẻ Tag (TagDistribution) 19
2.14 Bảng đạo điễn của phim (DirectorOfFilm) 19
2.15 Bảng diễn viên của phim (CastOfFilm) 20
CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH 22
1 GIAO DIỆN PHẦN NGƯỜI DÙNG, KHÁCH TRUY CẬP 22
1.2 Trang phim theo thể loại 22
1.3 Trang danh sách thể loại 23
1.4 Trang kết quả tìm kiếm 23
1.5 Trang lịch sử xem phim của phiên đăng nhập 23
2 GIAO DIỆN PHẦN NGƯỜI DÙNG, KHÁCH TRUY CẬP (PHIÊN BẢN RÚT GỌN) 25
2.2 Trang phim theo thể loại 25
3 GIAO DIỆN PHẦN TÀI KHOẢN 27
3.3 Trang lấy lại mật khẩu 28
3.4 Trang nhập mã xác nhận 28
3.5 Trang nhập mật khẩu mới 29
4 GIAO DIỆN PHẦN QUẢN TRỊ 30
4.2 Nhóm các trang xem danh sách 30
4.3 Nhóm các trang xem chi tiết một đối tượng 30
4.4 Nhóm các trang tạo mới một đối tượng 31
4.5 Nhóm các trang chỉnh sửa một đối tượng 31
4.6 Nhóm các trang xóa một đối tượng 32
CHƯƠNG 5 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN 33
2 KẾT QUẢ CHƯA ĐẠT ĐƯỢC 34
Hình 1: Mô hình nghiệp vụ tạo tài khoản 5
Hình 2: Mô hình đăng nhập tài khoản 6
Hình 3: Mô hình nghiệp vụ lấy lại mật khẩu cho tài khoản 7
Hình 4: Mô hình nghiệp vụ phần dành cho người dùng, khách truy cập 8
Hình 4: Mô hình nghiệp vụ phần quản trị - thêm dữ liệu 9
Hình 4: Mô hình nghiệp vụ phần quản trị - chỉnh sửa dữ liệu 10
Hình 8: Giao diện trang chủ 22
Hình 9: Giao diện trang phim theo thể loại 22
Hình 10: Giao diện trang danh sách thể loại 23
Hình 11: Giao diện trang kết quả tìm kiếm 23
Hình 12: Giao diện trang lịch sử xem phim của phiên đăng nhập 24
Hình 13: Giao diện trang chi tiết phim 24
Hình 14: Giao diện trang xem phim 25
Hình 15: Giao trang chủ rút gọn 25
Hình 16: Giao diện trang phim theo thể loại rút gọn 26
Hình 17: Giao diện trang xem chi tiết rút gọn 26
Hình 18: Giao diện trang xem phim rút gọn 27
Hình 19: Giao diện trang đăng ký tài khoản 27
Hình 20: Giao diện trang đăng nhập tài khoản 28
Hình 21: Giao diện trang lấy lại mật khẩu 28
Hình 22: Giao diện trang nhập mã xác nhận 29
Hình 23: Giao diện trang nhập mật khẩu mới 29
Hình 24: Giao diện trang đăng xuất 29
Hình 25: Giao diện trang tổng quan 30
Hình 26: Giao diện một trang xem danh sách 30
Hình 27: Giao diện một trang xem chi tiết một đối tượng 31
Hình 28: Giao diện một trang thêm mới một đối tượng 31
Hình 29: Giao diện một trang chỉnh sửa một đối tượng 32
Hình 30: Giao diện một trang xóa một đối tượng 32
Bảng 1: Các tình huống sử dụng 3
Bảng 2: Cấu trúc dữ liệu bảng người dùng (User) 14
Bảng 3: Cấu trúc dữ liệu bảng vai trò người dùng (Role) 14
Bảng 4: Cấu trúc dữ liệu bảng phản ứng của người dùng (UserReaction) 15
Bảng 5: Cấu trúc dữ liệu bảng phương thức thanh toán (PaymentMethod) 15
Bảng 6: Cấu trúc dữ liệu bảng thông tin thanh toán (PaymentInfo) 16
Bảng 7: Cấu trúc dữ liệu bảng thể loại (Category) 16
Bảng 8: Cấu trúc dữ liệu bảng thẻ Tag (Tag) 17
Bảng 9: Cấu trúc dữ liệu bảng quốc gia (Country) 17
Bảng 10: Cấu trúc dữ liệu bảng ngôn ngữ (Language) 18
Bảng 11: Cấu trúc dữ liệu bảng đạo diễn (Director) 18
Bảng 12: Cấu trúc dữ liệu bảng diễn viên (Cast) 18
Bảng 13: Cấu trúc dữ liệu bảng phân phối thể loại (CategoryDistribution) 19
Bảng 14: Cấu trúc dữ liệu bảng phân phối thẻ Tag (TagDistribution) 19
Bảng 15: Cấu trúc dữ liệu bảng đạo diễn của phim (DirectorOfFilm) 20
Bảng 16: Cấu trúc dữ liệu bảng diễn viên của phim (CastOfFilm) 20
Bảng 17: Cấu trúc dữ liệu bảng phim (Film) 21
CHƯƠNG 1 TỔNG QUAN VỀ ĐỒ ÁN
Hệ thống website mà nhóm em phát triển là một đồ án cho môn “Lập trình Web” và vẫn đang trong quá trình hoàn thiện Chúng em liên tục cải tiến để đáp ứng tốt hơn với nhu cầu ngày càng cao của người dùng và khách truy cập.
Nhóm em đang phát triển một hệ thống website cho phép người dùng thưởng thức một kho phim ngày càng phong phú, bao gồm cả phim lẻ và phim chiếu rạp Hệ thống hiện tại đã đáp ứng nhu cầu của khách truy cập với các quy trình hoạt động chính hiệu quả.
Đối với người quản trị, biên tập viên
Đăng nhập: Người quản trị hoặc biên tập viên sẽ đăng nhập vào hệ thống.
Người quản trị hoặc biên tập viên sẽ bổ sung các thông tin cần thiết liên quan đến phim vào hệ thống, bao gồm thể loại, thẻ tag, ngôn ngữ, quốc gia, đạo diễn và diễn viên.
Thêm phim: Người quản trị hoặc biên tập viên sẽ thêm những bộ phim mới vào hệ thống.
Đối với người dùng, khách truy cập
Đăng nhập: Người dùng, khách truy cập sẽ đăng nhập vào tài khoản.
Chọn phim: Thực hiện chọn phim từ các danh sách hoặc tìm kiếm phim mong muốn.
Xem chi tiết phim: Xem chi tiết thông tin phim.
Xem phim: Thưởng thức nội dung phim.
2 MỤC TIÊU VÀ PHẠM VI ĐỒ ÁN
Sau khi tiến hành khảo sát các website xem phim, nhóm chúng tôi đã phát triển một website xem phim online, ứng dụng những kiến thức đã học Website này tích hợp nhiều chức năng hữu ích nhằm nâng cao trải nghiệm người dùng.
Trang web cho phép người dùng và khách truy cập xem phim lẻ và phim chiếu rạp Chỉ những tài khoản quản trị hoặc biên tập viên mới có quyền thêm mới và chỉnh sửa phim Người dùng và khách truy cập có thể tìm kiếm phim và thực hiện đánh giá đơn giản về phim bằng cách thích hoặc không thích.
Sử dụng các ngôn ngữ: HTML, CSS, Javascript, C# (.NET Framework 4.5)
Sử dụng các công cụ lập trình: Visual Studio Code, SQL Server 2014 trở lên, Visual Studio 2019.
Các công cụ hỗ trợ khác: Live Server (tiện ích trong Visual Studio Code), Live Share (tiện ích được tích hợp trong Visual Studio Code và Visual Studio
2019), Nền tảng quản lý mã nguồn Github.
3 SỰ CẦN THIẾT VÀ LÝ DO CHỌN ĐỒ ÁN
Hiện nay, Việt Nam đang trong giai đoạn công nghiệp hóa và hiện đại hóa, kéo theo sự nâng cao chất lượng cuộc sống Do đó, nhu cầu giải trí của người dân ngày càng tăng cao Sự phát triển của Internet đã dẫn đến sự ra đời của nhiều website xem phim, nhằm đáp ứng nhu cầu giải trí ngày càng lớn của cộng đồng.
Nhận thấy nhu cầu xem phim online ngày càng tăng, nhóm chúng tôi đã phát triển một website chuyên cung cấp dịch vụ xem phim trực tuyến Mục tiêu của chúng tôi là đáp ứng nhu cầu giải trí và thư giãn cho người dùng sau những giờ làm việc căng thẳng.
CHƯƠNG 2 PHÂN TÍCH YÊU CẦU VÀ QUY TRÌNH NGHIỆP VỤ
1 PHÂN TÍCH YÊU CẦU VÀ QUY TRÌNH NGHIỆP VỤ
Yêu cầu của người dùng, khách truy cập
Giao diện dễ sử dụng, phù hợp với nhu cầu xem phim online.
Tìm kiếm được phim dễ dàng.
Có các đáp ứng được các nhu cầu cần thiết cho người dùng, khách truy cập.
Đăng ký, đăng nhập tài khoản, các tác vụ quản lý tài khoản dễ dàng.
Thông tin tài khoản được bảo mật tốt.
Yêu cầu của người quản trị, biên tập viên
Có các chức năng thống kê: Số lượng phim, thể loại, lượt xem trang hiện tại, tình trạng hệ thống,…
Quản lý được các dữ liệu phim (xem chi tiết, thêm, xóa, sửa).
Quản lý được các dữ liệu liên quan như: Thể loại, thẻ tag, ngôn ngữ, quốc gia, đạo diễn, diễn viên,…
Quản lý các tài khoản, quyền hạn của tài khoản,…(Chỉ có người quản trị mới có thể thay đổi).
Quản lý các dữ liệu trên hệ thống dễ dàng.
Các tình huống sử dụng
Các tác nhân Các tác vụ có thể thực hiện
Quản trị, biên Quản lí phim, thể loại, đạo diễn, diễn viên,… tập viên
Quản trị, biên Các chức năng thống kê. tập viên
Quản trị Quản lí các tài khoản, quyền hạn tài khoản,…
Quản trị, biên Đăng nhập, đăng xuất, đăng ký, lấy lại mật khẩu. tập viên, người dùng
Quản trị, biên Các tác vụ như xem chi tiết phim, phim theo thể loại, tìm tập viên, người kiếm, xem phim, đánh giá phim. dùng
Bảng 1: Các tình huống sử dụng
1.2.1 Mô hình nghiệp vụ tạo tài khoản
Bước 1: Khách truy cập, người dùng nhập vào thông tin cá nhân để tiến hành đăng ký tài khoản.
Hệ thống sẽ kiểm tra tên người dùng và địa chỉ email mà khách truy cập đã nhập Nếu thông tin trùng lặp hoặc không chính xác, người dùng sẽ được yêu cầu quay lại bước 1 kèm theo thông báo lỗi.
Hệ thống sẽ tạo tài khoản trong cơ sở dữ liệu Nếu quá trình tạo tài khoản không thành công, người dùng sẽ được chuyển hướng về bước 1 kèm theo thông báo lỗi.
Hệ thống sẽ chuyển hướng đến trang nhập mã xác nhận, mã này được gửi đến email của người dùng Nếu mã xác nhận nhập sai, trang sẽ tải lại và hiển thị thông báo lỗi Người dùng có thể sử dụng chức năng gửi lại mã xác nhận nếu không nhận được email hoặc bị mất mã.
Bước 4: Sau khi nhập mã xác nhận thành công, hệ thống sẽ chuyển hướng đến trang đăng nhập.
Hình 1: Mô hình nghiệp vụ tạo tài khoản
1.2.2 Mô hình nghiệp vụ đăng nhập tài khoản
Bước 1: Người dùng nhập vào thông tin gồm tên người dùng, mật khẩu.
Hệ thống sẽ kiểm tra thông tin người dùng đã nhập Nếu tài khoản không tồn tại hoặc mật khẩu sai, hệ thống sẽ trở lại bước 1 và hiển thị thông báo lỗi.
Bước 3: Hệ thống tiến hành đăng nhập Trong quá trình đăng nhập, nếu không thành công, hệ thống sẽ quay lại bước 1 và kèm theo thông báo.
Hệ thống sẽ tự động chuyển hướng đến trang phù hợp dựa trên quyền hạn của tài khoản Nếu tài khoản có quyền User, người dùng sẽ được đưa về trang chủ, trong khi tài khoản có quyền Admin hoặc Editor sẽ được chuyển đến trang quản trị.
Hình 2: Mô hình đăng nhập tài khoản
1.2.3 Mô hình nghiệp vụ lấy lại mật khẩu cho tài khoản
Bước 1: Người dùng sẽ nhập địa chỉ email của tài khoản để tiến hành lấy lại mật khẩu.
Bước 2: Hệ thống sẽ kiểm tra địa chỉ email mà người dùng nhập vào, nếu không tồn tại thì hệ thống quay lại bước 1 và kèm theo thông báo.
GIAO DIỆN PHẦN QUẢN TRỊ
Cho phép người quản trị xem được tình trạng hệ thống, các thống kê cơ bản.
Hình 25: Giao diện trang tổng quan
4.2 Nhóm các trang xem danh sách
Hiển thị danh sách của các đối tượng như: Danh sách thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 26: Giao diện một trang xem danh sách
4.3 Nhóm các trang xem chi tiết một đối tượng
Hiển thị chi tiết các đối tượng: Chi tiết thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 27: Giao diện một trang xem chi tiết một đối tượng
4.4 Nhóm các trang tạo mới một đối tượng
Cho phép người quản trị có thể tạo mới một đối tượng: Tạo mới thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 28: Giao diện một trang thêm mới một đối tượng
4.5 Nhóm các trang chỉnh sửa một đối tượng
Cho phép người quản trị có thể chỉnh sửa một đối tượng: Chỉnh sửa thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 29: Giao diện một trang chỉnh sửa một đối tượng
4.6 Nhóm các trang xóa một đối tượng
Cho phép người quản trị có thể xóa một đối tượng: Xóa thể loại, thẻ tag, phim, ngôn ngữ, quốc gia,…
Hình 30: Giao diện một trang xóa một đối tượng