Tải bản đầy đủ (.docx) (19 trang)

Báo cáo đồ án cơ sở ngành mạng đề tài xây dựng website chia sẻ video

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 (293.95 KB, 19 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN CƠ SỞ NGÀNH MẠNG
ĐỀ TÀI :

XÂY DỰNG WEBSITE CHIA SẺ VIDEO


LỜI NĨI ĐẦU
Trong suốt thời gian thực hiện và hồn thành dự án này, em đã nhận được sự giúp
đỡ và hướng dẫn tận tình của các thầy, các cơ và các bạn trong khoa Công nghệ
thông tin Trường Đại học Bách Khoa – Đại học Đà Nẵng. Em xin gửi lời cám ơn
chân thành và sâu sắc đến các thầy cô trong Khoa đã giảng dạy và truyền đạt những
kiến thức cần thiết, những kinh nghiệm quý báu cho em để thực hiện dự án này.
Trước tiên, em xin gửi lời cám ơn đến giáo viên hướng dẫn thầy Nguyễn Tấn Khôi
đã dẫn đường, giúp đỡ và thảo luận cho em kiến thức và nhiệt tình để thiết kế và
xây dựng trang web này.
Do kiến thức và kinh nghiệm bản thân em còn hạn chế nên việc thực hiện khơng thể
tránh khỏi sơ sót. Rất mong nhận được sự đóng góp ý kiến của thầy cơ trong bộ
mơn Cơng nghệ thông tin trường Đại học Bách Khoa Đà Nẵng để báo cáo của em
được hoàn thiện hơn.
Cuối cùng, em xin chân thành cảm ơn thầy cô trong khoa Công nghệ thông tin
trường Đại học Bách Khoa Đà Nẵng, đặc biệt là thầy Nguyễn Tấn Khôi đã hướng
dẫn và giúp đỡ em hoàn thành dự án này
Em xin chân thành cảm ơn!

II



Tóm tắt đề tài
Website chia sẻ video được xây dựng với mục đích tạo ra một trang thơng tin điện
tử để phục vụ tất cả những người mong muốn được chia sẻ những khoảnh khắc
tuyệt vời của bản thân. Từ trưng bày giới thiệu tất cả các video được nhiều người
đánh giá cao nhất, đến tìm video để xem và chia sẻ những cảm xúc của mình. Đồng
thời website cũng cho phép tương tác với bài đăng trên website. Website phục vụ
cho hai đối tượng chính: đối tượng đầu tiên là những người mong muốn xem video,
trang web sẽ giúp người dùng tìm tất cả những video mà người dùng mong muốn và
được trải nghiệm trong thế giới video vô vàn, đối tượng thứ hai là những người chia
sẻ ra video và mong muốn video được nhiều người biết đến, trang web sẽ giúp đăng
video miễn phí và cho phép những người dùng có tài khoản bình luận, đánh giá, thể
hiện cảm xúc của mình. Thơng qua q trình thu thập kinh doanh, phân tích, thiết
kế, phát triển và thực hiện, em mong muốn sẽ làm sáng tỏ mọi vấn đề và cố gắng để
có một website hồn thiện.

III


DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Số thứ tự

Chữ viết tắt

Diễn giải

1

API

Application Programming Interface


2

HTML

Hypertext Markup Language

3

HTTP

Hypertext Transfer Protocol

4

XML

Extensible Markup Language

5

JSON

JavaScript Object Notation

6

REST

Representational State Transfer


7

CSS

Cascading Style Sheet

8

MVC

Model, View, Controller

9

UX/UI

User Experience/User Interface

10

AJAX

Asynchronous JavaScript and XML

11

SKU

Stock-Keeping Unit


IV


MỞ ĐẦU
1. Tổng quan về đề tài
Cùng với sự tăng trưởng kinh tế trên toàn cầu là sự phát triển của các ngành
khoa học kỹ thuật, đặc biệt là các ngành công nghệ thông tin. Việc ứng dụng công
nghệ thông tin và các nghiêm cứu của công nghệ thông tin vào đời sống trên toàn
thế giới ngày càng nhiều và càng phát triển.
Xuất phát từ việc bảo vệ môi trường và nhu cầu về chia sẻ trải nghiệm của
bản thân ngày càng lớn, các trang web điện tử giúp người dùng có những trải
nghiệm online thư giãn ở mọi nơi. Đây là một nguồn thơng tin vơ tận, khó bị mất và
và là cơ hội để cảm xúc của bản thân mỗi người có thể lan tỏa tới mọi người dùng
trên thế giới.
Đáp ứng nhu cầu đó, trong dự án này em đã xây dựng một website về chia sẻ
video online, hỗ trợ tải video trực tuyến.
2. Mục đích và ý nghĩa của đề tài
2.1. Mục đích
Xây dựng website chia sẻ video phục vụ chủ yếu cho các đối tượng khách
hàng sau: Người dùng chia sẻ video và Quản trị viên của website. Do đó hệ thống
được tạo ra với ba mục đích chính:
-

Giúp cho người đọc truyện nhanh chóng tìm được video mong muốn, tiết
kiệm thời gian tìm kiếm

-

Giúp cho những tác giả có thể đăng video mọi lúc mọi nơi, phổ biến video

đến mọi tay người dùng, đồng thời có thể theo dõi và quản lý những video
của mình một cách dễ dàng và hiệu quả

-

Giúp cho người quản trị viên của website có cái nhìn tổng quan về tất cả các
sản phẩm và video trên website đang trưng bày, quản lý các thông tin của
website, quản lý tất cả các thông tin của người dùng cũng như liên hệ với
website một cách dễ dàng.

1


2.2. Ý nghĩa
-

Giúp cho các công đoạn của việc chia sẻ video và trải nhiệm bản thân trở nên
nhanh chóng và hiệu quả nhất

-

Số hóa tất cả các cơng việc giấy tờ từ đó có thể quản lý tập trung tất cả các
cơng đoạn vào một quy trình chung của quản lý website, tiết kiệm thời gian
và kinh tế.

3. Phương pháp thực hiện

- Phương pháp phân tích tổng hợp từ tài liệu từ nguồn tài liệu trên mạng
- Phương pháp phân tích thiết kế hệ thống theo hướng đối tượng
- Phương pháp thử nghiệm, đánh giá kết quả.

4. Bố cục của đề tài
Báo cáo đề tài bao gồm các nội dung sau:
Mở đầu
Chương 1: Nghiên cứu tổng quan
Chương 2: Phân tích và thiết kế hệ thống
Kết luận và hướng phát triển.
5. Phân công tổ chức công việc
-

Công cụ quản lý mã nguồn: github

2


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Nghiên cứu lý thuyết
1.1.1 Restful Web Service
-

Định nghĩa Web Service: là một dịch vụ mà nó kết hợp các máy tính cá nhân
với các thiết bị khác, các cơ sở dữ liệu và các mạng máy tính để tạo thành
một cơ cấu tính tốn ảo mà người sử dụng có thể làm việc thơng qua các
trình duyệt mạng. Bản thân các dịch vụ này sẽ chạy trên các máy chủ trên
nền Internet. Các máy chủ của một nhà cung cấp dịch vụ web này cũng cần
nguồn cung cấp cho người sử dụng cả về độ an toàn, độ riêng tư và khả năng
truy nhập.

-

Các web service thường trả về dữ liệu dưới dạng máy tính có thể đọc được là

XML hoặc JSON rồi trả về trình duyệt ở phía client.

-

Các cơng nghệ thường được sử dụng để xây dựng cho web service:
+ SOAP (Simple Object Access Protocol)
+ WSDL (Web Service Description Language)
+ REST (Representational State Transfer)

3


-

Restful là các Web Service được viết dựa trên kiến trúc REST. Rest đã được
sử dụng rộng rãi thay thế cho các Web Service dựa trên SOAP và WSDL.
Restful Web Service nhẹ, dễ dàng mở rộng và bảo trì. REST là một bộ quy
tắc để tạo ra một ứng dụng Web Service, mà nó tuân thủ 4 nguyên tắc thiết
kế cơ bản sau:
+ Sử dụng các phương thức HTTP một cách rõ ràng
+ Phi trạng thái
+ Hiển thị cấu trúc thư mục như các URLs
+ Truyền tải Javascript Object Notation (JSON), XML hoặc cả hai

1.1.2 MySQL Database
-

MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational
Database Management System, viết tắt là RDBMS) hoạt động theo mơ hình
client-server. RDBMS là một phần mềm hay dịch vụ dùng để tạo và quản lý

