Tải bản đầy đủ (.pdf) (124 trang)

Đồ án ứng dụng xem phim hỗ trợ gợi ý phim sử dụng hệ thống khuyến nghị

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.67 MB, 124 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

TRẦN VĂN THIỆT - 20521956
TRẦN ĐÌNH KHƠI - 20520594

ĐỒ ÁN 1

ỨNG DỤNG XEM PHIM HỖ TRỢ GỢI Ý PHIM SỬ
DỤNG HỆ THỐNG KHUYẾN NGHỊ
Application that supports movie recommendations using a
recommendation system.

Lớp SE121.N21

GIẢNG VIÊN HƯỚNG DẪN
Th.S TRẦN ANH DŨNG

TP. HỒ CHÍ MINH, 2023


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

TRẦN VĂN THIỆT - 20521956
TRẦN ĐÌNH KHƠI - 20520594


ĐỒ ÁN 1

ỨNG DỤNG XEM PHIM HỖ TRỢ GỢI Ý PHIM SỬ
DỤNG HỆ THỐNG KHUYẾN NGHỊ
Application that supports movie recommendations using a
recommendation system.

Lớp: SE121.N21

GIẢNG VIÊN HƯỚNG DẪN
Th.S TRẦN ANH DŨNG

TP. HỒ CHÍ MINH, 2023


LỜI CẢM ƠN
Nhóm chúng em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến thầy
Trần Anh Dũng đã hướng dẫn, tạo điều kiện cho nhóm chúng em hồn thành đồ án
mơn Đồ án 1.
Trong vịng 16 tuần, qua các buổi học, nhờ sự chỉ dẫn nhiệt tình của thầy,
chúng em đã tiếp thu được những kiến thức quan trọng, bổ ích cùng những góp ý
chân thành để có thể làm được một đồ án hồn chỉnh. Trong khoảng thời gian thực
hiện đồ án, chúng em đã học hỏi thêm được nhiều kiến thức, kinh nghiệm, biết được
quy trình để tạo ra một sản phẩm phần mềm.
Bên cạnh đó, chúng em xin cảm ơn các bạn bè trong lớp đã động viên, thảo
luận và góp ý cho nhóm đồng thời đã khơi thêm nguồn động lực cho nhóm trong suốt
q trình đầy khó khăn.
Mặc dù đã cố gắng hoàn thành báo cáo với tất cả nỗ lực song báo cáo của nhóm chúng
em chắc chắn khơng tránh khỏi những thiếu sót, chúng em rất mong nhận được sự
thơng cảm và góp ý chân thành từ thầy.

Chúng em xin chân thành cảm ơn. Xin chúc những điều tốt đẹp nhất sẽ luôn
đồng hành cùng mọi người.
Thành phố Hồ Chí Minh, 30 tháng 06 năm 2023
Sinh viên

TRẦN ĐÌNH KHÔI
TRẦN VĂN THIỆT


MỤC LỤC
LỜI CẢM ƠN ............................................................................................................1
MỤC LỤC ..................................................................................................................2
DANH MỤC HÌNH ...................................................................................................7
DANH MỤC BẢNG ..................................................................................................9
DANH MỤC TỪ VIẾT TẮT..................................................................................12
TÓM TẮT ĐỒ ÁN ..................................................................................................13
ĐỀ CƯƠNG CHI TIẾT ..........................................................................................15
NỘI DUNG ĐỒ ÁN .................................................................................................21
CHƯƠNG 1: MỞ ĐẦU.......................................................................................21
1.1. Lý do chọn đề tài ........................................................................................21
1.2. Mục đích nghiên cứu ..................................................................................22
1.2.1. Khách quan..........................................................................................22
1.2.2. Chủ quan .............................................................................................22
1.3. Đối tượng nghiên cứu ................................................................................22
1.3.1. Các công nghệ nghiên cứu: .................................................................22
1.3.2. Đối tượng sử dụng đề tài hướng đến:..................................................23
1.4. Phạm vi nghiên cứu ....................................................................................23
1.4.1. Phạm vi môi trường: ...........................................................................23
1.4.2. Phạm vi chức năng: .............................................................................23
1.5. Mục tiêu đề tài ............................................................................................23

1.5.1. Xây dựng mô hình:..............................................................................23
1.5.2. Xây dựng ứng dụng:............................................................................23


