Giao diện trang quản Giao diện trang quản sửa thông tin người dùng của lí các thao tác của các admin 113 i các request của ứng dụng đôi với 114 Giao dién trang quan li video ... Sản phẩm
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HQC CONG NGHE THONG TIN
KHOA HE THONG THONG TIN
NGUYEN QUANG VU
KHOA LUAN TOT NGHIEP
XAY DUNG WEBSITE CHIA SE VIDEOTÍCH HỢP HE THONG KHUYEN NGHỊ NOI DUNG
BUILD VIDEO SHARING WEBSITE WITH RECOMMENDATION SYSTEM
KY SU NGANH HE THONG THONG TIN
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HỌC CÔNG NGHỆ THONG TIN
KHOA HE THONG THONG TIN
NGUYEN QUANG VU - 16521455
KHOA LUAN TOT NGHIEP
XAY DUNG WEBSITE CHIA SE VIDEOTÍCH HỢP HE THONG KHUYEN NGHỊ NOI DUNG
BUILD VIDEO SHARING WEBSITE WITH RECOMMENDATION SYSTEM
KY SU NGANH HE THONG THONG TIN
GIANG VIEN HUONG DAN
THS NGUYEN HO DUY TRÍ
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số
Ắ eee eee ee NAY của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
= — Chủ tịch.
PA h — — Thư ký.
nent te ~ Ủy viên
Trang 4LỜI CẢM ƠN
Em xin gửi lời cảm ơn đến tập thé giảng viên trường Dai học Công nghệ thông
tin — Đại học Quốc Gia TP.HCM trong suốt quãng thời gian theo học vừa qua, đã tận
tình truyền day, hỗ trợ sinh viên trong quá trình học tập Em đặc biệt gửi lời cám ơn
chân thành đến Thầy Nguyễn Hồ Duy Trí là giảng viên hướng dẫn khóa luận cũng như
chủ nhiệm của lớp Thay đã tận tình hướng dẫn, bỏ công sức tìm tài liệu và tạo mọi điềukiện thuận lợi có thé giúp em hoàn thành khóa luận này Thay luôn nhiệt tình trao đổi,
và giải đáp những thắc mắc của sinh viên một cách nhanh chóng và đầy đủ
Em xin chân thành biết ơn sự tận tình dạy dỗ và sự giúp đỡ của tất cả quý thầy
cô tại trường Dai hoc Công Nghệ Thông Tin, đặc biệt là các thầy cô trong khoa HệThống Thông Tin, các thầy cô đã tận tình truyền đạt những kiến thức quý giá cho chúng
em trong suốt hơn 4 năm học qua, những kiến thức học được từ giảng đường sẽ là hànhtrang quý báu đề chúng em có thẻ tiếp tục trên con đường học tập, nghiên cứu, làm việc
cũng nhưng trong quá trình hoàn thiện bản thân của mình.
Tiếp theo, em xin được phép gửi lời cảm ơn đặc biệt đến gia đình và người thân.Gia đình luôn là chỗ dựa tỉnh thần vững chắc, là nguồn động lực lớn giúp em vượt quamọi khó khăn, phân đấu hoàn thành tốt khóa luận này
Cuối cùng, nhóm em xin gửi lời cảm ơn đến các anh, chị và các bạn sinh viên
trường Đại học Công nghệ Thông tin đã nhiệt tình hỗ trợ, chia sẻ ý kiến, góp ý giúpchúng tôi trong suốt thời gian thực hiện khóa luận
Một lần nữa, em xin chân thành cảm ơn và xin gửi lời chúc sức khỏe đến quýthay, cô Kính chúc khoa Hệ Thống Thông Tin ngày càng phát triển và thành công trong
sự nghiệp “lái đò” cao quý.
Em xin chân thành cảm ơn quý thầy cô!
Xin trân trọng cảm ơn!
Trang 5MỤC LỤC
TOM TAT KHÓA LUẬN -: 22-©222222+22EE22EE1222122211222112211122112211 2211 221.2 1CHƯƠNG 1: TONG QUAN .ossesssssssesssssssssscssssesssessssesssscsssecsssesssscssuecsssesasecsssecsseeesseees 2
.1 Đặt vấn đề -. + s2 2 1221102112111211211211211 111211 110111 11111111 2Ly 2
+3 Khao sat hién con a -(“41111đ 3
4 Đối tượng và phạm vi nghiên cứu
2.2 Các lý thuyết được sử dung dé phát triển hệ thống gợi ý
2.2.1 TF-IDF (Term Frequency — Inverse Document Frequency)
2.2.2 Kỹ thuật chuẩn hóa dữ liệu Min — Max Scaling
2.2.3 Công thức tính độ tương đồng Cosine Similarity
2.3 Các công nghệ chính trong dự án
2.3.1 PHP — Framework Laravel.
2.3.2 Python — Framework Flask
2.3.3 Javascript — Framework ReactJS
2.3.4 Hệ quản tri cơ sở dữ liệu MySQL
2.4 Kiến trúc của dự án -. -522+++222222222211227211227112227111271112221111 2.111 c.rxeE 17
CHƯƠNG 3: PHAN TÍCH VÀ THIET KE HỆ THÓNG ¿- ¿5+2 20
3.1 Phân tích hiện trạng nhu cầu
3.1.1 Yêu cầu chức năng “
3.1.2 Yêu cầu phi chức năng : ¿-©22+22++2EE++EEESEEEtEEEEtEEkrerkrrerrrrrrrree
3.2 Phân tích các usecase của hệ thống - 2+ 2+++2++2EE+t2EEverrkrerrrrrrrree3.2.1 Danh sách các tác nhân của hệ thống
3.2.2 Danh sách các usecase của hệ thống
Trang 63.3 Sơ đồ hoạt động của các usecase (Activity Diagram)
3.4 Sơ dé tuần tự của các usecase (Sequence Diagram) : z+c:s+csce¿ 28
3.5 Phân tích và thiết kế cơ sở dữ liệu
3.5.1 Sơ đồ cơ sở dữ liệu
3.2.2 Mô tả các bảng trong cơ sở dữ liệu.
3.6 Xây dựng giao diỆn - + St 1 21 2 511121211112 01010100 0101010 tr 37
CHƯƠNG 4: XÂY DUNG VÀ TRIÊN KHAI HỆ THÓNG -+ 43
4.1 Mô tả khái quát các thành phan trong hệ thống 2-2222 43
AS K&t qua AMM remem, 6 Zố -
4.5 Module web app Vtube
4.5.1 Môi trường triển khai
9 009)1e618.4200000010117 65
Trang 7Các sơ đồ hoạt động của các chức năng khác
Các sơ đồ tuần tự của các chức năng khác -¿-¿22++22+++22x++zvxesrxxrsrseee 87Các giao diện khác trong hệ thong c.ccccccssessssesssessseesssessssesssecssessssecessecsseesssecesees 97
Tài liệu tham khảo 552222 2t 2t x3 3E t1 re 116
Trang 8DANH MỤC HÌNH
Danh mục hình ảnh chương 1
Hình | - 1 Giao diện trang chủ nền tảng Youtube
Hình 1 - 2 Giao diện trang chủ nền tang Netflix
Danh mục hình ảnh chương 2
Hình 2 - 1 Mô hình phương pháp Content-based Filtering
Hình 2 - 2 Mô tả phương pháp User-based Collaborative-filtering “ Hình 2 - 3 Mô hình MVC ¿+2 2+ 2222 2221222222121 rree
Danh mục hình ảnh chương 3
Hình 3 - 1 So đồ usecase dành cho tat cá các loại người dùng hệ thống 2Hình 3 - 2 Sơ đồ usecase các chức năng chính của Admin
Hình 3 - 3 Sơ đồ hoạt động của chức năng lấy lại mật khâu
Hình 3 - 4 Sơ đồ hoạt động của chức năng xem video
Hình 3 - 7 Sơ đồ tuần tự của chức năng lấy lại mật khâu
Hình 3 - 9 Sơ đồ tuần tự chức năng thích video
Hình 3 - 10 Sơ đồ tuần tự chức năng fạO VI€O ¿- ¿5+5 2t S* se tre
Hình 3 - 11 Sơ đồ cơ sở dữ liệu của hệ thông
Hình 3 - 12 Giao diện trang chủ Vtube — 1
Hình 3 - 13 Giao diện trang chủ Vtube - 2
Hình 3 - 14 Giao diện trang xem video - 1
Hình 3 - 15 Giao diện trang xem video 2
Hình 3 - 16 Giao diện trang tạo video
Hình 3 - 17 Giao diện xem livestream
Danh mục hình ảnh chương 4
Hình 4 - 1 Mô hình tổng quát các thành phan của hệ thông Vtube
Hình 4 - 2 Định dạng dữ liệu ban đầu của dit liệu categories
Hình 4 - 3 Dinh dang dữ liệu ban đầu của đữ liệu videos
Hình 4 - 4 Giao diện trang import đữ liệu vào hệ thống
Hình 4 - 5 Mô tả quá trình chèn code javascript vào trình duyệt đê crawl dữ liệu 47
Hình 4 - 6 Mô tả sau khi chạy code javascript trên trình duyệt dé crawl dữ liệu
Hình 4 - 7 Sau khi convert dữ liệu
Hình 4 - 8 Biéu đồ phân phối dir liệu của thời lượng video
- -Hình 4 - 9 Biểu đồ phân phối đữ liệu của số lượng bình luận
Hình 4 - 10 Chuẩn hóa số lượng bình luận
Hình 4 - 11 Chuẩn hóa các dữ liệu
Trang 9Hình 4 - 17 Mô hình kết nối giữa 2 module web app và recommendation
Hình 4 - 18 Network của client side chạy các api đề lay dữ liệu trước
Hình 4 - 19 API cập nhật gợi ý sẽ luôn chạy sau cùng
Hình 4 - 20 Giao diện quản lí app Vtube trong Pusher
hoạt động chức năng không thích video
oạt động của chức năng thích bình luận
hoạt động của chức năng không thích bình luận
oạt động của chức năng theo dõi nghệ sĩ hoạt động của chức năng ngưng theo dõi nghệ sĩ 72 hoạt động của chức năng xem trang cá nhân người
Sơ đồ hoạt động của chức năng gửi tin nhắn 74
Sơ đồ hoạt động của chức năng thay đổi thông tin cá nhân
hức năng thích video.
hức năng tao video
ức năng đăng kí tài khoản
oO»
lồ tuần tự chức năng đăng nhập
hức năng xem video
ức năng thích video hức năng bình luận hức năng theo dõi nghệ si.
ức năng xem trang thông tin người dùng
Trang 10ụ lục chương 3 - 57 Giao diện trang tạo sự kiện livestream
lục chương 3 - 31 Sơ dé tuần tự chức năng xem danh sách video đã xem 92
ụ lục chương 3 - 32 Sơ đồ tuần tự chức năng xem danh sách video đã thích 93
lục chương 3 - 33 Sơ đồ tuần tự chức năng tìm kiếm
uc chương 3 - 35 Sơ đồ tuần tự chức năng chỉnh sửa video
lục chương 3 - 36 Sơ đồ tuần tự chức năng tạo sự kiện livestream
uc chương 3 - 37 Sơ đồ tuần tự chức năng quản lí sự kiện livestream
uc chương 3 - 38 Sơ đồ tuần tự chức năng chỉnh sửa sự kiện livestream 97
lục chương 3 - 39 Sơ dé tuần tự chức năng quản lí video
uc chương 3 - 40 Giao diện đăng kí tài khoản
lục chương 3 - 41 Giao diện đăng nhập
Giao diện thay đổi mật khẩu
Giao diện trang danh sách nghệ sĩ Giao diện trang danh sách sự kiện livestream.
Giao diện trang hiển thị theo danh mục nội dung
lục chương 3 - 48 Giao diện trang kết quả tìm kiếm
lục chương 3 - 49 Giao diện trang thông tin cá nhân
lục chương 3 - 50 Giao diện các form thay đổi thông tin người dùng
lục chương 3 - 51 Giao điện trang hiển thị các cuộc trò chuyện của người
Giao diện hộp danh sách thông báo
lục chương 3 - 58 Giao diện trang chỉnh sửa video
lục chương 3 - 59 Giao diện quản lí video của người dùng
lục chương 3 - 60 Giao diện trang quản lí sự kiện livestream của người dùng
Trang 11lục chương 3 - 65.
lục chương 3 - 73.
uc chương 3 - 74.
lục chương 3 - 75.
Giao diện trang chỉnh
Giao diện trang thêm người dùng của admin
Giao diện trang quản
Giao diện trang chỉnh
Giao diện trang quản Giao thêm, sửa các quyên.
Giao diện trang quản Giao diện trang quản
sửa thông tin người dùng của
lí các thao tác của các admin 113
i các request của ứng dụng đôi với
114
Giao dién trang quan li video l14
Giao diện trang quản li chỉ tiết từng viđeo 115
Giao diện quản lí kiểm duyệt video - 115
Trang 12DANH MỤC BANG
Danh mục bảng chương 3
Bảng 3 - 1 Danh sách tác nhân của hệ thống
Bảng 3 - 2 Bảng danh sách các usecase chính của hệ thống
Bảng 3 - 3 Danh sách các usecase chính của Admin
Bang 3 - 4 Bảng mô tả các thuộc tính của bang sers -¿5:555<+<+52 31 Bảng 3 - 5 Bang mô ta thuộc tinh bang Categories Error! Bookmark not defined Bang 3 - 6 Bang mô tả thuộc tinh bảng VideOS 6c St sskrserresrree 32 Bảng 3 - 7 Bảng mô tả thuộc tính bảng Events
Bang 3 - 8 Bang mô tả thuộc tinh bang Activities
Bang 3 - 9 Bang mô tả thuộc tính bảng CommentActions
Bảng 3
Bảng 3
Bảng 3
Bảng 3
-0 Bảng mô tả thuộc tính bảng Subscribes
1 Bảng mô tả thuộc tính bảng Conversation
2 Bảng mô tả thuộc tính bang Messages
3 Bảng mô tả thuộc tính bảng FileMessages Bảng 3 - 14 Bảng mô tả thuộc tinh bang Notifications - eee eens Bảng 3 -
Bang 3 - 16 Bang mô tả thuộc tinh bảng PlatformLogs.
Bảng 3 - 17 Bảng mô tả thuộc tính bảng WatchHistories
Trang 13DANH MỤC TỪ VIET TAT
STT Từ viết tắt Nội dung
1 CSDL Co sở dữ liệu
2 ERD Entity-relationship model
3 AWS Amazon Web Service
4 Web app Web application
Trang 14TOM TAT KHÓA LUẬN
Đề tài khóa luận “XAy dựng website chia sẻ video tích hợp hệ thống khuyến nghị
nội dung” mang tính chất ứng dụng cao, giúp người dùng có thêm những sự lựa chọnmới nhiều hơn, qua đó nâng cao trải nghiệm người dùng với nền tảng chia sẻ video
Sản phẩm được phát triển với cái tên Vtube, được xây dựng dựa trên nền tảng web app
với công nghệ backend là PHP và Python, công nghệ phía frontend là ReactJS, ngoài
những chức năng cơ bản như xem nội dung, quản lí nội dung, quản lí thông tin cá nhân,
sản phẩm Vtube còn có các chức năng nâng cao như nhắn tin giữa các người dùng, xem
nội dung trực tuyến và đặc biệt là có áp dụng hệ thống gợi ý vào sản phẩm dé năng cao
trải nghiệm người dùng Sinh viên đã tách Vtube ra làm 2 hệ thống, 2 hệ thống web app
và 1 hệ thống gợi ý để nâng cao trải nghiệm người dùng, không gây chậm, quá tải khi
dữ liệu quá nhiều
Sau khi tìm hiểu, khảo sát các ứng dụng chia sẻ video trực tuyến hiện nay sinh viênđưa ra hướng giải quyết sau:
e Tim hiểu và xây dựng phương pháp khuyến nghị dựa vào lịch sử xem video của
người dùng, thói quen xem video của người dùng.
e - Xây dựng ứng dụng với giao diện bắt mắt, dé sử dung, tập trung vào những chức
năng thực sự cần thiết
e Công nghệ sử dụng xây dựng hệ thống: PHP (Framework Laravel), Javascript
(Framework ReacJS), MySQL, AWS.
e Céng cụ xây dựng module gợi ý: Python (Flask framework)
Trang 15CHUONG 1: TONG QUAN
Ở chương dau tiên sinh viên sẽ khái quát vấn dé đặt ra và mục tiêu của dé tai, cùng
với đó là khảo sát hiện trạng và trình bày những nội dung sẽ thực hiện trong khóa luận,
bố cục của báo cáo Giúp cho người đọc có cái nhìn tổng thể về khóa luận
1.1 Đặt vấn đề
Internet từ lâu đã trở thành công cụ số một trong chuỗi hoạt động giải trí của conngười, từ nghe nhạc đọc sách hay xem video Người dùng internet có thể dễ dàng truy
cập vào những nên tảng giải trí và tìm kiếm nội dung mình mong muốn, tuy nhiên hiện
nay các nền tảng giải trí không những phải cung cấp đúng những gì người dùng tìm
kiếm mà phải có khả năng gợi ý những nội dung, sản phẩm mới sao cho phủ hợp với thịhiếu, thói quen của người sử dụng Trong thập kỉ tiếp theo các hệ thống gợi ý như vậy
sẽ trở nên quan trọng đối với sự thành công của các công ty, nên tảng giải trí Hệ thống
gợi ý là một trong những công nghệ quan trọng nhất hiện nay Chúng xuất hiện cũng làbởi vì sự bùng nỗ của các lựa chọn và tính bất khả thi khi khám phá một số lượng lớncác nội dung Công nghệ này đã thực sự thu hút trí tưởng tượng của cộng đồng bắt đầu
từ năm 2007, khi Netflix — khi đó đang kinh doanh cho thuê DVD qua thư tín — đã khởi
động một cuộc thi mở với giải thưởng | triệu USD cho thuật toán collaborative filtering
có thê cải thiện độ chính xác cho hệ thống của Netflix hơn 10%, một phần thưởng đãđược trao trong năm 2009 Vậy một hệ thống gợi ý làm việc ra sao và xây dựng nó nhưthế nào ? Đây chính là một trong những nội dung chính của đề tài này
1.2 Mục tiêu đề tài
e _ Hiện nay, đa số những nền tảng giải trí, chia sẻ nội dung hàng đầu đều đã có riêng
cho mình một hệ thống khuyến nghị cao cấp như Youtube, Netflix, Facebook
nhưng phan lớn đến từ nước ngoài Nhận thấy đây sẽ là một xu hướng mà cácnền tảng giải trí công ở Việt Nam cần phải đây mạnh
¢ Mục tiêu của dé tài là xây dựng một trang web chia sẻ nội dung video có khả
năng thu hút người dùng và gợi ý được những nội dung đúng và phù hợp cho từng cá nhân.
e Sản phẩm có giao diện bắt mắt, thân thiện và dễ sử dụng
¢ San phẩm cung cấp những chức năng cơ bản của một nền tang chia sẻ video, nội
dung trực tuyến, đó là xem video, tương tác với video, quản lí thông tin cá nhân,
quản lí các nội dung đã tương tác.
e _ Với module gợi ý khi hoạt động sẽ không gây cản trở cho hiệu năng của web app,
đồng thời phải hoạt động một cách chính xác
Trang 161.3 Khảo sát hiện trạng
Các nền tảng chia sẻ video, nội dung trực tuyến hiện nay khá nhiều, có thể kể đến
những cái tên như Youtube, Netflix, HBO Max, FPT Play nhưng nổi bật hơn ca vẫn là
Youtube và Netflix.
e Nén tảng Youtube:
FP) tuy tình đến Lời ƯỜNGMẬT gi đˆ MANKICH SYKIEN VINH BAC BO
© bá rên, Hom VÀ LỜI NÓI DỐI KHÔNG KHIẾP Ni
Top news
Hình 1 - 1 Giao diện trang chủ nên tảng Youtube
Trang 17e Nén tang Netflix
Giới thiệu: Netflix là dịch vụ xem video trực tuyến của Mỹ, nội dung chủ yếu là
phim và các chương trình truyền hình, rất phổ biến ở Mỹ và nhiều nước khác trên thế
giới mang đến đa dạng các loại chương trình truyền hình, phim, phim tài liệu đoạt giảithưởng và nhiều nội dung khác trên hàng nghìn thiết bị có kết nói Internet
NETFLIX
Unlimited:movies, TV
shows, and more.
Hình 1 - 2 Giao diện trang chủ nên tang Netflix
Nhận xét: Nhìn chung các nền tảng chia sẻ nội dung trực tuyến, video nồi tiếnghiện nay đều có các chức năng chính như tìm kiếm, xem video, lưu trữ video, ngoài racòn phải tích hợp hệ thống gợi ý riêng, mỗi hệ thống gợi ý của từng nền tảng có những
đặc trưng riêng, nhưng đều có mục tiêu chung là đưa tới cho người dùng càng nhiều sản
phẩm ưa thích càng tốt, giúp nâng cao trải nghiệm của người dùng
1.4 Đối tượng và phạm vi nghiên cứu
Ở mục này sinh viên sẽ làm rõ các đối tượng và phạm vi nghiên cứu của khóa luận.1.4.1 Đối tượng
Khóa luận tập trung xây dựng, phát triển một nền tảng chia sẻ video và nội dung trực
tuyến, sản phẩm có những chức năng cơ bản như xem video, tương tác với video, quản
lí thông tin cá nhân cũng như các thông tin tương tác sinh ra trong quá trình sử dụng sản
phẩm Ngoài ra sản phẩm còn áp dụng hệ thống gợi ý nhằm cải thiện trải nghiệm cho
người dùng và giúp người dùng có thé tiếp cận nhiều nội dung ưa thích một cách phong
Trang 18phú Sản phẩm hướng tới dành cho mọi độ tuổi, mọi người và không giới hạn người
dùng.
Khóa luận tập trung vào nghiên cứu những đối tượng sau:
e _ Nghiên cứu và tìm hiểu về nhu cầu thực tế của người dùng đối với ứng dụng chia
sẻ nội đung trực tuyến
e _ Nghiên cứu về các yêu cầu và kỹ thuật trong việc xây dựng website
e Nghiên cứu về Pusher trong việc hỗ trợ xây dựng và phát triển ứng dụng thời
gian thực.
e _ Nghiên cứu về AWS trong việc lưu trữ đữ liệu
e - Nghiên cứu về Opentok ứng dụng cho việc chia sẻ nội dung trực tuyến
e Tim hiểu và ứng dụng kiến trúc Representational State Transfer (REST) giúp hỗ
trợ việc giao tiếp giữa ứng dụng di động với server
¢ Tim hiểu về kiến trúc MVC trong framework Laravel
¢ _ Nghiên cứu về công nghệ, cơ chế hoạt động và ứng dụng của Laravel, hệ quản
trị cở sở dữ liệu MySQL, trong việc xây dựng server và quản lý, lưu trữ cơ sở dữ
liệu cho ứng dụng.
¢ _ Nghiên cứu các thuật toán trong việc xây dựng hệ thống gợi ý
e Nghién cứu ngôn ngữ Python với Framework Flask
e Nghién cứu ứng dụng các kỹ thuật, thư viện hỗ trợ thiết kế giao diện ứng dụng
phù hợp với xu hướng thiết kế hiện tại trên thị trường
1.4.2 Phạm vi nghiên cứu
- Về công nghệ:
e Ngôn ngữ lập trình: PHP, Python, JavaScript
e Các framework: Laravel, ReactJS, Flask
e Thư viện: Pusher, Laravel Passport, AWS SDK
e Hé quan trị cơ sở dữ liệu: MySQL
e Quản lí source code: Github
- Về nghiên cứu:
e_ Các dịch vụ hỗ trợ: Pusher, Opentok, AWS
Trang 191.5 Phương pháp nghiên cứu
Khoá luận sử dụng các phương pháp nghiên cứu hướng đến thực tiễn dé phát triển và
hoàn thiện ứng dụng:
© Phan tích, khảo sát thực tế về nhu cầu của người sử dụng đối với các ứng dụng
chia sẻ nội dung trực tuyến, xem video
¢ Thu thập thông tin, tìm hiểu và nghiên cứu về các kỹ thuật, công nghệ, thư viện
cần thiết sẽ hỗ trợ xây dựng và phát trién đề tài
©_ Xây dựng ứng dụng, kiểm thử nhiều lần với các trường hợp giả định và quy mô
khác nhau.
e Tu đánh giá và so sánh kết qua đạt được với các mục tiêu dé ra ban đầu Điều
chỉnh, khắc phục các khuyết điểm và phát huy các ưu điểm
¢ Hoan thiện ứng dụng và đưa vào kiểm thử trong thực tế, tiên hành khảo sat, thu
thập ý kiến, đánh giá của người dùng
© Kiém thử hiệu suất của hệ thống, cải tiến hệ thống
1.6 Nội dung thực hiện
Ở mục này sinh viên sẽ mô tả khái quát các bước đề thực hiện khóa luận
Bước 1:
¢ Khảo sát các nền tảng chia sẻ video, nội dung trực tuyén
¢ Xác định những chức năng cần có và điều chỉnh cho phù hợp với dé tài
e Tim hiểu các công nghệ, thư viện hỗ trợ việc lập trình ứng dụng, chọn công
© Thiết kế cơ sở dữ liệu.
e_ Thiết kế giao diện
e Cài đặt server, các dịch vụ liên quan cần cho phục vụ dự án
e Thu thập và tìm kiếm dữ liệu.
Bước 3:
e Xây dung co sở dữ liệu.
e Xây dựng giao diện.
e Xây dựng server
Trang 20Bước 4:
e _ Xây dựng hệ thống khuyến nghị
e _ Kết nối module ứng dụng va module khuyến nghị
Bước 5:
e _ Kiểm thử và chỉnh sửa, bé sung những chức năng còn thiếu, sai sót
e Hoan chỉnh và cải thiện hiệu năng hệ thống
1.7 Bồ cục báo cáo
Về bố cục báo cáo có tổng 5 chương chính được mô tả khái quát như sau:
© _ Chương 1: Tổng quan về đề tài: Giới thiệu tổng quan nhất về nội dung đề tài, lí
do chọn đề tài, hướng đi và vấn đề cần giải quyết Nội dung chương 1 bao gồm:
Đặt vấn đề và lý do chọn đề tài, khảo sát hiện trạng, mục tiêu và phạm vi nghiên
cứu, công cụ xây dựng hệ thống và bố cục của báo cáo
© Chương 2: Cơ sở lý thuyết: Giới thiệu lý thuyết, khái niệm về hệ thống gợi ý,
các thư viện, công cụ sử dụng trong dé tài Trình bày ưu nhược điểm của từng
mục và lí do lựa chọn Trình bày chỉ tiết lý thuyết thuật toán áp dụng trong đề tài
e Chương3: Phân tích và thiết kế hệ thong: Trình bay sơ đồ tô chức của ứng dụng,
phân tích thiết kế hệ thống, thiết kế cơ sở dữ liệu, thiết kế giao diện và cácusecase, luồng chạy của ứng dụng
e Chương 4: Cài đặt và triển khai hệ thống: Trình bày những công cụ đã sử dụng,
các dịch vụ bên thứ 3 được sử dụng dé hiện thực sản phẩm của đề tài Cách áp
dụng các thuật toán phân lớp Cách triển khai hệ thống, và các thành phần làmviệc với nhau như thế nào
e Chương 5: Kết luận: Tóm tắt đề tài, thành công và hạn chế, hướng phát triển
tương lai về mặt chức năng và khả năng đề xuất cho người dùng
Ngoài ra còn có các danh mục sau:
e_ Danh mục hình: Liệt kê các hình ảnh xuất hiện trong báo cáo
© - Danh mục bảng: Liệt kê các bảng xuất hiện trong báo cáo
® Danh mục từ viết tắt: Liệt kê và điễn đạt các từ viết tắt xuất hiện trong báo cáo
Trang 21CHƯƠNG 2: CƠ SỞ LÝ THUYET
Dé hoàn thành tốt mục tiêu dé ra của khóa luận, không thé không nhắc lại những kiến
thức lý thuyết quan trọng Đặc biệt là cần làm rõ những lý thuyết về công nghệ, thuậttoán, khái niêm được sử dụng và nhắc đến trong khóa luận
2.1 Hệ thống khuyến nghị là gì ?
Hệ thống khuyến nghị (Recommender system or Recommendation system) là một
mô hình lọc thông tin (hình ảnh, video, âm nhạc, ) sử dung dữ liệu dé dự đoán xếp
hạng của những đối tượng cho người dùng
Vi du: Dựa vào lịch sử xem video dé dự đoán những videos mà người dùng có thể
quan tâm.
Hệ thống khuyến nghị hiện nay là một trong những chủ đề được nghiên cứu sôi nổi
khi mà khối lượng dữ liệu đang ngày càng lớn Những ứng dụng của mô hình này trong
thực tế hiện nay như:
¢ Youtube hiện cho người dùng những videos mà họ có thé thích
© Amazon gợi ý sản phâm dựa trên sản phâm mà người dùng mua
e Facebook, Google ưu tiên hiện quảng cáo những sản phẩm mà người dùng vừa
tìm kiếm
e Netflix gợi ý phim cho người dùng dựa trên những phim mà người dùng đã xem
Một số hướng tiếp cận của bài toán này bao gồm [1]:
1 Đề xuất dựa trên nội dung (Content-based recommendation)
2 Đề xuất lọc cộng tac (Collaborative-filtering recommendation)
3 Dé xuất kết hợp (Hybrid recommendation)
2.1.1 Content-based recommendation 1a gi ?
Phương pháp nay sử dụng những đặc tinh (features) của item được khuyến nghị Vi
dụ như một người dùng Facebook xem rất nhiều videos về “Review phim”, hệ thống sẽ
tìm những videos có chung đặc tính “Review phim” dé gợi ý cho người dùng này Hướng
tiếp cận này so sánh sự tương đồng của đặc tính giữa những items trong cơ sở đữ liệu
so với những items mà người dùng đã phản ứng tích cực (thích, xem nhiều, bình luận,
) Những đặc tính này được biểu diễn dưới dạng vec-tơ và có thể tính được độ tương
đồng thông qua các độ đo như khoảng cách euclid, độ tương đồng cosine,
Nhu đã dé cập, content-based recommendation khuyến nghị những items tương đồng
Trang 22của một người dùng có thé được mô hình hoá dựa trên lịch sử hoạt động của người dùng
đó.
Các bước chính:
e _ Biểu diễn mỗi sản phâm dưới dạng một vector thuộc tính
e Recommend các sản phẩm tương tự nhau
© _ Hoặc xây dựng profile người dùng theo các thuộc tính sản phẩm và recommend
sản phẩm có thuộc tính phù hợp với profile người dùng
Trong khoá luận này, đối với bài toán khuyến nghị những videos tương đồng với
những videos mà một người dùng cụ thé đã xem, sinh viên sử dụng những thông tin nhưlượt likes và dislikes của video, số lượng bình luận, thời gian chạy của video, thể loại
video, để tạo nên vec-tơ đặc trưng cho mỗi video mà người dùng đã xem, đặc biệt là
những video người dùng thích hoặc xem nhiều lần
watched
by user
similar movies
recommended
†o user
Hình 2 - 1 Mô hình phương pháp Content-based Filtering
2.1.2 Collaborative-filtering là gì ?
Trang 232.1.2.1 User-based collaborative-filtering là gì ?
Trong thuật toán này, hệ thống giả định rằng người dùng có thể thích những items
mà người dùng có cùng đặc điểm thích Đầu tiên, thuật toán tìm kiếm người dùng có
cùng mà hệ thống cho rằng có cùng sở thích với người dùng cần được khuyến nghị, sau
đó hệ thống xếp hạng và gợi ý những items mà người dùng tương tự thích cho người
Hình 2 - 2 Mô ta phương pháp User-based Collaborative-filtering
Vi du: Ba người dùng An, Bình và Thuy đều xem phim Iron Man Ngoài ra, ta biếtđược rằng An cũng thích xem phim khác là Captain America, hệ thông có thé dự đoánrằng Bình và Thuỷ có thể cũng thích xem phim Captain America nên gợi ý cho họ
2.1.2.2 Item-based collaborative-filtering là gì ?
Đối với Lọc cộng tác dựa trên sản phẩm, thuật toán này giả định rằng người dùng có thể
sẽ thích những items tương tự với những items mà người dùng này thích trước đó Bước
đầu tiên của thuật toán là tìm kiếm những items tương tự với items mà người dùng đã
thích Sau đó, hệ thống sẽ xếp hạng dựa trên độ tương đồng và gợi ý cho người dùng
Vi dụ: Một người ding đã xem phim Ant-Man Trong khi đó, hệ thống biết được rằng
Ant-Man là thể loại phim về siêu anh hùng/viễn tưởng và được sản xuất bởi Marvel
studio Do đó, những phim có đặc điểm tương tự như: Avenger, Iron-Man, sẽ được
gợi ý cho người dùng đó.
Trang 242.1.3 Hybrid recommendation là gì ?
Mỗi phương pháp đều có ưu điểm và nhược điểm riêng biệt Những nhược điểm của
các phương pháp này có thể được bù đắp bởi ưu điểm của phương pháp khác Đề xuất
kết hợp là mô hình kết hợp giữa ít nhất 02 mô hình khuyến nghị khác nhau để tận dụng
tất cả ưu điểm của các mô hình và từ đó giúp mô hình đưa ra khuyến nghị chính xác
hơn.
Đề xuất kết hợp được xây dựng chủ yếu bằng cách kết hợp giữa Đề xuất dựa trên nội
dung và Dé xuất lọc cộng tác Cụ thể, hệ thống kết hợp sẽ nhận kết quả trả về từ cả 2phương pháp và đưa ra gợi ý bằng cách lấy trung bình có trọng sé của kết quả từ cả 2
phương pháp
2.2 Các lý thuyết được sử dụng để phát triển hệ thống gợi ý
Dưới đây là các lý thuyết, thuật toán dùng đê xây dựng module Recommendation
Sinh viên đã đánh giá, tìm hiểu và nghiên cứu các thuật toán và đã lọc ra những phương
pháp thích hợp nhất với mục tiêu và yêu cầu của đề tài
2.2.1 TF-IDF (Term Frequency — Inverse Document Frequency)
TF-IDF [2] là viết tắt của term frequency-inverse document frequency, là một kỹthuật được sử dụng trong truy vấn thông tin và khai phá dữ liệu văn bản, nó được biểu
diễn dưới dạng vec-tơ những trọng só, mỗi phan tử trong vec-tơ cho biết mức độ quantrọng của một từ cụ thể trong một văn bản Sự quan trọng của một từ tỉ lệ thuận với số
lần xuất hiện của từ đó trong một văn bản và tỉ lệ nghịch với số lần xuất hiện của từ đó
trong toàn bộ văn bản (ví dụ như những từ “là”, “tôi”, “và” tuy xuất hiện nhiều trong
mọi văn bản nhưng thực tế nó ít quan trọng hơn những từ khác)
Term frequency TF (, đ) mô ta số tần suất xuất hiện của một từ trong một văn bản
d Tần suất xuất hiện của r trong văn bản d càng lớn thì độ quan trọng của nó đối với
văn bản càng cao và được tính bởi số lần xuất hiện của r trong d chia cho tổng số từ
trong văn bản d như sau:
TF(t,d) = Frequency(t, d)
Yee a Frequency(t’, d)
Trang 25IDF(,D)= ——————ứ.P) 1+l{deD:ted)|
Với:
- N(D): Tổng số văn bản trong tập văn bản mà ta có
- l{d eD : t e đ}|: Số văn bản mà chứa từ 7, nếu không có trong toàn bộ văn bản, biểu
thức sẽ chia cho 0, do đó ta chỉnh phần mẫu số thành 1 + |{đ e D : £ e d}|
Kết hợp hai biểu thức trên, ta được:
TFIDF(t,d,D) = TF(t,d) * IDF(t,D)
Trong thực tế, ta thường lấy Jog cho TF va IDF nhằm giảm bớt di sự quan trọng củanhững từ xuất hiện quá nhiều lần Do đó TFIDF được tính như sau:
TFIDF (t, d,D) = log(1 + TF(t, đ)) * log(IDF(Œ, D))
2.2.2 Kỹ thuật chuẩn hóa dữ liệu Min — Max Scaling
Chuẩn hóa Min - Max Scaling [3] là phương pháp đơn giản nhất trong việc co giãnphạm vi của đặc trưng bằng việc co giãn chúng về phạm vi [0,1] hoặc [-1,1] Công thức
chung được cho như sau:
Cos góc alpha được gọi là cosine similarity, đó chính là độ tương đồng của vector A và
B Giá trị của cosine luôn nằm trong đoạn [-1, 1] Vậy ta rút ra được
© Néu giá trị cosine bằng 1, nghĩa là góc hợp bởi vector A và vector B là 0 độ Tức
hai vector trùng nhau => đối tượng A, B giống nhau
e Ngược lại, giá tri cosine càng tiến dần về -1 thì A, B là khác nhau
Trang 26Cosine similarity [4] được áp dụng rất phô biến trong các bài toán Text Mining (vd:
Quang cáo đúng đối tượng, phát hiện độ giống nhau giữa hai văn bản, ), Recommender
System (hệ thống gợi ý)
2.3 Các công nghệ chính trong dự án
Dưới đây là các công nghệ chính được sử dụng trong dự án Việc tác giả lựa chọn
các công nghệ này do nhiều lí do khác nhau, 2 lí do chính là tác giả có nhiều kinh nghiệm
với công nghệ đó và công nghệ đó phù hợp với yêu cầu xây dựng sản phẩm đã đề ra ban
đầu
2.3.1 PHP — Framework Laravel
Giới thiệu
© PHP (viết tắt của Hypertext Preprocessor) [5] là ngôn ngữ lập trình đa mục đích
được phát triển từ đầu năm 1994 Cụ thể hơn, PHP là ngôn ngữ kịch bản mã
nguồn mở, chạy ở phía server và được dùng để tạo ra các ứng dụng web Đến
hiện nay đã được nhiều người sử dụng dé phát triển các ứng dụng phần mềmthông qua lập trình web đặc điểm của ngôn ngữ lập trình này là sử dụng mã nguồn
mở, dé dang nhúng vào HTML
e Laravel [6] được tạo ra bởi Taylor Otwell với phiên bản đầu tiên được ra mắt vào
tháng 6 năm 2011 Từ đó cho đến này, Laravel đã phát triển một cách mạnh mẽ,vượt qua những framework khác và vươn lên trở thành framework PHP có thểnói được ưa chuộc và được cộng đồng sử dụng nhiều nhất khi phát triển web với
PHP.
Ưu điểm
© Str dụng các tính năng mới nhất của PHP
¢ Cộng đồng lớn, tài liệu day đủ
e Công cụ tích hợp cho dòng lệnh — Artisan [7]
© Cung cấp một triển khai ActiveRecord đơn giản và hiệu quả, làm việc với cơ sở
dit liệu
Trang 27Nhược điểm
© _ Thiếu sự liên tục giữa các phiên bản
© _ Một số thành phan trong framework được thiết kế không tốt
¢ Di khi ban nâng cấp có vấn đề
© Qua nhiều công cụ hỗ trợ
s Téc độ xử lí chậm
2.3.2 Python — Framework Flask
Giới thiệu
¢ Python [9] là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tao
ra bởi Guido van Rossum Nó dé dàng dé tìm hiểu và đang nổi lên như một trong
những ngôn ngữ lập trình nhập môn tót nhất cho người lần đầu tiếp xúc với ngônngữ lập trình Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ
tự động Python có cau trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giảnnhưng hiệu quả đối với lập trình hướng đối tượng
© Cu pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách
gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng dé viếtscript và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng
e Flask [10] là một web frameworks, nó thuộc loại micro-framework được xây
dựng bằng ngôn ngữ lập trình Python Flask cho phép bạn xây dựng các ứng dụngweb từ đơn giản tới phức tạp Nó có thé xây dựng các api nhỏ, ứng dụng webchang han như các trang web, blog, trang wiki hoặc một website dựa theo thời
gian hay thậm chí là một trang web thương mại.
Ưu điểm
e La một ngôn ngữ có hình thức sáng sta, cấu trúc rõ ràng, cú pháp ngắn gọn
e Có trên tất cả các nền tảng hệ điều hành từ UNIX, MS - DOS, Mac OS, Windows
và Linix và các OS khác thuộc họ Unix.
e = Tương thích mạnh mẽ với Unix, hardware, thirt-party software với số lượng thư
viện khổng lồ (400 triệu người sử dụng)
¢ Python với tốc độ xử lý cực nhanh, python có thé tạo ra những chương trình từ
những seript siêu nhỏ tới những phần mềm cực lớn như Biender 3D
Trang 28Nhược điểm
Python không có các thuộc tính như: protected, private hay public, không có vòng
lặp do while và switch case.
Mặc dù tốc độ xử lý của Python nhanh hơn PHP nhưng không bằng Java và C++
2.3.3 Javascript — Framework ReactJS
Giới thiệu
JavaScript [11] là một ngôn ngữ lập trình hoặc ngôn ngữ kịch bản cho phép triểnkhai những chức năng phức tạp trên trang web như hiển thị các cập nhật nội dung
kịp thời, tương tác với bản đồ, hoạt cảnh 2D/3D wv - điều có sự hỗ trợ của
JavaScript Nó là lớp thứ ba của chiếc bánh tiêu chuẩn của các công nghệ web
React là thư viện JavaScript phổ biến nhất để xây dựng giao diện người dùng
(UI) Nó cho tốc độ phản hồi tuyệt vời khi user nhập liệu bằng cách sử dụngphương pháp mới dé render trang web
Components của công cụ này được phat triển bởi Facebook Nó được ra mat như
một công cụ JavaScript mã nguồn mở vào năm 2013 Hiện tại, nó đã đi trước các
đối thủ chính như Angular và Bootstrap, hai thư viện JavaScript bán chạy nhất
thời bay giờ
Ưu điểm
Reactjs [12] giúp việc viết các đoạn code JS dé dàng hơn: Nó dung cú pháp đặc
biệt là JSX [13] (Javascript mở rộng) cho phép ta trộn giữa code HTML và
Javascript Ta có thể thêm vào các đoạn HTML vào trong hàm render mà khôngcần phải nối chuỗi Đây là đặc tinh thú vị của Reactjs Nó sẽ chuyên đổi các đoạnHTML thành các hàm khởi tạo đối tượng HTML bằng bộ biến đổi JSX
Nó có nhiều công cụ phát triển: Khi bạn bắt đầu Reactjs, đừng quên cài đặt ứng
dụng mở rộng của Chrome đành cho Reactjs Nó giúp ban debug code dé dàng
hơn Sau khi bạn cài đặt ứng dụng này, bạn sẽ có cái nhìn trực tiếp vào virtualDOM như thé bạn dang xem cây DOM [14] thông thường
Render tang server: Một trong những van dé với các ứng dung đơn trang là tối
ưu SEO [15] https://flask.palletsprojects.com/en/1.1.x/] và thời gian tải trang.
Nếu tất cả việc xây dựng và hiển thị trang đều thực hiện ở client, thì người dung
Trang 29Nhược điểm
© Reactjs chỉ phục vụ cho tầng View React chỉ là View Library nó không phải là
một MVC framework như những framework khác Đây chỉ là thư viện của
Facebook giúp render ra phần view Vì thé React sẽ không có phần Model và
Controller, mà phải kết hợp với các thư viện khác React cũng sẽ không có 2-way
binding hay là Ajax [16]
e Tích hợp Reactjs vào các framework MVC truyền thống yêu cầu cần phải cấu
hình lại.
¢ React khá nặng nếu so với các framework khác React có kích thước tương tương
với Angular [17] (Khoảng 35kb so với 39kb của Angular) Trong khi đó Angular
là một framework hoàn chỉnh
e Khó tiếp cận cho người mới học Web
2.3.4 Hệ quản trị cơ sở dữ liệu MySQL
Giới thiệu
e MySQL [18] là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là
RDBMS) hoạt động theo mô hình client-server Với RDBMS là viết tắt của
Relational Database Management System.
e MySQL được tích hop apache, PHP MySQL quản lý dữ liệu thông qua các co
sở dữ liệu Mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa đữ liệu
¢ MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL
e MySQL được phát hành từ thập niên 90s.
Ưu điểm
© Dễ sử dung: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt
động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rat
manh.
¢ D6 bao mật cao: MySQL rat thích hợp cho các ứng dụng có truy cập CSDL trên
Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao
¢ Da tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ
quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp
e Khả năng mở rộng và mạnh mẽ: MySQL có thé xử lý rất nhiều dữ liệu và hơn
thế nữa nó có thể được mở rộng nếu cần thiết
© _ Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL dé làm việc rất
Trang 30Nhược điểm
© - Giới hạn: Theo thiết kế, MySQL không có ý định làm tat cả và nó đi kèm với các
hạn chế về chức năng mà một vào ứng dụng có thể cần
e Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (vi dụ tài liệu
tham khảo, các giao dịch, kiểm toán, ) làm cho nó kém tin cậy hơn so với một
số hệ quản trị cơ sở dữ liệu quan hệ khác
© Dung lượng hạn chế: Nếu số bản ghi của bạn lớn dan lên thì việc truy xuất dữ
liệu của bạn là khá khó khăn, khi đó chúng ta sẽ phải áp dụng nhiều biện pháp đề
tăng tốc độ truy xuất dữ liệu như là chia tải database này ra nhiều server, hoặc
tạo cache MySQL
2.4 Kiến trúc của dự án
Browser
MVC là từ viết tắt bởi 3 từ Model — View — Controller Day là mô hình thiết kế sửdụng trong kỹ thuật phần mềm Mô hình source code thành 3 phần, tương ứng mỗi từ.Mỗi từ tương ứng với một hoạt động tách biệt trong một mô hình
Model (M):
e Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng Bộ phận này là
một cầu nối giữa 2 thành phần bên dưới là View và Controller
© Model thé hiện dưới hình thức là một cơ sở đữ liệu hoặc có khi chỉ đơn giản là
một file XML bình thường.
© Model thé hiện rõ các thao tác với cơ sở dit liệu như cho phép xem, truy xuất, xử
Trang 31View (V):
e Đây là phan giao diện (theme) dành cho người sử dụng Nơi mà người dùng có
thé lấy được thông tin dữ liệu của MVC thông qua các thao tác truy van như tìm
kiếm hoặc sử dụng thông qua các website
e Thông thường, các ứng dụng web sử dụng MVC View như một phần của hệ
thống, nơi các thành phần HTML được tạo ra
e Bên cạnh đó, View cũng có chức năng ghi nhận hoạt động của người ding dé
tương tác với Controller.
e Tuy nhiên, View không có mối quan hệ trực tiếp với Controller, cũng không được
lấy dữ liệu từ Controller mà chỉ hiển thị yêu cầu chuyền cho Controller mà thôi
Controller (C):
e B6 phận có nhiệm vụ xử lý các yêu cầu người dùng đưa đến thông qua view Từ
đó, C đưa ra dữ liệu phù hợp với người dùng.
e Bên cạnh đó, Controller còn có chức năng kết nối với model
Ưu điễm
e Kiểm tra dé dàng: Với MVC, nhà phát triển có thé dé dàng kiểm tra, rà soát lỗi
phần mềm trước khi tới tay người tiêu dùng, đảm bảo chất lượng và độ uy tín cao
hơn.
© _ Chức nang control: Trên các nền website thì ngôn ngữ lập trình như CSS, HTML,
Javascript có một vai trò vô cùng quan trọng Việc sử dụng mô hình MVC sẽ
giúp lập trình viên có một bộ control ưu việt trên nền tảng các ngôn ngữ hiện đạivới nhiều hình thức khác nhau
e View và size: View sẽ là nơi lưu trữ các dữ liệu Càng nhiều yêu cầu được thực
hiện thì kích thước càng tệp càng lớn Khi đó, đường truyền mạng cũng giảm tốc
độ load Việc sử dụng mô hình MVC sẽ giúp tiết kiệm được diện tích băng thông
một cách tối ưu
e Chức năng Soc (Separation of Concern): Chức năng nay cho phép phân tách rõ
ràng các phần như Model, giao diện, data, nghiệp vụ
¢ Tính kết hợp: Việc tích hợp ở mô hình MVC cho phép lập trình viên thoải mái
viết code trên nền tảng website Khi đó, server của sẽ được giảm tải khá nhiều
© Đơn giản: Đây là một mô hình với kết cấu tương đối đơn giản Dù người dùng
không có quá nhiều chuyên môn cũng có thé sử dụng được
Trang 32Nhược điểm
e MVC thường được sử dụng vào những dự án lớn Do đó, với các dự án nhỏ, mô
hình MVC có thé gây cồng kénh, tốn thời gian trong quá trình phát triển cũng
như thời gian trung chuyển dữ liệu
Trang 33CHƯƠNG 3: PHAN TÍCH VÀ THIET KE HỆ THONG
Ở chương này sinh viên sé làm rõ những yêu cầu của sản phẩm, cũng như hướng
thiết kế cơ sở dữ liệu, các chức năng cần có trong hệ thống, các tác nhân và cách hoạt
động — đường dit liệu của các chức năng đó.
3.1 Phân tích hiện trạng nhu cầu
Đầu tiên tác giả sẽ phân tích các yêu cầu chức năng và các yêu cầu phi chức năng
e Tạo video, chỉnh sửa, xóa video, sự kiện trực tuyến.
e_ Tương tác với video.
e Tương tác với người dùng khác.
e Livestream, tham gia xem livestream
e Quản lí lịch sử xem video, các video đã like, tin nhắn, hoạt động.
- Hệ thống:
e_ Đề xuất video dựa trên lịch sử xem video của người dùng
e _ Cập nhật hàng ngày mô tả về thói quen xem video của từng user
© Giri thông báo cho từng user về các tương tác được nhận từ user khác
e Quan lí log hành động của từng admin
© Tao các biêu đồ thống kê
Trang 343.1.2 Yêu cầu phi chức năng
¢ Giao diện thân thiện, dé sử dụng
e Bảo mật.
e Tốc độ xử lí nhanh
¢ Téi ưu việc gửi thông báo, không có quá nhiều thông báo cho một đối
tượng trong một đơn vị thời gian.
e Hai module web app va module gợi ý sẽ tách biệt nhau, thuận lợi cho
việc duy trì và mở rộng hệ thống
3.2 Phân tích các usecase của hệ thống
Usecase mô tả sự tương tác đặc trưng giữa người dùng và hệ thống Nó thé hiện ứng
xử của hệ thống đối với bên ngoài, trong một hoàn cảnh nhất định, xét từ quan điểm của
người sử dụng.
3.2.1 Danh sách các tác nhân của hệ thống
Để làm rd được các usecase của hệ thống thì trước tiên phải nắm được hệ thống có
những tác nhân nào, tên gọi ra sao và ý nghĩa của những tác nhân là gì ?
1 Người dùng vãng lai Là người vào trang web nhưng chưa đăng nhập, chỉ
có thể xem video
Người dùng Là người dùng có tài khoản trong hệ thống, có thé
thực hiện những thao tác nhất định
Nghệ sĩ Là người dùng có tài khoản trong hệ thông, có thé
thực hiện những thao tác nhất định, ngoài ra còn cóthể thực hiện những thao tác của nghệ sĩ, như tạo
video, tạo event livestream vv
Admin Là quản lí của hệ thống, quan lí mọi đối tượng
trong hệ thống
Bảng 3 - 1 Danh sách tác nhân của hệ thông
Trang 353.2.2 Danh sách các usecase của hệ thống
Không thích video
4 <<¡include><
Không thích bình luận
Trang 36Mô tả các usecase chính:
STT Tên Usecase Ý nghĩa
1 | Đăng kí Người dùng đăng kí tài khoản ứng dụng
2_ | Đăng nhập Người dùng đăng nhập vào ứng dụng
3 | Đăng xuất Người dùng đăng xuất khỏi ứng dụng
4 | Lấy lại mật khẩu Người dùng lấy lại mật khẩu
5 | Xem video, xem livestream | Xem chỉ tiết video, xem livestream
6_ | Like, dislike video Thích video, không thích video.
7 | Comment video Bình luận vào video
8 | Like, dislike comment Thich bình luận, không thích bình luận
9| Subscribe nghệ si Theo dõi nghệ sĩ
0 | Unsubscribe nghệ sĩ Bỏ theo dõi nghệ sĩ
1 | Xem trang profile cá nhân Vào trang cá nhân
2 | Xem profile người khác Vào trang cá nhân người dùng khác
eee Gửi tin nhắn tương tác, có thé có file với
3 | Nhan tin vời người khác hy ở
người khác
4 | Thay đổi thông tin cá nhân | Chỉnh sửa thông tin các nhân
5 Xem danh sách video đã | Xem các video đã xem, đã thích của chính
xemm đã thích mình
Trang 3718 | Upload livestream Nghệ sĩ tạo livestream mới
19 | Chỉnh sửa video Nghệ sĩ chỉnh sửa video
20 | Chỉnh sửa livestream Nghệ sĩ chỉnh sửa livestream
21 | Quản lí video Nghệ sĩ quản lí, xóa sửa video
22 | Quản lí livestream Nghệ sĩ quản lí, xóa sửa livestream
23 | Livestream Nghệ si bật livestream trực tiếp
Bảng 3 - 2 Bảng danh sách các usecase chính của hệ thông
3.2.3 Danh sách usecase của Admin
Sửa video } -~>C Quản lí video l
Quản lí sự kiện Trời
<extend>> `yj se
“<<extend>> <<extend>> <<extend>
Gem ion) <>) Kiểm duyệt Kiểm duyệt <>) Thêm sự kiện
Hình 3 - 2 Sơ đồ usecase các chức năng chính của Admin
Trang 38Mô tả các usecase chính:
STT | Tên Usecase Ý nghĩa
1 Admin quản lí thể loại Thêm, xóa, sửa thê loại video
2 Admin quản lí người dùng Thêm, xóa, sửa người dùng
3 Admin quản lí video Thêm, xóa, sửa video
4 Admin quản lí livestream Thém, xóa, sửa event livestream
5 Admin kiểm duyệt video Đồng ý hay từ chối nội dung video
Admin kiêm duyệt `
6 ~ “me Dong ý hay từ chôi nội dung livestream
livestream
7 Admin quan li log, hành động | Hiên thi tat cả các request tới server, hién thi
của các admin khác các hành động của toàn bộ các admin khác
8 Admin quan li quyén Thêm, xóa, sửa các quyền
Admin phâ én cho cá `
9 emm P nan a) a Thêm, xóa, sửa quyên cho từng admin nhỏ
admin nhỏ
Admin import dữ liệu mau l
10 i 7 Import file dữ liệu csv, excel vào hệ thông
vào hệ thống
Bảng 3 - 3 Danh sách các usecase chính của Admin
Ngoài ra còn có một số chức năng phụ của trang admin như xem các số liệu thống kê
của từng video, người dùng, sự kiện, có các chức năng dé export va import dữ liệu.
Trang 393.3 Sơ đồ hoạt động của các usecase (Activity Diagram)
Ở mục này sinh viên sẽ thé hiện sơ đồ hoạt động của một vài chức năng quan trọng
trong hệ thống, các sơ đồ hoạt động của các chức năng còn lại trong hệ thống sẽ được
thể hiện ở phần Phụ lục
¢ So đồ hoạt động của chức năng lấy lại mật khẩu
Người dùng a Cơ sở dữ liệu
'Yêu cầu reset mật
Trang 40¢ So đồ hoạt động của chức năng xem video
Người dùng a Hệ thống a Co sở dữ liệu
@
Ikiém tra user có đăng Lấy dữ liệu người
đăng nhập Không dang
@-Hình 3 - 4 Sơ dé hoạt động của chức năng xem video