các cơ sở dữ liệu (database) theo hình thức quản lý các mối quan hệ giữa
chúng.

-

Database là tập hợp dữ liệu theo cùng một cấu trúc. Giống như việc chụp
hình: nhấm nút chụp ảnh, hình ảnh là dữ liệu, thư viện lưu ảnh là sơ sở dữ
liệu. Cơ sở dữ liệu, hay database, là nơi chứa và sắp đặt dữ liệu. Dữ liệu
được đặt trong một bộ dữ liệu chung, dataset, được tổ chức sắp xếp giống
như một bảng tính chung. Mỗi “bảng” có liên hệ với nhau theo cách nào đó.
Vì vậy từ Relational (liên hệ) trong RDBMS có ý nghĩa như vậy. Nếu phần
4


mềm khơng hỗ trợ mơ hình dữ liệu quan hệ với nhau thì như vậy gọi là
DBMS
-

Open source dịch là mã nguồn mở, có nghĩa là ai cũng có thể dùng và chỉnh
sửa nó. Bất kỳ ai cũng có thể cài đặt phần mềmn ày. Bạn cũng có thể học
cách tùy chỉnh phần mềm theo nhu cầu của bạn. Tuy nhiên, giấy phép GPL
(GNU Public License) quyết định bạn có thể làm gì tùy vào điều kiện nhất
định. Phiên bản thương mại cũng được xuất bản nếu bạn cần thêm chủ quyền
linh hoạt và hỗ trợ cao cấp.