CHƯƠNG 2: KIẾN THỨC NỀN TẢNG ..........................................................25
2.1. Flutter .........................................................................................................25
2.2. Dart .............................................................................................................27
2.3. ASP.Net Core .............................................................................................29
2.4. C# ...............................................................................................................30
2.5. MS SQL Server ..........................................................................................31
2.6. Microsoft-ML .............................................................................................33
CHƯƠNG 3: HỆ THỐNG GỢI Ý RECOMMENDER SYSTEM .................35
3.1. Khái niệm ...................................................................................................35
3.1.1. Recommendater System ......................................................................35
3.1.2. Phương pháp Collaborative Filtering ..................................................36
3.2. Các thành phần chính .................................................................................38
3.2.1. Utility Matrix ......................................................................................38
3.2.2. Thuật toán Matrix Factorization .........................................................39
3.3. Áp dụng vào đề tài .....................................................................................41
3.3.1. Luồng xử lý .........................................................................................41
3.3.2. Phân tích bộ dữ liệu.............................................................................41
3.3.3. Xây dựng Recommender System ........................................................42
3.3.4. Thử nghiệm và đánh giá ......................................................................42
CHƯƠNG 4: XÂY DỰNG HỆ THỐNG ...........................................................44
4.1. Kiến trúc hệ thống tổng quan: ....................................................................44
4.2. Kiến trúc phía Client ..................................................................................45
4.2.1. Kiến trúc hệ thống ...............................................................................45
4.2.2. Chi tiết các thành phần trong hệ thống ...............................................45



4.3. Kiến trúc phía Server .................................................................................48
4.3.1. Kiến trúc hệ thống ...............................................................................48
4.3.2. Chi tiết các thành phần trong hệ thống ...............................................48
4.4. Sơ đồ Use case ...........................................................................................52
4.4.1. Danh sách các tác nhân .......................................................................53
4.4.2. Danh sách Use case .............................................................................53
4.4.3. Mô tả chi tiết Use case ........................................................................55
4.5. Sơ đồ hoạt động..........................................................................................67
4.5.1. Sơ đồ hoạt động cho Xem thông tin phim ..........................................67
4.5.2. Sơ đồ hoạt động cho Xem phim ..........................................................68
4.5.3. Sơ đồ hoạt động cho Gợi ý phim ........................................................69
4.6. Thiết kế cơ sở dữ liệu .................................................................................70
4.6.1. Sơ đồ các bảng ....................................................................................70
4.6.2. Danh sách các bảng dữ liệu .................................................................70
4.6.3. Mô tả chi tiết các bảng dữ liệu ............................................................73
CHƯƠNG 5: THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG .................................87
5.1. Sơ đồ liên kết màn hình .............................................................................87
5.2. Danh sách các màn hình .............................................................................87
5.3. Mơ tả chi tiết các màn hình ........................................................................90
5.3.1. Màn hình Get Started ..........................................................................90
5.3.2. Màn hình Login ...................................................................................92
5.3.3. Màn hình Signup .................................................................................93
5.3.4. Màn hình Verify Signup .....................................................................95
5.3.5. Màn hình Forgot pass ..........................................................................97


5.3.6. Màn hình Verify forgot pass ...............................................................98
5.3.7. Màn hình New pass ...........................................................................100
5.3.8. Màn hình Congrats ............................................................................101
5.3.9. Màn hình Home.................................................................................103

5.3.10. Màn hình Movie list ........................................................................104
5.3.11. Màn hình Movie detail ....................................................................106
5.3.12. Màn hình Actor detail .....................................................................107
5.3.13. Màn hình Actor search ....................................................................109
5.3.14. Màn hình Search filter .....................................................................110
5.3.15. Màn hình Watching .........................................................................111
5.3.16. Màn hình Profile .............................................................................112
5.3.17. Màn hình Saved...............................................................................112
5.3.18. Màn hình Review ............................................................................114
5.3.19. Màn hình History ............................................................................115
5.3.20. Màn hình Settings ...........................................................................116
CHƯƠNG 6: CÀI ĐẶT VÀ KIỂM THỬ .......................................................118
6.1. Kiểm thử phía ứng dụng ..........................................................................118
6.1.1. Môi trường kiểm thử .........................................................................118
6.1.2. Kết quả kiểm thử ...............................................................................118
6.2. Kiểm thử hệ thống khyến nghị .................................................................118
6.2.1. Môi trường kiểm thử .........................................................................118
6.2.2. Kết quả kiểm thử ...............................................................................119
CHƯƠNG 7: TỔNG KẾT ................................................................................121
7.1. Kết quả đạt được ......................................................................................121


7.2. Hạn chế.....................................................................................................121
7.3. Hướng phát triển ......................................................................................121
TÀI LIỆU THAM KHẢO ....................................................................................122


DANH MỤC HÌNH
Hình 2.1: Flutter ........................................................................................................25
Hình 2.2: Ngơn ngữ lập trình Dart ............................................................................27

