=> Xem được các poster của các bộ phim => Người dùng click vào poster => Chuyển sang trang thông tin của bộ phim Bao gồm: tên, tập, thời lượng, phần, thể loại, mô tả phim, lượt thích, số
Giới Thiệu
Giới thiệu đề tài
Ứng dụng Review phim được xây dựng để người dùng có thể xem qua những video giới thiệu phim, đánh giá của phim, các thể loại phim, lịch sử xem phim, lịch sử đánh giá, lịch sử rating
Nội dung thực hiện
Xây dựng các chức năng chính sau đây
- Đăng ký thành viên, đăng nhập thành viên, xem trailer phim, di chuyển giữa các thể loại, tập phim, phần phim, lưu trữ được vị trí xem phim, xem được lịch sử đã xem, đánh giá được triler phim
- Đăng nhập tài khoản admin, quản lí user, quản lí danh mục phim (thêm,xóa, sửa), quản lí phim
- (thêm,xóa, sửa), thực hiện được các thao tác tổng hợp để gửi được cho user thấy các phim mới hoặc dựa vào đánh giá của nhiều user từ database, quản lí đánh giá bình luận (xóa, thống kê)
Giới hạn đề tài
- Chỉ làm được các chức năng liên quan đến review phim
Bố cục báo cáo
- Chương 2: Phân tích ứng dụng review phim
- Chương 3: Xây dựng chức năng
- Chương 4: Kết quả - kết luận
Phân tích ứng dụng review phim
Thiết kế database
ID User (Primary Key, Auto Increment)
ID Genre (Primary Key, Auto Increment)
ID Movie (Primary Key, Auto Increment)
ID Genre (Foreign Key to Genres Table, Not Null)
File Path Image (Not Null)
File Path Video (Not Null)
Release Date (Date, Not Null)
Number of Episodes (Integer, Not Null)
ID User (Foreign Key to Users Table, Not Null)
ID Movie (Foreign Key to Movies Table, Not Null)
PRIMARY KEY (ID User, ID Movie)
Watch Date (Not Null, Date)
ID User (Foreign Key to Users Table, Not Null)
ID Movie (Foreign Key to Movies Table, Not Null)
PRIMARY KEY (ID User, ID Movie)
Like/Dislike (Boolean, Not Null)
ID Comment (Primary Key, Auto Increment)
ID User (Foreign Key to Users Table, Not Null)
ID Movie (Foreign Key to Movies Table, Not Null)
Comment Text (Text, Not Null)
Comment Date (Not Null, Date)
Likes/Dislikes (Integer, Not Null)
Code tạo bảng Database
ID_User INT PRIMARY KEY IDENTITY( , ), 1 1
Email NVARCHAR( 255 ) UNIQUE NOT NULL,
ID_Genre INT PRIMARY KEY IDENTITY( , ), 1 1
Name NVARCHAR( 255 ) NOT NULL UNIQUE
ID_Movie INT PRIMARY KEY IDENTITY( , ), 1 1
ID_Genre INT NOT NULL,
FOREIGN KEY ( ID_Genre ) REFERENCES Genres ( ID_Genre )
ID_User INT NOT NULL,
ID_Movie INT NOT NULL,
PRIMARY KEY ( ID_User , ID_Movie ),
FOREIGN KEY ( ID_User ) REFERENCES Users ( ID_User ),
FOREIGN KEY ( ID_Movie ) REFERENCES Movies ( ID_Movie )
ID_User INT NOT NULL,
ID_Movie INT NOT NULL,
PRIMARY KEY ( ID_User , ID_Movie ),
FOREIGN KEY ( ID_User ) REFERENCES Users ( ID_User ),
FOREIGN KEY ( ID_Movie ) REFERENCES Movies ( ID_Movie )
ID_Comment INT PRIMARY KEY IDENTITY( , ), 1 1
ID_User INT NOT NULL,
ID_Movie INT NOT NULL,
CommentText NVARCHAR( MAX ) NOT NULL,
FOREIGN KEY ( ID_User ) REFERENCES Users ( ID_User ),
FOREIGN KEY ( ID_Movie ) REFERENCES Movies ( ID_Movie )
Hình 1 Mối quan hệ database
Mối quan hệ
-Bảng Users và User history: quan hệ 1-n
-Bảng Users và User Ratting: quan hệ 1-n
-Bảng Users và User Comments: quan hệ 1-n
- Bảng Movies và Genres: quan hệ 1-1
- Bảng Movies và UserHistory: quan hệ 1-1
Kịch bản activity
- Người dùng vào trang chủ
=> Xem được các poster của các bộ phim
=> Người dùng click vào poster
=> Chuyển sang trang thông tin của bộ phim (Bao gồm: tên, tập, thời lượng, phần, thể loại, mô tả phim, lượt thích, số sao, bình luận của người xem và “nút xem phim” )
=> Người dùng click vào “nút xem phim”
=> Chuyển sang trang chứa video của bộ phim
=> Người dùng click vào chức năng like/ bình luận/ đánh giá sao
=> Yêu cầu người dùng đăng nhập
=> Chuyển sang trang đăng nhập
- Người dùng click vào đăng nhập
=> Chuyển sang giao diện đăng nhập
=> Người dùng nhập thông tin tài khoản và mật khẩu cá nhân để thực hiện đăng nhập
=> Click vào nút “Đăng nhập”
=> Sau khi hệ thống kiếm tra thành công tự động chuyển về trang phim đang xem.
- Người dùng quên mật khẩu
=> Click vào chức năng “quên mật khẩu”
=> Tự động chuyển sang trang quên mật khẩu
=> Yêu cầu người dùng nhập gmail đăng kí và nhập mã được gửi về gmail để xác thực tài khoản.
=> Reset thành công tự động chuyển về trang đăng nhập
- Người dùng click vào chức năng “đăng kí”
=> Chuyển sang trang đăng ký
=> Người dùng nhập các thông tin cần thiết để tạo tài khoản
=> Click vào nỳt ô Đăng Ký ằ
=> Hệ thống sau khi kiểm tra tên tài khoản và mật khẩu thành công
=> Tự động thông báo đăng ký thành công và chuyển về trang đăng nhập
- Người dùng click vào chức năng “Trang cá nhân” ở thanh “menu”
=> Chuyển sang trang cá nhân
=> Hiển thị các thông tin bao gồm (Tên tài khoản, gmail đăng kí, ngày đăng kí, các phim theo dõi, các bình luận cá nhân, các lượt rating cá nhân)
=> Người dùng có thể quản lí, thay đổi các thông tin trên bao gồm (Xóa, chỉnh sửa, tạo mới)
- Người dùng lick vào chức năng “lịch sử xem phim” ở thanh “menu”
=> Tự động chuyển qua trang lịch sử xem phim
=> Hiển thị các thông tin phim đã xem (Tên phim, tập phim, ngày xem)
=> Người dùng có thể sử dụng chức năng xóa lịch sử để làm mới lịch sử xem phim.
- Người dùng click vào poster của 1 bộ phim ở trang chủ
=> Tự động chuyển qua trang chứ thông tin phim (Bao gồm: tên, tập, thời lượng, phần, thể loại, mô tả phim, lượt thích, số sao, bình luận của người xem và “nút xem phim” )
=> Người dùng có thể tiến hành bình luận, đánh giá, Like/DisLike sau khi đã đăng nhập tài khoản
=> Người dùng có thể bấm vào chức năng “Xem Phim” để tiến hành xem phim
Xây dựng layout user từng activity ứng với database
Hình 2 Layout trang chủ User
2.6.2 Layout trang chủ thông tin tài khoản user:
Hình 3 Layout thông tin User
Hình 5 Layout đăng ký user
2.6.5 Layout trang lịch sử xem phim:
Hình 6 Layout trang lịch sử User
2.6.6 Layout giao diện của trang xem video:
Hình 7 Layout trang xem trailer
2.6.7 Layout giao diện thông tin phim:
Hình 8 Layout trang chi tiết phim
Hình 9 Layout danh mục phim
Xây dựng layout Admin từng activity ứng với database
Hình 10 Layout quản lí AppReview của Admin
2.7.2 Layout quản lí thể loại:
Hình 11 Quản lí thể loại phim
Hình 13 Layout quản lí account user
Xử lí activity
Hình 18 Activity Lịch sử user
2.8.7 Activity tập phim/phần phim
Hình 20 Activity tập phim/ phần phim
Xây dựng chức năng AppReviewPhim
Mã tự nhiên tương ứng chức năng
Input: Người dùng nhập dữ liệu, dữ liệu kiểm tra từ DatabaseUser
Output: Xác nhận dữ liệu, chuyển sang trang tương ứng
Bước 1: Người dùng nhập thông tin đăng nhập bao gồm mật khẩu và tài khoản dưới dạng text
Bước 2: Người dùng bấm đăng nhập
Bước 3:Hệ thống kiểm tra thông tin đăng nhập người dùng
3.1: Nếu thông tin đăng nhập người dùng có trong hệ thống database User, với role là true Thì chuyển sang trang quản lí appReviewPhim
3.2 : Nếu thông tin đăng nhập người dùng có trong hệ thống database User, với role là False Thì chuyển sang trang chủ appReviewPhim
3.3 :Ngược lại, thông tin đăng nhập không tồn tại trong hệ thống database User
Thì thông báo người dùng nhập sai, nhập lại thông tin hoặc tạo tài khoản mớiBước 4: Lặp lại bước 3 nếu thông tin đăng nhập sai
Input: Người dùng nhập dữ liệu, dữ liệu kiểm tra từ DatabaseUser
Output: Xác nhận dữ liệu, lưu vào DatabaseUser, chuyển sang trang tương ứng
Bước 1: Người dùng nhập thông tin đăng nhập bao gồm mật khẩu và tài khoản dưới dạng text
Bước 2: Người dùng bấm đăng ký
Bước 3: Hệ thống kiểm tra thông tin đăng ký
3.1: Nếu tên tài khoản đã tồn tại trong hệ thống database User
Thì Hệ thống thông báo “Tài khoản đã tồn tại, vui lòng đổi tên tài khoản, hoặc đăng nhập” 3.2: Nếu mật khẩu không đủ 8 ký tự, có ký tự hoa, thường và đặt biệt
Thì Hệ thống thông báo “Mật khẩu yếu”
3.3: Ngược lại, nếu tài khoản và mật khẩu thỏa yêu cầu
Thì hệ thống thông báo đăng kí thành công
Và hệ thống lưu thông tin vào database User
Và hệ thống chuyển đến trang đăng nhập
Bước 4: Lặp lại bước 2 nếu thông tin chưa đạt yêu cầu
Input: dữ liệu từ databaseMovie, DatabaseRating
Output: Hiển thị dữ liệu được lấy
Bước 1: Người dùng truy cập hệ thống trang chủ ReviewPhim
1.1 Hệ thống lấy dữ liệu phim từ database Movie, hiển thị lên trang chủ cho người dùng
1.2 Người dùng nhấp vào bộ phim
1.2.1 Hệ thống lấy dữ liệu bộ phim từ database Movie, database Genres, database Rating, database cmt
1.2.2 Hệ thống hiển thị các dữ liệu đó lên trang chi tiết phim
1.2.3 Hệ thống lưu lịch sử truy cập vào database History
Bước 2: Người dùng nhấp vào video phim
2.1 Hệ thống hiển thị video trailer từ dữ liệu đã lấy
Input: dữ liệu từ databaseHistory, DatabaseUser
Output: Hiển thị dữ liệu được lấy
Bước 1: Người dùng truy cập vào trang lịch sử trung cập
1.1 Hệ thống lấy dữ liệu lịch sử xem phim từ database History
1.2 Hệ thống hiển thị danh sách phim đã xem
Bước 2: Người dùng chọn bộ phim đã xem
2.1 Hệ thống lấy dữ liệu rating trung bình từ Database Movie, và dữ liệu người dùng đã rating, cmt từ database Rating, database cmt
2.2 Hệ thống hiển thị các thông tin lên cho người dùng
Bước 3: Người dùng chọn xóa lịch sử
3.1 Nếu người dùng chọn xóa toàn bộ lịch sử
3.1.1 Hệ thống hiển thị thông báo xác nhận xóa
3.1.2 Người dùng nhấp xác nhận
3.1.3 Hệ thống lấy toàn bộ dữ liệu, và xóa khỏi database History, cập nhật lại trang lịch sử truy cập
3.2 Nếu người dùng chọn xóa 1 bộ phim trong lịch sử
3.2.1 Hệ thống hiển thị thông báo xác nhận xóa
3.2.2 Người dùng nhấp xác nhận
3.2.3 Hệ thống dữ liệu, và xóa khỏi database History, cập nhật lại trang lịch sử truy cập
Input: dữ liệu từ databaseGenres, DatabaseMovie
Output: Hiển thị dữ liệu được lấy
Bước 1: Người dùng truy cập vào chức năng menu của appReviewPhim
1.1 Hệ thống lấy dữ liệu các thể loại từ database Genres
1.2 Hệ thống hiển thị dữ liệu lên menu
Bước 2: Người dùng truy cập vào thể loại bất kì
2.1 Hệ thống lấy dữ liệu các bộ phim trong hệ loại đó thông qua database Movie2.2 Hệ thống hiển thị các bộ phim tương ứng trong giao diện thể loại phim
Input: dữ liệu từ databaseMovie, DatabaseGenres
Output: Hiển thị dữ liệu được lấy
Bước 1: Người dùng truy cập trang chủ
1.1 Nếu người dùng chọn bộ phim từ poster
Thì hệ thống lấy dữ liệu bộ phim từ Database Movie
1.1.1 Hệ thống hiển thị các thông tin về phần phim, thể loại phim, số tập phim từ dữ liệu đã lấy
1.1.2 Người dùng chọn thông tin tương ứng
1.1.3 Hệ thống lấy dữ liệu bộ phim tương ứng với Tên phim, tập phim vừa được chọn hoặc thông tin chi tiết phim tương ứng với phần phim 1.1.4 Hệ thống hiển thị dữ liệu người dùng vừa chọn
Bước 2: Nếu người dùng chọn chức năng tìm kiếm
Thì hệ thống hiển thị giao diện tìm kiếm, cho phép người dùng nhập tên phim/phần phim/ tập phim hoặc thể loại phim
2.1.1 Hệ thống so sánh dữ liệu người dung nhập với dữ liệu có trong hệ thống Database Movie
2.1.1 Nếu dữ liệu trùng khớp
Thì hệ thống hiển thị bộ phim đó
2.1.3 Ngược lại hệ thống thông báo “Rất tiếc, không có dữ liệu phù hợp”
Kết quả - Kết luận
Kết quả đề tài
Thực hiện được các chức năng cần thiết như sau:
- Đăng ký thành viên, đăng nhập thành viên, xem trailer phim, di chuyển giữa các thể loại, tập phim, phần phim, lưu trữ được vị trí xem phim, xem được lịch sử đã xem, đánh giá được triler phim
- Đăng nhập tài khoản admin, quản lí user, quản lí danh mục phim (thêm,xóa, sửa), quản lí phim
- (thêm,xóa, sửa), thực hiện được các thao tác tổng hợp để gửi được cho user thấy các phim mới hoặc dựa vào đánh giá của nhiều user từ database, quản lí đánh giá bình luận (xóa, thống kê)
Tuy nhiên, các chức năng liên kết vẫn còn trục trặc, chưa thể liên kết hoàn toàn với ứng dụng
Ưu – nhược điểm
Giao diện thân thuộc, dễ sử dụng, dễ quản lí Các chức năng rõ ràng, cụ thể, có thể dễ dàng kiểm soát Truy vấn ổn định Hình ảnh rõ ràng, cụ thể.
Chưa xử lí đồng bộ được, còn nhiều chức năng chưa được liên kết database.