1.1.3 Mơ hình MVC
-

MVC là viết tắt của Model - View - Controller. Là một kiến trúc phần mềm
hay mơ hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nói cho dễ

hiểu, nó là mơ hình phân bố source code thành 3 phần, mỗi thành phần có
một nhiệm vụ riêng biệt và độc lập với các thành phần khác

-

M là Model: cấu trúc dữ liệu theo cách tin cậy và chuẩn bị dữ liệu theo lệnh
của controller

-

V là View: hiển thị dữ liệu cho người dùng theo cách dễ hiểu dựa trên hành
độgn của người dùng

-

C là Controller: nhận lệnh từ người dùng, gửi lệnh đến cho Model để cập
nhật dữ liệu, truyền lệnh đến Vew để cập nhật giao diện hiển thị.

5


1.1.4 Ruby on Rails
-

Ruby on rails là một Framework mạnh mẽ và đầy thú vị được phát triển trên
ngôn ngữ lập trình Ruby cho phép phát triển ứng dụng Web gồm hai phần cơ
bản:
+ Phần ngôn ngữ Ruby: Ruby là ngơn ngữ lập trình mã nguồn mở, linh hoạt,
với một sự nổi bật về sự đơn giản dễ dùng và hữu ích. Nó có cú pháp “tao
nhã” và tự nhiên dễ đọc và dễ dàng để viết.

+ Phần Framework Rails bao gồm nhiều thư viện liên kết.

-

Ruby on rails được ra đời một cách hoàn hảo dành cho những ai ln “mải
miết đi tìm câu trả lời” tại sao những lập trình viên ln tìm mọi cách để phát
triển những phần mềm, những ứng dụng web … để người sử dụng được
thuận tiện nhất, nhưng lại không thuận tiện cho người lập trình mỗi khi
chương trình càng đơn giản thì bên trong nó càng phức tạp, khó chỉnh sửa
khi cần thiết, làm cho cơng việc của người lập trình viên cảm thấy mệt mỏi
hơn.

6