Hình 2.3: ASP.Net Core ............................................................................................29
Hình 2.4: Ngơn ngữ lập trình C# ..............................................................................30
Hình 2.5: MS SQL Server .........................................................................................31
Hình 2.6: Microsoft-ML............................................................................................33
Hình 3.1: Cách thức hoạt động của Collaborative filtering ......................................37
Hình 3.2: Utility Matrix ............................................................................................38
Hình 3.3: Hình minh họa thuật tốn Matrix Factorization ........................................39
Hình 3.4: Hình minh họa thuật tốn Matrix Factorization dưới dạng biểu thức ......39
Hình 3.5: Hàm mất mát của thuật tốn Matrix Factorization ...................................40
Hình 3.6: Hàm tối ưu W khi cố định X .....................................................................40
Hình 3.7: Hàm tối ưu X khi cố định W .....................................................................40
Hình 3.8: Hình minh họa bộ dữ liệu train .................................................................41
Hình 3.9: Đánh giá mơ hình và kết quả dự đốn của từng mã khóa học-thời gian ..42
Hình 4.1: Sơ đồ kiến trúc hệ thống tổng quan ..........................................................44
Hình 4.2: Sơ đồ kiến trúc hệ thống phía client .........................................................45
Hình 4.3: Sơ đồ kiến trúc hệ thống phía server.........................................................48
Hình 4.4: Sơ đồ Use case ..........................................................................................52
Hình 4.5: Xem thơng tin phim Activity Diagram .....................................................67
Hình 4.6: Xem phim Activity Diagram ....................................................................68
Hình 4.7: Gợi ý Activity Diagram ............................................................................69
Hình 4.8: Sơ đồ liên kết các màn hình ......................................................................70
Hình 5.1: Sơ đồ liên kết các màn hình ......................................................................87
Hình 5.2: Màn hình Get Started ................................................................................91
Hình 5.3: Màn hình Login .........................................................................................92
Hình 5.4: Màn hình Signup .......................................................................................94
Hình 5.5: Màn hình Verify Signup ...........................................................................96


Hình 5.6: Màn hình Forgot pass ................................................................................97
Hình 5.7: Màn hình Verify forgot pass .....................................................................99

Hình 5.8: Màn hình New pass .................................................................................100
Hình 5.9: Màn hình Congrats ..................................................................................102
Hình 5.10: Màn hình Home ....................................................................................103
Hình 5.11: Màn hình Movie list ..............................................................................105
Hình 5.12: Màn hình Movie detail ..........................................................................106
Hình 5.13: Màn hình Actor detail ...........................................................................108
Hình 5.14: Màn hình Actor search ..........................................................................109
Hình 5.15: Màn hình Search filter...........................................................................110
Hình 5.16: Màn hình Watching ...............................................................................111
Hình 5.17: Màn hình Profile ...................................................................................112
Hình 5.18: Màn hình Saved ....................................................................................113
Hình 5.19: Màn hình Review ..................................................................................114
Hình 5.20: Màn hình History ..................................................................................115
Hình 5.21: Màn hình Settings .................................................................................116
Hình 6.1: Kết quả đánh giá mơ hình bằng đánh giá hồi quy (Regression Evaluation)
.................................................................................................................................119
Hình 6.2: Tích hợp vào API ....................................................................................120


DANH MỤC BẢNG
Bảng 4.1: Các thành phần trong hệ thống phía client ...............................................47
Bảng 4.2: Các thành phần trong hệ thống phía server ..............................................51
Bảng 4.3: Danh sách các Use case ............................................................................54
Bảng 4.4: Đặc tả use case dăng nhập ........................................................................56
Bảng 4.5: Đặc tả use case quên mật khẩu .................................................................57
Bảng 4.6: Đặc tả use case đăng ký tài khoản ............................................................58
Bảng 4.7: Đặc tả use case tra cứu phim, diễn viên ...................................................58
Bảng 4.8: Đặc tả use case yêu thích phim .................................................................59
Bảng 4.9: Đặc tả use case đánh giá phim ..................................................................60
Bảng 4.10: Đặc tả use case xem phim ......................................................................60

