TỔNG QUAN VỀ ĐỒ ÁN
HIỆN TRẠNG HỆ THỐNG
Hệ thống website mà nhóm em phát triển là một dự án cho môn “Lập trình Web”, và hiện tại vẫn đang trong quá trình hoàn thiện hàng ngày để đá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 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 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 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 website xem phim online, áp dụng những kiến thức đã học và tích hợp nhiều chức năng hữu ích.
Trang web cung cấp cho người dùng và khách truy cập khả năng xem phim lẻ và phim chiếu rạp Chỉ những tài khoản có quyền quản trị hoặc biên tập viên mới có thể 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, xem nội dung và thực hiện đánh giá đơn giản bằng cách bày tỏ ý kiến thích hoặc không thích về 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ợ lập trình hữu ích bao gồm Live Server, một tiện ích trong Visual Studio Code, và Live Share, được tích hợp trong cả Visual Studio Code và Visual Studio 2019 Ngoài ra, nền tảng quản lý mã nguồn GitHub cũng là một công cụ quan trọng cho việc quản lý và chia sẻ mã nguồn hiệu quả.
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 đời sống con người ngày càng được nâng cao Do đó, nhu cầu giải trí của người dân cũng tăng cao Sự phát triển của Internet đã tạo điều kiện cho nhiều website xem phim ra đời, 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 trực tuyến, mang đến cho người dùng những trải nghiệm giải trí thú vị 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 tập viên Quản lí phim, thể loại, đạo diễn, diễn viên,…
Quản trị, biên tập viên Các chức năng thống kê.
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 tập viên, người dùng Đăng nhập, đăng xuất, đăng ký, lấy lại mật khẩu.
Quản trị, biên tập viên, người dùng
Các tác vụ như xem chi tiết phim, phim theo thể loại, tìm kiếm, xem phim, đánh giá phim.
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 dữ liệu trùng lặp hoặc sai sót, người dùng sẽ được yêu cầu quay lại bước 1 và nhận thông báo cụ thể.
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 và nhận thông báo lỗi.
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, hệ thống sẽ tự động tải lại trang và hiển thị thông báo lỗi Người dùng cũ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 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 mà 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 đúng, hệ thống sẽ quay lại bước đầu tiên 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ẽ xác định trang phù hợp dựa trên quyền hạn của tài khoản Nếu tài khoản là User, người dùng sẽ được chuyển hướng đến trang chủ; ngược lại, nếu tài khoản là Admin hoặc Editor, hệ thống sẽ 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.
Khi bạn đến bước 3, hệ thống sẽ yêu cầu bạn nhập mã xác nhận Nếu mã bạn nhập không chính xác, trang sẽ tự động 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ã để nhận mã mới.
Sau khi nhập mã xác nhận, hệ thống sẽ dẫn bạn đến trang để nhập mật khẩu mới Nếu mật khẩu mới được thay đổi thành công, bạn sẽ được chuyển đến trang đăng nhập Ngược lại, nếu quá trình thay đổi mật khẩu không thành công, hệ thống sẽ quay lại bước đầu tiên.
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 vào 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ẽ sử dụng ID phim trong URL để 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ủ Đối với những người dùng đã đăng nhập, trang chi tiết sẽ cung cấp các chức năng cho phép họ đá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 phim trong URL để tìm kiếm thông tin liên quan Nếu không tìm thấy thông tin, người dùng sẽ được chuyển hướng về trang chủ Hệ thống cũng sẽ tải video, cho phép người dùng và khách truy cập xem nội dung phim.
Chức năng tìm kiếm có mặt 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 Nếu từ khóa không rỗng, hệ thống sẽ tiến hành tìm kiếm và trả về kết quả phù hợp.
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ực hiện việc thêm dữ liệu vào cơ sở dữ liệu và sau đó 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à trở lại bước 1, đồng thời thông báo 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 định các ràng buộc dữ liệu, trong đó một số đối tượng có thể không cần kiểm tra Nếu phát hiện ràng buộc tồn tại, hệ thống sẽ quay lại bước đầu tiên 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
LƯỢC ĐỒ DIAGRAM
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ị.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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.
(thuộc tính) 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 tính) Kiểu dữ liệu Mô tả
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 Ngoài ra, trang cũng cung cấp chức năng cho phép người dùng đánh giá phim bằng cách 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, Dương Diếp Nhật Minh
Làm nhóm thông qua chức năng Live Share.
4 Giao diện phần người dùng, khách truy cập Phan Xuân Chánh,
Trần Phương Bình, Làm nhóm thông qua chức năng Live Share.
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 tài khoản Phan Xuân Chánh Hoàn thành
7 Các chức năng cho phần người dùng, khách hàng Trần Phương Bình,
Làm nhóm thông qua chức năng Live Share và Github.
8 Các chức năng cho phần quản trị Phan Xuân Chánh Hoàn thành
9 Xây dựng project hỗ trợ mở rộng kết nối Sql
Server, project Data và project Common
Phan Xuân Chánh Hoàn thành
10 Kiểm thử, phát hiện lỗi Dương Diếp Nhật
11 Làm báo cáo Word Phan Xuân Chánh,
Trần Phương Bình, Làm nhóm thông qua Google Meeting.
12 Làm báo cáo Powerpoint Phan Xuân Chánh,
Làm nhóm thông qua Google Meeting.
Ngày nay, công nghệ thông tin đã có những bước 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, tổ chức Với ứng dụng đa dạng, công nghệ thông tin mang lại nhiều lợi ích thiết thực, đặc biệt trong lĩnh vực quản lý kinh tế, góp phần thay đổi nhanh chóng bộ mặt xã hội.
Trong quá trình thực hiện đề tài, nhóm đã đối mặt với nhiều khó khăn, nhưng nhờ sự hỗ trợ từ bạn bè và sự hướng dẫn tận tình của 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 và mục tiêu, đồng thời truyền đạt các kỹ năng nghiệp vụ cần thiết để thực hiện đề tài.
Do hạn chế về kiến thức thực tế và hiểu biết, nhóm chúng em không tránh khỏi sai sót trong quá trình hoàn thành báo cáo Chúng em rất mong nhận được sự góp ý và đóng góp từ cô và các bạn để cải thiện bài tập lớn của mình.
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 những yêu cầu ngày càng cao từ người dùng và khách truy cập.
Nhóm em đang phát triển một nền tảng website cho phép người dùng và khách truy cập thưởng thức một kho phim ngày càng phong phú Hiện tại, hệ thống đã đáp ứng nhu cầu xem các bộ phim lẻ và phim chiếu rạp Các quy trình hoạt động chính của hệ thống được thiết kế để mang lại trải nghiệm tốt nhất cho người dùng.
Đố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.
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, áp dụng những kiến thức đã học và tích hợp nhiều chức năng hữu ích.
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 có quyền quản trị hoặc biên tập viên mới có thể 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ó khả năng tìm kiếm phim và thực hiện các đánh giá đơn giản về phim, thể hiện sự thích hoặc không thích của họ.
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ợ lập trình hữu ích bao gồm Live Server, một tiện ích trong Visual Studio Code giúp phát triển web một cách nhanh chóng, và Live Share, cho phép cộng tác trực tiếp trong Visual Studio Code và Visual Studio 2019 Bên cạnh đó, nền tảng quản lý mã nguồn Github cũng đóng vai trò quan trọng trong việc quản lý và chia sẻ mã nguồn hiệu quả.
3 SỰ CẦN THIẾT VÀ LÝ DO CHỌN ĐỒ ÁN
Hiện nay, Việt Nam đang trong quá trình công nghiệp hóa hiện đại hóa, dẫn đến cuộc sống con người ngày càng được nâng cao Do đó, nhu cầu giải trí của người dân cũng tăng cao Sự phát triển của Internet đã tạo điều kiện cho nhiều Website xem phim ra đời, đá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 cao 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 trực tuyến Trang web này được thiết kế để mang đến cho người dùng trải nghiệm giải trí tuyệt vời 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 tập viên Quản lí phim, thể loại, đạo diễn, diễn viên,…
Quản trị, biên tập viên Các chức năng thống kê.
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 tập viên, người dùng Đăng nhập, đăng xuất, đăng ký, lấy lại mật khẩu.
Quản trị, biên tập viên, người dùng
Các tác vụ như xem chi tiết phim, phim theo thể loại, tìm kiếm, xem phim, đánh giá phim.
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 trùng lặp hoặc sai sót, người dùng sẽ được yêu cầu quay lại bước 1 và sẽ nhận được thông báo tương ứng.
Hệ thống sẽ tạo tài khoản trong cơ sở dữ liệu ở bước 3 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 về bước 1 kèm theo thông báo lỗi.
Bước 4 yêu cầu người dùng nhập mã xác nhận được gửi đến địa chỉ email đã đăng ký Nếu mã xác nhận nhập sai, hệ thống sẽ tự động tải lại trang và hiển thị thông báo lỗi Người dùng cũ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 không tìm thấy tài khoản hoặc mật khẩu không chính xác, hệ thống sẽ quay 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.
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