1.1.5 Thuật tốn mã hóa hàm băm MD5:
MD5 được phát minh bởi Ron Rivest ,người đã tham gia xây dựng RSA.MD5 viết
tắt của chữ Message Digest,được phát triển lên từ MD4 và trước đó là MD2,do
MD2 và MD4 khơng cịn an tồn.Kích thước của MD5 là 128 bit được tính giá trị
của thơng điệp có kích thước tối đa 2^4 bit
Thuật tốn MD5:
-Input: xâu đầu vào x có độ dài tối đa 2^64 -Output: chuỗi băm 128 bit -Sơ đồ thuật
tốn: 

Trước tiên thơng điệp được đệm vào dãy padding 100...00. Chiều dài của dãy
padding được chọn sao cho thông điệp cuối cùng có thể chia làm N block 512 bit
M1,M2,...,MN.Quá trình tính giá trị băm của thơng điệp là q trình lũy tiến. Trước
tiên block M1 kết hợp với giá trị khởi tạo H0 thơng qua hàm F để tính giá trị hash
H1. Sau đó block M2 đượckết hợp với H1 để cho ra giá trị hash là H2. Block M3
kết hợp với H2 cho ra giá trị H3. Cứ như vậy cho đến block MN thì có giá trị băm

của tồn bộ thơng điệp là HN.


H0 là một dãy 128 bit được chia thành 4 từ 32 bit, ký hiệu 4 từ 32 bit trên là
abcd. Với a, b, c, d là các hằng số như sau (viết dưới dạng thập lục phân):
a = 01234567
b = 89abcdef
c = fedbca98
7


d = 76543210
-Cấu trúc của hàm F như sau:

Tại mỗi bước lũy tiến, các giá trị abcd của giá trị hash Hi-1 được biến đổi qua 64
vòng từ 0 đến 63. Tại vịng thứ j sẽ có 2 tham số là Kj và Wj đều có kích thước 32
bit. Các tham số Kj được tính từ cơng thức: Kj là phần nguyên của số 2^32
abs(sin(i)) với i biểu diễn theo rad.
Giá trị block Mi 512 bit được biến đổi qua một hàm message schedule cho ra 64 giá
trị W0, W1,…, W63 mỗi giá trị 32 bit. Block Mi 512 bit được chia thành 16 block
32 bit ứng với các giá trị W0, W1, …, W15 (16×32=512). Tiếp theo, 16 giá trị này
được lặp lại 3 lần tạo thành dãy 64 giá trị.
Sau vòng cuối cùng, các giá trị abcde được cộng với các giá trị abcd của Hi-1 để
cho ra các giá trị abcd của Hi. Phép cộng ở đây là phép cộng modulo 232.
Tiếp theo tìm hiểu cấu trúc của một vòng. Việc biến đổi các giá trị abcd trong vịng
thứ i được thể hiện trong hình bên dưới.

8



Note:Phép + trong sơ đồ trên là phép cộng modul 2^32
Ở đây c lấy giá trị của b, d lấy giá trị của c, a lấy giá trị của d.
Giá trị b được tính qua hàm:
t = a + f(b,c,d) + Wi + Ki
b = b + ROTL(t,s)
Trong đó : Hàm f(x,y,z):
f (x,y,z) = (x ^ y) v (_x ^ z) nếu vòng từ 0 đến 15
f (x,y,z) = (z ^ x) v (_z ^ y) nếu vòng từ 16 đến 32
f (x,y,z) = x xor y xor z nếu vòng từ 32 đến 48
f (x,y,z) = y xor (x v _z) nếu vòng từ 49 đến 63
Hàm ROTL(t, s): t được dịch vòng trái s bit, với s là các hằng số cho vòng thứ i như
sau:

9


1.2. KẾT CHƯƠNG
Chương này cung cấp cho người đọc cái nhìn tổng quan về các lý thuyết
được áp dụng để xây dựng website. Thông qua cơ sở lý thuyết của các cơng nghệ
nêu trên do đó việc xây dựng website trở nên gần gũi và nhanh chóng hơn rất nhiều

10


CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1. PHÂN TÍCH U CẦU
Website được chia thành 2 phần chính: Quản trị viên của website , Người
dùng chia sẻ video.
Người dùng sẽ có các chức năng chính sau:
-