Bảng 4.11: Đặc tả use case tải phim .........................................................................61
Bảng 4.12: Đặc tả use case xem thông tin phim .......................................................62
Bảng 4.13: Đặc tả use case xem thông tin diễn viên.................................................63
Bảng 4.14: Đặc tả use case đổi mật khẩu ..................................................................63
Bảng 4.15: Đặc tả use case quản lý yêu thích ..........................................................64
Bảng 4.16: Đặc tả use case quản lý lịch sử ...............................................................65
Bảng 4.17: Đặc tả use case quản lý đánh giá ............................................................66
Bảng 4.18: Đặc tả use case cài đặt ứng dụng ............................................................66
Bảng 4.19: Danh sách các bảng ................................................................................73
Bảng 4.20: Mô tả bảng USER ...................................................................................74
Bảng 4.21: Mô tả bảng COUNTRY ..........................................................................74
Bảng 4.22: Mô tả bảng REVIEW .............................................................................75
Bảng 4.23: Mô tả bảng HISTORY ............................................................................75
Bảng 4.24: Mô tả bảng FAVOURITE ......................................................................76
Bảng 4.25: Mô tả bảng MOVIE_LANGUAGE........................................................77
Bảng 4.26: Mô tả bảng MOVIE ................................................................................78
Bảng 4.27: Mô tả bảng MOVIE_STATUS ...............................................................78
Bảng 4.28: Mô tả bảng DEPARTMENT ..................................................................78


Bảng 4.29: Mô tả bảng MOVIE_CREDIT ...............................................................79
Bảng 4.30: Mô tả bảng MOVIE_EXTERNAL_IDS ................................................80
Bảng 4.31: Mô tả bảng MOVIE_GENRES ..............................................................80
Bảng 4.32: Mô tả bảng MOVIE_VIDEO .................................................................81
Bảng 4.33: Mô tả bảng MOVIE_IMAGE .................................................................81
Bảng 4.34: Mô tả bảng PERSON ..............................................................................82
Bảng 4.35: Mô tả bảng GENRES .............................................................................83
Bảng 4.36: Mô tả bảng VIDEO.................................................................................83
Bảng 4.37: Mô tả bảng IMAGE ................................................................................84
Bảng 4.38: Mô tả bảng FILE.....................................................................................84

Bảng 4.39: Mô tả bảng MOVIE_VIDEO_TYPE .....................................................85
Bảng 4.40: Mô tả bảng MOVIE_IMAGE_TYPE .....................................................85
Bảng 4.41: Mô tả bảng TRAINING ..........................................................................85
Bảng 4.42: Mô tả bảng PARAMS ............................................................................86
Bảng 5.1: Danh sách các màn hình ...........................................................................90
Bảng 5.2: Mơ tả đối tượng trên màn hình Get Started ..............................................91
Bảng 5.3: Biến cố và xử lý trên màn hình Get Started .............................................91
Bảng 5.4: Mô tả đối tượng trên màn hình Login ......................................................93
Bảng 5.5: Biến cố và xử lý trên màn hình Login ......................................................93
Bảng 5.6: Mơ tả đối tượng trên màn hình Signup.....................................................95
Bảng 5.7: Biến cố và xử lý trên màn hình Signup ....................................................95
Bảng 5.8: Mơ tả đối tượng trên màn hình Verify Signup .........................................96
Bảng 5.9: Biến cố và xử lý trên màn hình Verify Signup .........................................97
Bảng 5.10: Mơ tả đối tượng trên màn hình Forgot pass ...........................................98
Bảng 5.11: Biến cố và xử lý trên màn hình Forgot pass ...........................................98
Bảng 5.12: Mơ tả đối tượng trên màn hình Verify forgot pass .................................99
Bảng 5.13: Biến cố và xử lý trên màn hình Verify forgot pass ..............................100
Bảng 5.14: Mơ tả đối tượng trên màn hình New pass ............................................101
Bảng 5.15: Biến cố và xử lý trên màn hình New pass ............................................101


Bảng 5.16: Mơ tả đối tượng trên màn hình Congrats .............................................102
Bảng 5.17: Biến cố và xử lý trên màn hình Congrats .............................................102
Bảng 5.18: Mơ tả đối tượng trên màn hình Home ..................................................103
Bảng 5.19: Biến cố và xử lý trên màn hình Home ..................................................104
Bảng 5.20: Mơ tả đối tượng trên màn hình Movie list............................................105
Bảng 5.21: Biến cố và xử lý trên màn hình Movie list ...........................................105
Bảng 5.22: Mơ tả đối tượng trên màn hình Movie detail........................................107
Bảng 5.23: Biến cố và xử lý trên màn hình Movie detail .......................................107
Bảng 5.24: Mơ tả đối tượng trên màn hình Actor detail .........................................108

