1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Hệ thống thông tin: Xây dựng website chia sẻ video tích hợp hệ thống khuyến nghị nội dung

130 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng website chia sẻ video tích hợp hệ thống khuyến nghị nội dung
Tác giả Nguyen Quang Vu
Người hướng dẫn THS. Nguyen Ho Duy Tri
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Hệ thống thông tin
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 130
Dung lượng 41,71 MB

Nội dung

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 3

THONG 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 4

LỜ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 5

MỤ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 6

3.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 7

Cá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 8

DANH 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 9

Hì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 11

lụ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 12

DANH 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 13

DANH 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 14

TOM 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 15

CHUONG 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 16

1.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 17

e 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 18

phú 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 19

1.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 20

Bướ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 21

CHƯƠ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 22

củ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 23

2.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 24

2.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 25

IDF(,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 26

Cosine 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 27

Nhượ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 28

Nhượ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 29

Nhượ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 30

Nhượ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 31

View (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 32

Nhượ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 33

CHƯƠ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 34

3.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 35

3.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 36

Mô 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 37

18 | 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 38

Mô 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 39

3.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

Ngày đăng: 02/10/2024, 03:44

w