Đối với người dùng dù có tài khoản hay khơng có tài khoản đều có thể xem
danh sách tất cả các video trên trang web, thông tin về từng video, xem các
đánh giá và bình luận về video, xem các video theo danh mục và sắp xếp.
Bên cạnh đó người dùng cịn có thể tìm kiếm video mà họ u thích

-

Đối với người dùng đã có tài khoản, họ sẽ được cấp quyền đánh giá, bình
luận video, đồng thời họ có thể quản lý những video đã đăng.
Người có tài khoản cịn có quyền tạo ra và đăng những video của riêng bản

thân. Họ cịn có quyền tự quản lý mọi thơng tin tài khoản của bản thân mình, bao
gồm tên tài khoản, tên đăng nhập, mật khẩu, email cùng với lịch sử hoạt động của
mình.
Quản trị viên website ngồi việc có đầy đủ các chức năng của người viết
truyện cịn có thêm các nhóm chức năng sau:
-

Quản lý video: các thơng tin liên quan đến truyện bao gồm tên video, tác giả,
ảnh bìa và ngày đăng. Quản lý website có đầy đủ quyền để thêm mới, chỉnh
sửa hay xóa các thơng tin của video. Đồng thời quản lý còn cho phép duyệt
video.

-

Quản lý người dùng: quản lý tồn bộ các thơng tin liên quan đến người dùng
bao gồm tên người dùng, tên đăng nhập, mật khẩu tài khoản, email người
dùng, và ngày khởi tạo tài khoản. Quản lý thông tin tài khoản cho phép quản
trị viên xem và biết được số lượng người dùng của trang web, thống kê

người dùng, đồng thời quản trị viên có quyền thêm, sửa, xóa một người dùng
mới cùng với việc quản lý tất cả các hoạt động của người dùng.

11


2.2. THIẾT KẾ HỆ THỐNG
2.2.1. Biểu đồ ca sử dụng

2.2.2. Thiết kế cơ sở dữ liệu
a. Thực thể người dùng (user)
Tên cột

Giải thích

Kiểu dữ liệu Ghi chú

id

Sẽ tự động tăng mỗi khi int

Khóa chính

thêm mới
full_name

Tên đầy đủ của người dùng

varchar


user_name

Tên đăng nhập

varchar

password

Mật khẩu đăng nhập

varchar

email

Email đăng nhập

varchar

admin

Có phải là admin hay khơng

boolean

date_create

Ngày tạo tài khoản

datetime


Độc nhất

b. Thực thể post (có video)
12


Tên cột

Giải thích

Kiểu dữ liệu Ghi chú

id

Sẽ tự động tăng mỗi khi int

Khóa chính

thêm mới
name

Tên video

varchar

author

Tác giả

varchar


status

Trạng thái

varchar

image

Hình ảnh video

varchar

date_create

Ngày đăng

datetime

c. Thực thể thể loại (category)
Tên cột

Giải thích

Kiểu dữ liệu Ghi chú

id

Sẽ tự động tăng mỗi khi int


Khóa chính

thêm mới
name

Tên thể loại video

varchar

d. Thực thể bình luận (comment)
Tên cột

Giải thích

Kiểu dữ liệu Ghi chú

id

Sẽ tự động tăng mỗi khi int

Khóa chính

thêm mới
user_id

Bình luận của người dùng int

Khóa ngoại

nào

story_id

Bình luận cho truyện nào

int

content

Nội dung bình luận

text

Khóa ngoại

13


rating

Đánh giá video (1 - 5 sao)

int

2.3. KẾT CHƯƠNG
Chương này trình bày cung cấp cho người đọc cái nhìn tổng quan về chuyên
môn nghiệp vụ mà website cần phải đáp ứng, thiết kế, xây dựng website và trình
bày một số sơ đồ cơ bản thể hiện tổng quát chức năng của website

14



NGUỒN THAM KHẢO
 a/p/upload-file-co-kich-thuoc-lon-trong-rails07LKX4ykKV4

 /> />
 a/p/gioi-thieu-ham-bam-md5-LzD5d63wZjY

15



×