Bảng 5.25: Biến cố và xử lý trên màn hình Actor detail ........................................109
Bảng 5.26: Mơ tả đối tượng trên màn hình Actor search........................................110
Bảng 5.27: Biến cố và xử lý trên màn hình Actor search .......................................110
Bảng 5.28: Mơ tả đối tượng trên màn hình Watching ............................................111
Bảng 5.29: Biến cố và xử lý trên màn hình Watching ............................................112
Bảng 5.30: Mơ tả đối tượng trên màn hình Saved ..................................................113
Bảng 5.31: Biến cố và xử lý trên màn hình Saved ..................................................113
Bảng 5.32: Mơ tả đối tượng trên màn hình Review ................................................114
Bảng 5.33: Biến cố và xử lý trên màn hình Review ...............................................114
Bảng 5.34: Mơ tả đối tượng trên màn hình History ................................................115
Bảng 5.35: Biến cố và xử lý trên màn hình History ...............................................116
Bảng 5.36: Mơ tả đối tượng trên màn hình Settings ...............................................117
Bảng 5.37: Biến cố và xử lý trên màn hình Settings...............................................117
Bảng 6.1: Kết quả kiểm thử ....................................................................................118


DANH MỤC TỪ VIẾT TẮT
#

Từ viết tắt

1

CRUD

Từ đầy đủ

Ý nghĩa

Create/Read/Update/


Là tập hợp bốn chức năng cơ bản của

Delete

lưu trữ liên tục
Sai số bình phương là một chỉ số đánh
giá đo lường sự khác biệt trung bình

2

RMSE/RMS

Root mean square

giữa các giá trị dự đoán và giá trị thực

deviation

tế. Giá trị càng thấp, chứng tỏ mơ hình
gợi ý có độc chính xác và độ tin cậy cao
hơn.
Hệ số xác định là tỷ lệ sự thay đổi trong

3

RSquared

R2


biến phụ thuộc có thể dữ đoán từ biến
độc lập. Chỉ số cho biết mục độ phù
hợp (fit) của dữ liệu đối với mơ hình.

4

5

IMDB

TMDB

Internet Movie
Database

The Movie Database

Là cơ sở dữ liệu trực tuyến về điện ảnh
thế giới. Cung cấp thông tin về phim,
đạo diễn, nhà làm phim,..v.v
Giống IMDB nhưng được do cộng
đồng tham gia đóng góp và miễn phí.


TÓM TẮT ĐỒ ÁN
Đồ án với đề tài “Xây dựng ứng dụng xem phim tích hợp gợi ý phim” tập trung vào
phân tích thực trạng và ứng dụng các cơng nghệ để từ đó xây dụng ứng dụng di động
có thể sử dụng mà không yêu cầu quá nhiều về phần cứng, phần mềm. Đáp ứng được
nhu cầu cơ bản về việc xem phim giải trí cá nhân.
Đề tài được bắt đầu từ việc tìm hiểu thực trạng, đưa ra các vấn đề cịn tồn đọng hoặc

có thể cải thiện. Xác định mục tiêu, phạm vi của đề tài cũng như các chức năng cần
có của hệ thống. Ngồi việc xử lý các nghiệp vụ cho hệ thống, nhóm cũng đã tìm
hiểu, so sánh và lựa chọn được các cơng nghệ mới và phù hợp giúp nâng cao trải
nghiệm người dùng, tối ưu chi phí phát triển và triển khai.
Nhờ việc phân tích các yêu cầu rõ ràng, thời gian phát triển ngắn và các yêu cầu, tính
năng ít thay đổi, trong quá trình phát triển đề tài đã sử dụng mơ hình Thác nước cải
tiến cho việc xây dựng hệ thống. Kết quả thu được trong giai đoạn thiết kế như kiến
trúc hệ thống, cơ sở dữ liệu, giao diện được thể hiện bằng sơ đồ người dùng, sơ đồ
tuần tự và bản thiết kế sử dụng công cụ Figma, Draw.io, StartUML. Trong giai đoạn
thực hiện, client và server được phát triển song song sử dụng Framework Flutter cho
client và ASP.NET Core MySQL cho server, công cụ phát triển Visual Studio Code,
Android Studio cùng công cụ quản lý công việc Notion. Công việc kiểm thử unit test
được thực hiện xuyên suốt quá trình phát triển và được kiểm thử tích hợp ở cuối giai
đoạn. Trong giai đoạn vận hành, server đã được triển khai lên máy chủ Azure, hoàn
toàn có thể truy cập dữ liệu thơng qua api từ bất cứ thiết bị nào gửi yêu cầu có chứa
trường xác thực dữ liệu hợp lệ.
Phần cuối cùng của khoá luận là trình bày kết quả đã thực hiện lên cuốn báo cáo, đưa
ra kết luận và hướng phát triển cho hệ thống trong tương lai.
Nội dung khoá luận được trình bày trong 7 chương:
-

Chương 01: Mở đầu

Trình bày sơ bộ về thực trạng, nhu cầu thực tế. Xác định mục tiêu và phạm vi đề tài.
-

Chương 02: Kiến thức nền tảng

Giới thiệu, trình bày các kiến thức kỹ thuật, cơng nghệ mà nhóm sử dụng.


13


-

Chương 03: Hệ thống gợi ý Recommend System

Trình bày, phân tích lý thuyết về hệ thống khuyến nghị mà nhóm sử dụng.
-

Chương 04: Xây dựng hệ thống

Trình bày kiến trúc hệ thống và danh sách các hình, bảng thiết kế hệ thống, mơ hình
hố và cơ sở dữ liệu.
-

Chương 5: Thiết kế giao diện người dùng

Trình bày chi tiết nội dung thiết kế giao diện ứng dụng.
-

Chương 6: Cài đặt và kiểm thử

Tổng quát kết quả kiểm thử của ứng dụng về cả hai phía client và server.
-

Chương 7: Tổng kết

Những kết quả đạt được sau khi kết thúc đồ án. Những hạn chế, khó khăn trong q
trình phát triển đồ án và nêu ra hướng phát triển trong tương lai.


14


ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng xem phim hỗ trợ gợi ý phim sử dụng hệ thống
khuyến nghị
Cán bộ hướng dẫn:
- ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 3/3/2023 đến ngày 17/6/2023 (kết thúc Đồ án 1)
Sinh viên thực hiện:
Trần Đình Khơi – 20520594
Trần Văn Thiệt – 20521956
Nội dung đề tài
1. Lý do chọn đề tài:
Trong xã hội phát triển ngày nay, khi nhu cầu giải trí của con người ngày càng tăng
cao thì việc lựa chọn hình thức giải trí phù hợp với từng người cũng rất đa dạng.
Trong đó việc xem phim được xem như là lựa chọn phổ biến nhất để giải stress sau
những giờ làm việc căng thẳng. Tuy nhiên, khơng ít trong chúng ta đã trải qua việc
bỏ ra hàng giờ để tìm được bộ phim ưng ý nhưng kết quả lại là sự chán nản và bỏ
cuộc. Vì vậy, việc có cho mình một bộ sưu tập phim được cá nhân hóa là vơ cùng
thiết yếu, tăng chất lượng cuộc sống và tiết kiệm thời gian.
Để giải quyết vấn đề trên, nhóm em quyết định chọn đề tài Xây dựng ứng dụng
xem phim hỗ trợ gợi ý phim, mục đích để đề xuất nội dung phim phù hợp với người
dùng dựa trên lịch sử xem phim của họ, từ đó là tăng trải nghiệm người dùng, tiết
kiệm thời gian và phù hợp với thị hiếu xem phim của người dùng.
2. Mục tiêu: bao gồm 2 mục tiêu chính:
Xây dựng Model đề xuất phim dựa trên lịch sử những phim đã xem:
- Đề xuất nhanh, phù hợp với sở thích của người xem.


15


Xây dựng ứng dụng:
- Ứng dụng có thể chạy trên mobile với giao diện thân thiện
- Chạy được đa nền tảng IOS và Android.
- Xác thực người dùng
- Tra cứu thông tin về phim, tiểu sử của các diễn viên.
- Xem phim
- Tìm kiếm phim theo thể loại, diễn viên, theo năm cơng chiếu, …
- Tích hợp gợi ý phim
- Thông báo cho người dùng khi phù hợp sắp được cơng chiếu.
- Lưu phim u thích
- Chia sẻ phim (tìm hiểu thêm)
- Tải phim
- Đánh giá/review phim
3. Phạm vi:
Phạm vi mơi trường: IOS, Android
Phạm vi chức năng:
Đối với Model:
- Có khả năng đưa ra đề xuất dựa vào lịch sử phim đã xem, thể loại phim
mà người xem quan tâm.
Đối với ứng dụng:
- Cung cấp giao diện thân thiện, tiện dụng người dùng, cung cấp đầy đủ, hỗ
trợ tìm kiếm thông tin về phim, diễn viên, đạo diễn và cho phép xem phim
trên thiết bị.
- Cung cấp chức năng đề xuất phim phim người dùng đang tìm phim để xem
hoặc kết thúc việc xem phim nào đó.
4. Đối tượng sử dụng:
Tất cả mọi người có nhu cầu xem phim với sự cá nhân hóa về sở thích.


16


5. Phương pháp thực hiện:
Phương pháp làm việc:
-

Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online và offline
dưới sự hướng dẫn của giảng viên hướng dẫn.

Phương pháp nghiên cứu:
-

Phân tích nhu cầu sử dụng của đối tượng người dùng.

-

Nghiên cứu tài liệu các công nghệ liên quan.

Phương pháp cơng nghệ:
-

Tìm hiểu tích hợp khuyến nghị trên ứng dụng mobile

-

Xây dựng giao diện mobile để người dùng có thể tương tác với ứng dụng

-


Tìm hiểu về hệ thống khuyến nghị

-

Quản lý source code thông qua Github

-

Sử dụng Google doc, Office 365 Word… để quản lý tiến trình và tài liệu

6. Nền tảng công nghệ:
-

Front-end: Flutter

-

Back-end: ASP.Net Core

-

Database: SQL Server

-

Visual Studio

-


Android Studio

-

SQL Server Management Studio

-

Microsoft.ML

7. Kết quả mong đợi:
-

Model có khả năng đề xuất nhanh, chính xác và phù hợp với từng cá nhân.

-

Ứng dụng di động hoạt động ổn định, có thể xử lý thơng tin nhanh chóng…

8. Hướng phát triển của đề tài:
-

Thêm các tính năng chọn phim dựa vào cảm xúc hiện tại, sở thích của người
xem.

17


-


Mở rộng phạm vi, khơng chỉ phim mà cịn nhạc,..

9. Kế hoạch làm việc:
Thời gian thực hiện từ ngày 3/3/2023 đến ngày kết thúc mơn Đồ án 1.
Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Tìm hiểu về các hướng tiếp cận Recommendation system và hoàn
thiện model. Xây dựng giao diện người dùng cơ bản. Gồm 3 sprint với thời gian
mỗi sprint kéo dài 2 tuần:
Thời gian: 3/3/2023 – 14/4/2023
Sprint 1: Đăng ký đề tài, soạn đề cương chi tiết
Sprint 2: Khâu chuẩn bị, chuẩn bị tài liệu, tìm hiểu cơng nghệ
Sprint 3: Xây dựng ứng dụng, tập trung vào các phần liên kết (liên kết Database,
liên kết model)
Sprint

Thời gian

Sprint 1

3/3/2023 – 17/3/2023

Công việc dự kiến
Đăng ký đề tài
Tìm hiểu và xác định phạm vi,
hướng phát triển của đề tài
Tìm hiểu và phân tích các u cầu
nghiệp vụ của đề tài
Viết tài liệu, đề cương chi tiết

Sprint 2


17/3/2023 – 31/3/2023

Tìm hiểu cơng nghệ.
Tìm hiểu về các loại khuyến nghị,
các thuật toán.
Xây dựng codebase.

Sprint 3

31/3/2023 – 14/4/2023

Xây dựng CSDL.
Xây dựng model dựa trên dataset
của Movielens.

18


Chuẩn bị báo cáo giữa kì
Giai đoạn 2: Hồn thiện các tính năng của ứng dụng, tích hợp khuyến nghị vào
ứng dụng, triển khai và kiểm thử ứng dụng, viết báo cáo.... Gồm 4 sprint với thời
gian mỗi sprint kéo dài 2 tuần:
Thời gian: 14/4/2023 – 26/5/2023 – kết thúc Đồ án 1
Sprint 4: Xây dựng tính năng và tích hợp khuyến nghị vào ứng dụng.
Sprint 5: Tiếp tục hoàn thiện và kiểm thử ứng dụng.
Sprint 6: Hồn thiện tính năng, kiểm thử và triển khai ứng dụng
Sprint 7: Tổng kiểm thử và viết báo cáo
Sprint


Thời gian

Công việc dự kiến

Sprint 4

14/4/2023 – 28/4/2023

Tích hợp khuyến nghị
vào trong ứng dụng.
Xây dựng tính năng cho
ứng dụng.

Sprint 5

28/4/2023 – 12/5/2023

Tiếp tục hồn thiện các
tính năng của ứng dụng
Kiểm thử ứng dụng

Sprint 6

12/5/2023 – 26/5/2023

Tiếp tục hồn thiện các
tính năng của ứng dụng
Kiểm thử ứng dụng
Triển khai ứng dụng


Sprint 7

26/5/2023 – kết thúc

Tổng kiểm thử ứng dụng
đã triển khai
Viết báo cáo

19


10. Phân công công việc:
Công việc
Công việc chung

Mô tả công việc
Tìm hiểu cơng nghệ
Phân tích u cầu
Xây dựng model
Kiểm thử ứng dụng
Triển khai ứng dụng
Chuẩn bị tài liệu, viết báo cáo

Cơng việc cá nhân

Trần Văn Thiệt

Trần Đình Khơi

Lập trình Back-end.


Lập trình Front-end.

Xây dựng CSDL.

Liên kết CSDL.

Quản lý tiến độ.
Tp.Hồ Chí Minh, ngày 17 tháng 3 năm 2023

20


NỘI DUNG ĐỒ ÁN
CHƯƠNG 1: MỞ ĐẦU
1.1. Lý do chọn đề tài
Trong xã hội phát triển ngày nay, khi nhu cầu giải trí của con người ngày càng
tăng cao thì việc lựa chọn hình thức giải trí phù hợp với từng người cũng rất đa dạng.
Trong đó việc xem phim được xem như là lựa chọn phổ biến nhất để giải stress sau
những giờ làm việc căng thẳng. Tuy nhiên, khơng ít trong chúng ta đã trải qua việc
bỏ ra hàng giờ để tìm được bộ phim ưng ý nhưng kết quả lại là sự chán nản và bỏ
cuộc. Vì vậy, việc có cho mình một bộ sưu tập phim được cá nhân hóa là vơ cùng
thiết yếu, tăng chất lượng cuộc sống và tiết kiệm thời gian.
Để giải quyết vấn đề trên, nhóm em quyết định chọn đề tài Xây dựng ứng dụng xem
phim hỗ trợ gợi ý phim, mục đích để đề xuất nội dung phim phù hợp với người dùng
dựa trên lịch sử xem phim của họ, từ đó là tăng trải nghiệm người dùng, tiết kiệm
thời gian và phù hợp với thị hiếu xem phim của người dùng.
Ứng dụng cung cấp những tính năng tiện ích giúp người dùng dễ dàng tiếp cận
các nguồn phim mới nhanh chóng, hiện thời, phù hợp với sở thích cá nhân dựa trên
hành vi người dùng. Ngồi ra cịn có thể quản lý lịch sử xem phim, lưu những phim

đã xem, đánh giá phim và quản lý tài khoản cá nhân.

21


1.2. Mục đích nghiên cứu
1.2.1. Khách quan
Đáp ứng nhu cầu cho những người dùng cần xem phim giải trí sau những giờ
làm việc căng thẳng.
Cung cấp một ứng dụng đa nền tảng, tăng khả năng tiếp cận người dùng, không
yêu cầu cao về mặt phần cứng.
Là một ứng dụng xem phim làm trịn vai trị, khơng thêm bớt những tính năng
dư thừa và khơng có giá trị đối với người dùng.
1.2.2. Chủ quan
Nhóm đã ln có sự tị mị và hứng thú đối với các công nghệ liên quan đến
đề tài như Cross Platform, đặc biệt hơn là máy học. Thông qua đề tài và sự dẫn dắt
của giáo viên hướng dẫn để mở mang hiểu biết, nghiên cứu và có được một cái nhìn
tổng quan hơn, chun sâu hơn về các cơng nghệ và vấn đề trên.
Bên cạnh đó, nhóm cho rằng đây là một cơ hội để có thể phát triển và áp dụng
các kĩ năng đã học vào thực tế, tạo nên một thành phẩm từ những năm học vừa qua.
1.3. Đối tượng nghiên cứu
1.3.1. Các công nghệ nghiên cứu:
-

Đối với thiết kế hệ thống:
▫ Repository patten – BloC pattern
▫ Kết nối và trao đổi giữa client và server thông qua RESTfull API

-


Đối với Database: MSSQL Server

-

Đối với Application:
▫ Flutter
▫ Dart

-

Đối với Recommender System:
▫ Microsoft Recommenders
▫ C# và .NET

22


-

Khác
▫ Dữ liệu phim lấy từ TMDB
▫ Cấu hình ứng dụng bằng Firebase

1.3.2. Đối tượng sử dụng đề tài hướng đến:
Tất cả mọi người có nhu cầu xem phim giải trí trực tuyến.
1.4. Phạm vi nghiên cứu
1.4.1. Phạm vi mơi trường:
Ứng dụng di động chạy trên 2 nền tảng Android và IOS.
1.4.2. Phạm vi chức năng:
-


Đối với hệ thống gợi ý:
▫ Có khả năng đưa ra kết quả gợi ý chuẩn xác dựa trên hành vi người
dùng như đánh giá phim, lịch sử xem phim.

-

Đối với ứng dụng:
▫ Cung cấp chức năng tra cứu phim và diễn viên.
▫ Cung cấp các chức năng quản lí tài khoản bao gồm thơng tin cá nhân,
lịch sử xem phim, đánh giá, yêu thích phim.
▫ Cung cấp chức năng xác thực người dùng.
▫ Cung cấp một trình xem phim trực tiếp trên ứng dụng

1.5. Mục tiêu đề tài
1.5.1. Xây dựng mơ hình:
▫ Xây dựng mơ hình (Model) đề xuất phim dựa trên lịch sử, hành vi của
người dùng về những phim đã xem như đánh giá, bình luận.
▫ Đề xuất nhanh, độ chính xác cao và phù hợp với sở thích của người
xem.
1.5.2. Xây dựng ứng dụng:
▫ Ứng dụng có thể chạy trên mobile với giao diện thân thiện.

23


×