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

[123doc] - bao-cao-do-an-tot-nghiep-nganh-cong-nghe-thong-tin

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 (2.45 MB, 54 trang )

ĐẠI HỌC ĐÀ NẴNG

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

KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 3736949, Fax. (84-511) 3842771
Website: itf.dut.udn.vn, E-mail:

ĐỒ ÁN TỐT NGHIỆP KỸ SƢ
NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH: D480201

ĐỀ TÀI :

XÂY DỰNG MẠNG XÃ HỘI DU LỊCH SỬ DỤNG
FRAMEWORK LARAVEL

SINH VIÊN
MÃ SINH VIÊN
LỚP
CBHD

: Nguyễn Thành Phƣớc
: 102110224
: 11T2
: Th.S Đặng Duy Thắng

Đà Nẵng, 06/2016


LỜI CẢM ƠN


Đầu tiên, tôi xin gửi lời cảm ơn chân thành tới Th.S Đặng Duy Thắng
đã giúp đỡ tôi hoàn thành tốt đề tài đồ án tốt nghiệp này. Trong q trình
hướng dẩn tơi làm đồ án thầy đã chỉ bảo và hướng dẩn tận tình cho tơi
những lý thuyết, cũng như các kỹ năng trong lập trình, cách giải quyết các
vấn đề trong đề tài,… Thầy luôn là người truyền động lực cho tôi, đề xuất
cho tôi các ý tưởng mới mẽ giúp tơi hồn thành tốt đề tài đồ án.
Chân thành cảm ơn các bạn bè trong lớp đã hỗ trợ tội để hoàn thành
tốt đề tài cùng báo cáo này.
Tôi xin chân thành biết ơn sự dạy dỗ tận tình của các thầy cơ Khoa
Cơng nghệ thông tin - Trường Đại học Bách khoa Đà Nẵng.
Cuối cùng tôi xin dành lời cảm ơn sâu sắc đến gia đình tơi, đã ln
sát cánh động viên và dạy dỗ tôi trong suốt cuộc đời.
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho
phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Tơi rất mong
nhận được sự thơng cảm, góp ý và tận tình chỉ bảo của q Thầy Cơ và
các bạn.

Nguyễn Thành Phƣớc

i


LỜI CAM ĐOAN
Tôi xin cam đoan:
1. Nội dung trong đồ án này là do tôi thực hiện dưới sự hướng dẫn trực tiếp

của Th.S Đặng Duy Thắng.
2. Các tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả,

tên cơng trình, thời gian, địa điểm cơng bố.

3. Nếu có những sao chép khơng hợp lệ, vi phạm, tơi xin chịu hồn tồn

trách nhiệm.

Sinh viên thực hiện

Nguyễn Thành Phƣớc

ii


NHẬN XÉT CỦA NGƢỜI HƢỚNG DẪN
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................

................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................

iii


NHẬN XÉT CỦA NGƢỜI PHẢN BIỆN
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................

................................................................................................................................................
................................................................................................................................................
................................................................................................................................................

iv


MỤC LỤC
DANH SÁCH HÌNH ẢNH ................................................................................... VII
DANH SÁCH TỪ VIẾT TẮT ............................................................................... IX
MỞ ĐẦU ....................................................................................................................1
CHƢƠNG 1: TÌM HIỂU VỀ MƠ HÌNH MVC VÀ LARAVEL FRAMEWORK
3
1.1.

MỘT SỐ KHÁI NIỆM .................................................................................3

1.1.1. Mạng xã hội .............................................................................................. 3
1.1.2. Mạng xã hội du lịch ..................................................................................3
1.1.3. Đặc điểm của mạng xã hội ........................................................................3
1.2.

GIỚI THIỆU MƠ HÌNH MVC .....................................................................4

1.2.1. Giới thiệu ..................................................................................................4
1.2.2. Lịch sử mơ hình MVC ..............................................................................4
1.2.3. Kiến trúc mơ hình MVC ...........................................................................5
1.2.4. Đặc điểm mơ hình MVC ...........................................................................7
1.2.5. Tìm hiểu Controller ..................................................................................8
1.2.6. Tìm hiểu Model ........................................................................................ 8

1.2.7. Tìm hiểu View .......................................................................................... 8
1.2.8. Ƣu khuyết điểm của mơ hình MVC .......................................................... 8
1.3.

GIỚI THIỆU LARAVEL FRAMEWORK...................................................9

1.3.1. Giới thiệu ..................................................................................................9
1.3.2. Lịch sử phát triển của Laravel ..................................................................9
1.3.3. Sơ lƣợc tính năng cơ bản của Laravel Framework .................................11
1.4.

TIẾN ĐỘ THỰC HIỆN ĐỀ TÀI ................................................................ 12

1.5.

KẾT CHƢƠNG .......................................................................................... 13

CHƢƠNG 2: PHÂN TÍCH ĐỀ TÀI VÀ KẾ HOẠCH TRIỂN KHAI ...............14
2.1.

PHÂN TÍCH ĐỀ TÀI .................................................................................14
v


2.1.1. Lý do lựa chọn đề tài ..............................................................................14
2.1.2. Mục tiêu đề tài ........................................................................................ 14
2.1.3. Phân tích chức năng chính ......................................................................14
2.2.

PHÂN TÍCH TRIỂN KHAI HỆ THỐNG ...................................................15


2.2.1. Phân tích u cầu ngƣời dùng, ngƣời quản trị ........................................15
2.2.2. Tạo bảng cơ sở dữ liệu ............................................................................16
2.2.3. Biểu đồ ca sử dụng (Usecase Diagram) ..................................................20
2.2.4. Biểu đồ tuần tự (Sequence Diagram) ...................................................... 24
2.2.5. Biểu đồ lớp (Class Diagram) ..................................................................28
2.2.6. Biểu đồ hoạt động (Active Diagram ) ..................................................... 29
2.3.

KẾT CHƢƠNG .......................................................................................... 32

CHƢƠNG 3: CÀI ĐẶT VÀ ĐÁNH GIÁ SẢN PHẨM ........................................33
3.1.

MÔI TRƢỜNG CÀI ĐẶT ..........................................................................33

3.1.1. Chuẩn bị ..................................................................................................33
3.1.2. Bắt đầu cài đặt: ....................................................................................... 33
3.2.

TRIỂN KHAI ............................................................................................. 35

3.3.

KẾT QUẢ TRIỂN KHAI ...........................................................................36

3.4.

ĐÁNH GIÁ ƢU NHƢỢC ĐIỂM WEBSITE .............................................41


3.5.

KẾT CHƢƠNG .......................................................................................... 42

CHƢƠNG 4: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN......................................43
4.1.

KẾT QUẢ ĐẠT ĐƢỢC .............................................................................43

4.2.

HƢỚNG PHÁT TRIỂN..............................................................................43

TÀI LIỆU THAM KHẢO ...................................................................................... 44

vi


DANH SÁCH HÌNH ẢNH
Hình 1: Các thành phần chính của mơ hình MVC. .....................................................6
Hình 2: Mơ hình tuần tự của MVC. ............................................................................7
Hình 3: Bảng thành viên............................................................................................ 16
Hình 4: Bảng địa điểm .............................................................................................. 17
Hình 5: Bảng Tours ...................................................................................................17
Hình 6: Bảng nhà hàng .............................................................................................. 18
Hình 7: Bảng statuses ................................................................................................ 18
Hình 8: Bảng thích ....................................................................................................19
Hình 9: Bảng khách sạn ............................................................................................ 19
Hình 10: Bảng bạn bè ................................................................................................ 20
Hình 11: Biểu đồ ca sử dụng chức năng của thành viên ...........................................20

Hình 12: Biểu đồ ca sử dụng Admin .........................................................................21
Hình 13: Admin quản lý thành viên ..........................................................................21
Hình 14: Biểu đồ ca sử dụng chức năng của địa điểm ..............................................22
Hình 15: Biểu đồ ca sử dụng khách sạn. ...................................................................22
Hình 16: Biểu đồ ca sử dụng nhà hàng .....................................................................23
Hình 17:Biểu đồ ca sử dụng Tour .............................................................................23
Hình 18: Biểu đồ tuần tự đăng nhập và đăng ký ....................................................... 24
Hình 19: Biểu đồ tuần tự cập nhật trạng thái ............................................................ 24
Hình 20: Biểu đồ tuần tự địa điểm ............................................................................25
Hình 21: Biểu đồ tuần tự Tour ..................................................................................25
Hình 22: Biểu đồ tuần tự nhà hàng ...........................................................................26
Hình 23: Biểu đồ tuần tự khách sạn ..........................................................................26
Hình 24: Biểu đồ tuần tự cập nhật thơng tin ............................................................. 27
Hình 25: Biểu đồ tuần tự chức năng tìm kiếm .......................................................... 27
Hình 26: Biểu đồ lớp .................................................................................................28
Hình 27: Biểu đồ hoạt động chức năng đăng ký ....................................................... 29
Hình 28: Biểu đồ hoạt động chức năng đăng nhập ...................................................30
vii


Hình 29: Biểu đồ hoạt động chức năng cập nhật trạng thái ......................................30
Hình 30: Biểu đồ hoạt động chức nặng cập nhật thơng tin cá nhân .......................... 31
Hình 31: Biểu đồ hoạt động chức năng tìm kiếm...................................................... 32
Hình 32: Các thƣ mục của Laravel sau khi cài đặt về. ..............................................34
Hình 33: Chạy project Laravel sau khi cài đặt .......................................................... 35
Hình 34: Màn hình giới thiệu .................................................................................... 36
Hình 35: Màn hình đăng nhập ...................................................................................36
Hình 36: Màn hình đăng ký....................................................................................... 37
Hình 37: Giao diện sau khi đăng nhập thành cơng ...................................................37
Hình 38: Màn hình xem các địa điểm bên ngƣời dùng .............................................38

Hình 39: Màn hình kết bạn và yêu cầu kết bạn ......................................................... 39
Hình 40: Màn hình cập nhật thơng tin.......................................................................39
Hình 41: Màn hình thay đỗi mật khẩu. ......................................................................40
Hình 42: Màn hình chat ............................................................................................. 40
Hình 43: Màn hình tìm kiếm ..................................................................................... 41

viii


DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt

Diễn giải

MXH

Mạng xã hội ( Social network)

MVC

Model View Controller

OOP

Hƣớng đối tƣợng (Object-oriented-programming)

ix


Xây dựng mạng xã hội sử dụng Laravel Frameword


MỞ ĐẦU
1. Tổng quan về đề tài
Trong thời đại công nghệ thông tin, giới trẻ Việt Nam ngày nay có xu hƣớng
sử dụng mạng truyền thông xã hội. Cimigo báo cáo rằng internet đƣợc sử dụng rộng
rãi trong thông tin liên lạc và truyền thông trực tuyến. 70% ngƣời dùng Internet để
trao đổi email và trò chuyện, 36% là thành viên của mạng xã hội và 20% có blog
riêng của họ. Xu hƣớng các loại truyền thơng mới nhanh chóng có mặt trên tồn
Việt Nam. Theo dữ liệu tơi thu thập đƣợc rằng trong số 28 trang web mạng xã hội
lớn nhất, Việt Nam có 20. Ngồi ra, Cimigo nghiên cứu những lý do cho việc gia
nhập mạng xã hội của ngƣời Việt Nam. Kết quả chủ yếu là họ muốn giữ liên lạc với
bạn bè. Và các lý do khác nhƣ lƣu giữ, cập nhật về bạn bè, gặp gỡ những ngƣời bạn
mới, ... cũng là để thỏa mãn nhu cầu thông tin liên lạc của mọi ngƣời.
Để thúc đẩy du lịch trong nƣớc và sự phát triển của mạng xã hội tại Việt Nam.
Tơi đã tìm hiểu và xây dựng “Website MXH du lịch ”. Hiện nay có rất nhiều trang
website quảng cáo địa điểm du lịch nhƣng thông tin đơi lúc lại khơng đầy đủ, hoặc
khơng chính xác…Mạng xã hội du lịch giúp ngƣời dùng có thêm kinh nghiệm về
các địa điểm du lịch mà ngƣời khác đã đi qua và chia sẻ lên cộng đồng. Giúp mọi
ngƣời có cái nhìn rõ hơn về địa điểm đó và đƣa ra quyết định đi du lịch của mình.
2. Mục đích và ý nghĩa của đề tài
2.1. Mục đích
Ở đây tơi làm đề tài này nhằm hƣớng tới một nơi dành riêng để đăng các địa
điểm du lịch, là nơi cho các cƣ dân mạng đăng bài về các địa điểm du lịch mình đã
đi. Coi nhƣ nó là một kho tài liệu lƣu trữ của ngƣời dùng và sử dụng để chia sẻ nó
với một ai đó trên Internet.
Ngồi ra cịn nhằm tìm hiểu về Framework Laravel một Frameword đang thịnh
hành hiện nay. Giúp tôi tiếp thu các công nghệ mới nhằm giúp ích hơn cho nền khoa
học cơng nghệ nƣớc nhà.

Nguyễn Thành Phƣớc – 11T2


1


Xây dựng mạng xã hội sử dụng Laravel Frameword

2.2. Ý nghĩa
Với nền văn minh mới tiến bộ vƣợt bật và mang đến nhiều tiện ích, sự bùng
nổ và phát triển mạnh mẽ của ngành công nghệ thông tin khi mà Internet trở thành
một sự lựa chọn lý tƣởng cho việc tìm kiếm thơng tin, trao đơi và liên lạc.
Tuy nhiên thông tin là vô hạn,và tôi muốn tạo một môi trƣờng đơn giản hơn về
một chủ đề cụ thể. Thông tin có rất nhiều và ở khắp mọi nơi vì vậy mong rằng đây
sẽ là môi trƣờng tổng hợp giúp ích cho mọi ngƣời dùng trong việc tìm hiểu về du
lịch.
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.
Phƣơng pháp phân tích thiết kế hệ thống.
Phƣơng pháp thử nghiệm, đánh giá kết quả.
4. Bố cục của đồ án
Đồ án bao gồm các nội dung sau:
Mở đầu
Chương 1: Tìm hiểu về mơ hình MVC và Laravel Framework.
Chương 2: Phân tích đề tài và triển khai kế hoạch thực hiện.
Chương 3: Cài đặt và đánh giá sản phẩm.
Chương 4: Kết luận và hướng phát triển.

Nguyễn Thành Phƣớc – 11T2

2



Xây dựng mạng xã hội sử dụng Laravel Frameword

CHƢƠNG 1: TÌM HIỂU VỀ MƠ HÌNH MVC VÀ
LARAVEL FRAMEWORK
1.1. MỘT SỐ KHÁI NIỆM
1.1.1. Mạng xã hội
Mạng xã hội, hay gọi là mạng xã hội ảo (social network) là dịch vụ kết nối các
thành viên cùng sở thích trên Internet lại với nhiều mục đích khác nhau khơng phân
biệt thời gian và không gian. Những ngƣời tham gia vào mạng xã hội đƣợc gọi là cƣ
dân mạng.
1.1.2. Mạng xã hội du lịch
Mạng xã hội du lịch có những tính năng chính nhƣ chat, đăng trạng thái, chia
sẻ hình ảnh, video, tìm kiếm và kết nối bạn bè. Tìm kiếm các địa điểm du lịch kết
hợp với việc hiển thị các địa điểm có sẳn và hiển thị các nhà hàng khách sạn gần
khu vực đó.
1.1.3. Đặc điểm của mạng xã hội
Là một website mở, nội dung đƣợc tạo ra bởi các thành viên tham gia trang.
Tất cả những gì ngƣời dùng chia sẻ, bao gồm cả cập nhật trạng thái, chia sẻ ảnh,
video,… chính là nội dung của MXH.
Có sự tham gia trực tiếp của nhiều cá nhân hay doanh nghiệp: Lƣợng ngƣời sử
dụng MXH ngày một tăng nhanh là cơ hội cho các doanh nghiệp tiếp cận công
chúng một cách dể dàng với chi phí rẻ hơn rất nhiều so với các phƣơng tiện truyền
thông khác, đặc biệt là các doanh nghiệp vừa và nhỏ.
Độ tƣơng tác cao: Cung cấp các công cụ cho phép mọi ngƣời chia sẻ thông tin
và tƣơng tác online với nhau theo nhiều cách nhƣ thích, bình luận, chat,… Nhờ vậy
ngƣời dùng có thể cùng nhau thảo luận, chia sẻ, tƣơng tác với nhau ở bất cứ đâu với
gia hay bạn bè. Không những vậy các MXH hiện nay cịn có tính năng liên kết với
các trang MXH khác lại với nhau. Với sự giúp đỡ của các ứng dụng tiện ích, bạn có
Nguyễn Thành Phƣớc – 11T2


3


Xây dựng mạng xã hội sử dụng Laravel Frameword

thể tích hợp nhiều trang MXH nhƣ: Facebook, Twitter, Zingme,… một cách nhanh
chóng.
1.2. GIỚI THIỆU MƠ HÌNH MVC
1.2.1. Giới thiệu
MVC là viết tắt của Model – View – Controller. Là một trong những mẩu thiết
kế. Đƣợc vận hành để tách mã lệnh thành 3 phần riêng biệt. Ở mỗi phần MVC sẽ có
những chức năng đặc thù. Để xử lý các tác vụ mà request gởi tới. MVC làm cho mã
lệnh trở nên trong sáng, dễ phát triển và dễ nâng cấp theo thời gian.
Để làm việc tốt đối với MVC, chúng ta cần nắm thật vững kiến thức OOP. Bản
chất của các Framework khác cũng đƣợc hình thành trên lý thuyết MVC. Do vậy
nếu chúng ta nắm tốt MVC. Thì ở những Framework khác chắc chắn sẽ khơng cảm
thấy khó hiểu.


Model: Là thành phần chịu trách nhiệm xử lý các thao tác trên database. Và

gởi trả kết quả thơng qua view.


View: Là phần hiển thị thông tin trên website, sau khi đi qua controller và

nhận kết quả từ phía model thì view là bƣớc cuối cùng để chuyển thông tin tới ngƣời
dùng.



Controller: Là phần điều hƣớng các request tới những tác vụ tƣơng ứng.

Controller là một phần không thể thiếu ở bất cứ Framework nào. Vì nó có trách
nhiệm gởi và nhận request từ hệ thống tới ngƣời sử dụng.
1.2.2. Lịch sử mơ hình MVC
Tất cả bắt đầu vào những năm 70 của thế kỷ 20, tại phịng thí nghiệm Xerox
PARC ở Palo Alto. Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập
trình hƣớng đối tƣợng ( Object Oriented Programming) cho phép lập trình viên làm
việc với những thành phần đồ họa nhƣ những đối tƣợng đồ họa có thuộc tính và
phƣơng thức riêng của nó. Khơng dừng lại ở đó, những nhà nghiên cứu ở Xerox

Nguyễn Thành Phƣớc – 11T2

4


Xây dựng mạng xã hội sử dụng Laravel Frameword

PARC còn đi xa hơn khi cho ra đời cái gọi là kiến trúc MVC ( viết tắt của Model –
View – Controller).
MVC đƣợc phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug.
MVC lần đầu tiên xuất hiện công khai là trong Smalltalk-80. Sau đó trong một thời
gian dài hầu nhƣ khơng có thơng tin nào về MVC, ngay cả trong tài liệu 80
Smalltalk. Các giấy tờ quan trọng đầu tiên đƣợc công bố trên MVC là “A Cookbook
for Using the Model – View -Controller User Interface Paradigm in Smalltalk – 80”,
bởi Glenn Krasner và Stephen Pope, xuất bản trong tháng 8 / tháng 9 năm 1988.
1.2.3. Kiến trúc mô hình MVC
Trong kiến trúc MVC, một đối tƣợng đồ họa ngƣời dùng(GUI Compone nt) bao
gồm 3 thành phần cơ bản: Model, View, và Controller. Model có trách nhiệm đối

với tồn bộ dữ liệu cũng nhƣ trạng thái của đối tƣợng đồ họa. View chính là thể hiện
trực quan của Model, hay nói cách khác chính là giao diện của đối tƣợng đồ họa. Và
Controller điều khiển việc tƣơng tác giữa đối tƣợng đồ họa với ngƣời sử dụng cũng
nhƣ những đối tƣợng khác.

Nguyễn Thành Phƣớc – 11T2

5


Xây dựng mạng xã hội sử dụng Laravel Frameword

Hình 1: Các thành phần chính của mơ hình MVC.

Khi ngƣời sử dụng hoặc những đối tƣợng khác cần thay đổi trạng thái của đối
tƣợng đồ họa, nó sẽ tƣơng tác thơng qua Controller của đối tƣợng đồ họa. Controller
sẽ thực hiện việc thay đổi trên Model. Khi có bất kỳ sự thay đổi nào xảy ra ở Model,
nó sẽ phát thơng điệp (broadcast message) thông báo cho View và Controller biết.
Nhận đƣợc thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo
rằng nó ln là thể hiện trực quan chính xác của Model. Cịn Controller, khi nhận
đƣợc thơng điệp từ Model, sẽ có những tƣơng tác cần thiết phản hồi lại ngƣời sử
dụng hoặc các đối tƣợng khác.

Nguyễn Thành Phƣớc – 11T2

6


Xây dựng mạng xã hội sử dụng Laravel Frameword


Hình 2: Mơ hình tuần tự của MVC.
1.2.4. Đặc điểm mơ hình MVC
Cái lợi ích quan trọng nhất của mơ hình MVC là nó giúp cho ứng dụng dễ bảo
trì, module hóa các chức năng, và đƣợc xây dựng nhanh chóng. MVC tách các tác
vụ của ứng dụng thành các phần riêng lẻ model, view, controller giúp cho việc xây
dựng ứng dụng nhẹ nhàng hơn. Dễ dàng thêm các tính năng mới, và các tính năng
cũ có thể dễ dàng thay đổi. MVC cho phép các nhà phát triển và các nhà thiết kế có
thể làm việc đồng thời với nhau. MVC cho phép thay đổi trong 1 phần của ứng dụng
mà không ảnh hƣởng đến các phần khác.
Sở dĩ nhƣ vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữa các
thành phần trong một đối tƣợng đồ họa, làm tăng tính linh động (flexibility) và tính
tái sử dụng (reusebility) của đối tƣợng đồ họa đó. Một đối tƣợng đồ họa bấy giờ có
thể dễ dàng thay đổi giao diện bằng cách thay đổi thành phần View của nó trong khi
cách thức lƣu trữ (Model) cũng nhƣ xử lý (Controller) khơng hề thay đổi. Tƣơng tự,
ta có thể thay đổi cách thức lƣu trữ (Model) hoặc xử lý (Controller) của đối tƣợng
đồ họa mà những thành phần còn lại vẫn giữ ngun.
Chính vì vậy mà kiến trúc MVC đã đƣợc ứng dụng để xây dựng rất nhiều
Framework và thƣ viện đồ họa khác nhau. Tiêu biểu là bộ thƣ viện đồ họa của ngơn
ngữ lập trình hƣớng đối tƣợng SmallTalk (cũng do Xerox PARC nghiên cứu và phát
triển vào thập niên 70 của thế kỷ 20). Các Swing Components của Java cũng đƣợc
Nguyễn Thành Phƣớc – 11T2

7


Xây dựng mạng xã hội sử dụng Laravel Frameword

xây dựng dựa trên kiến trúc MVC. Đặc biệt là nền tảng ASP.NET MVC
Framework.
1.2.5. Tìm hiểu Controller

Controller có trách nhiệm chính là điều hƣớng các yêu cầu của ngƣời sử dụng.
Nhƣ vậy trên toàn ứng dụng của ta, tất cả các request đều sẽ phải đi tới controller.
Và tại đây, ứng với các tham số ngƣời sử dụng truyền mà ta đƣa họ đến một tác vụ
nào đó trên ứng dụng.
1.2.6. Tìm hiểu Model
Model là thành phần chủ yếu đƣợc sử dụng để thao tác xử lý dữ liệu. Trong các
Framework, Model vẫn thƣờng sử dụng theo phƣơng thức Active Record. Một trong
những design pattern. Chúng có tác dụng rút ngắn thời gian viết câu truy vấn cho
ngƣời sử dụng. Biến những câu truy vấn phức tạp trở nên gần gũi và thân thiện với
ngƣời sử dụng thông qua các thƣ viện đƣợc định nghĩa sẵn.
1.2.7. Tìm hiểu View
View là phần hiển thị thông tin tƣơng phản khi gởi và nhận yêu cầu. Trƣớc đây,
khi ngƣời lập trình chƣa nghĩ tới view. Họ thƣờng thao tác xử lý dữ liệu ngay trực
tiếp trên ứng dụng và đổ cả dữ liệu ngay trên file PHP đó. Điều này làm cho ứng
dụng trở nên cồng kềnh, và đặc biệt rất khó cho việc bảo trì nâng cấp sau này. Nhất
là đối với designer, việc thay đổi giao diện của một website luôn làm cho họ cảm
thấy đau đầu vì phải vọc thẳng vào core.
1.2.8. Ƣu khuyết điểm của mơ hình MVC
Ƣu Điểm:

MVC làm cho ứng dụng trở nên trong sáng, giúp lập trình viên phân tách ứng
dụng thành ba lớp một cách rõ ràng. Điều này sẽ rất giúp ích cho việc phát triển
những ứng dụng xét về mặt lâu dài cho việc bảo trì và nâng cấp hệ thống.
MVC hiện đang là mơ hình lập trình tiên tiến bậc nhất hiện nay, điều mà các
Framework vẫn đang nổ lực để hƣớng tới sự đơn giản và yếu tố lâu dài cho ngƣời sử
dụng.
Nguyễn Thành Phƣớc – 11T2

8



Xây dựng mạng xã hội sử dụng Laravel Frameword
Khuyết Điểm:

Mặc dù, MVC tỏ ra lợi thế hơn nhiều so với cách lập trình thơng thƣờng. Nhƣng
MVC ln phải nạp, load những thƣ viện đồ sộ để xử lý dữ liệu. Chính điều này làm
cho mơ hình trở nên chậm chạp hơn nhiều so với việc code tay thuần túy.
MVC đòi hỏi ngƣời tiếp cận phải biết qua OOP, có kinh nghiệm tƣơng đối cho
việc thiết lập và xây dựng một ứng dụng hồn chỉnh. Sẽ rất khó khăn nếu OOP của
ngƣời sử dụng còn yếu.
MVC tận dụng mảng là thành phần chính cho việc truy xuất dữ liệu. Nhất là với
việc sử dụng active record để viết ứng dụng. Chúng ln cần ngƣời viết phải nắm
vứng mơ hình mảng đa chiều.
1.3. GIỚI THIỆU LARAVEL FRAMEWORK
1.3.1. Giới thiệu
Larvel là một mã nguồn mở, là một Framework dùng để xây dựng web
application, đƣợc thiết kế dựa trên mơ hình MVC (Model, View, Controller), toàn
bộ source code đƣợc đặt trên github. Theo kết quả khảo sát của các Deverloper vào
tháng 12 năm 2013, thì Laravel Framework đứng top 1 trong những Framework
phổ biến nhất, tiếp sau là Phalcon, Symfony2, Codelgniter và các Framework khác.
Tháng 8 năm 2014, Laravel Framework đƣợc xem nhƣ là một dự án PHP phổ biến
nhất trên Github.
1.3.2. Lịch sử phát triển của Laravel
Laravel đƣợc Taylor Otwell tạo ra nhƣ một giải pháp thay thế cho
CodeIgniter, cung cấp nhiều tính năng quan trọng hơn nhƣ xác thực và phân quyền.
Tôi cũng khơng chắc về điều này, nhƣng có thể Taylor vốn là một .NET developer
khi bắt đầu có nhu cầu làm việc với PHP khoảng vào những năm 2010-2011, đã
chọn CodeIgniter khi đó đang là một ngơi sao mới nổi, thậm chí lấn át cả Symfony
gạo cội. Và Taylor nhanh chóng nhận ra những điểm khiếm khuyết ở CodeIgniter,
với tài năng và kiến thức xuất sắc về design-pattern của mình, Taylor quyết định tự

mình tạo ra một Framework sao cho thật đơn giản, dễ hiểu, hỗ trợ lập trình viên hiện
Nguyễn Thành Phƣớc – 11T2

9


Xây dựng mạng xã hội sử dụng Laravel Frameword

thực ý tƣởng một cách nhanh nhất bằng nhiều tính năng hỗ trợ nhƣ Eloquent ORM
mạnh mẽ, xác thực đơn giản, phân trang hiệu quả, và hơn thế nữa.
Bản Laravel beta đầu tiên đƣợc phát hành vào ngày 9/6/2011, tiếp đó là:
Laravel 1 phát hành trong cùng tháng. Laravel 1 bao gồm các tính năng nhƣ
xác thực, bản địa hóa, model, view, session, định tuyến và các cơ cấu khác, nhƣng
vẫn còn thiếu controller, điều này làm nó chƣa thật sự là một MVC Framework
đúng nghĩa.
Laravel 2 đƣợc phát hành vào tháng 9 năm 2011, mang đến nhiều cài tiến từ
tác giả và cộng đồng. Tính năng đáng kể bao gồm hỗ trợ controller, điều này thực sự
biến Laravel 2 thành một MVC Framework hoàn chỉnh, hỗ trợ Inversion of Control
(IoC), hệ thống template Blade. Bên cạnh đó, có một nhƣợc điểm là hỗ trợ cho các
gói của nhà phát triển bên thứ 3 bị gỡ bỏ.
Laravel 3 đƣợc phát hành vào tháng 2 năm 2012, với một tấn tính năng mới
bao gồm giao diện dòng lệnh (CLI) tên “Artisan”, hỗ trợ nhiều hơn cho hệ thống
quản trị cơ sở dữ liệu, chức năng ánh xạ cơ sở dữ liệu Migration, hỗ trợ “bắt sự
kiện” trong ứng dụng, và hệ thống quản lý gói gọi là “Bundles”. Lƣợng ngƣời dùng
và sự phổ biến tăng trƣởng mạnh kể từ phiên bản Laravel 3.
Laravel 4, tên mã “Illuminate”, đƣợc phát hành vào tháng 5 năm 2013. Lần
này thực sự là sự lột xác của Laravel Framework, di chuyển và tái cấu trúc các gói
hỗ trợ vào một tập đƣợc phân phối thông qua Composer, một chƣơng trình quản lý
gói thƣ viện phụ thuộc độc lập của PHP. Bố trí mới nhƣ vậy giúp khả năng mở rộng
của Laravel 4 tốt hơn nhiều so với các phiên bản trƣớc. Ra mắt lịch phát hành chính

thức mỗi sáu tháng một phiên bản nâng cấp nhỏ. các tính năng khác trong Laravel 4
bao gồm tạo và thêm dữ liệu mẫu (database seeding), hỗ trợ hàng đợi, các kiểu gởi
mail, và hỗ trợ “xóa mềm” (soft-delete: record bị lọc khỏi các truy vấn từ Eloquent
mà không thực sự xóa hẳn khỏi DB).
Laravel 5 đƣợc phát hành trong tháng 2 năm 2015, nhƣ một kết quả thay đổi
đáng kể cho việc kết thúc vòng đời nâng cấp Laravel lên 4.3. Bên cạnh một loạt tính
Nguyễn Thành Phƣớc – 11T2

10


Xây dựng mạng xã hội sử dụng Laravel Frameword

năng mới và các cải tiến nhƣ hiện tại, Laravel 5 cũng giới thiệu cấu trúc cây thƣ mục
nội bộ cho phát triển ứng dụng mới. Những tính năng mới của Laravel 5 bao gồm hộ
trợ lập lịch định kỳ thực hiện nhiệm vụ thơng qua một gói tên là “Scheduler”, một
lớp trừu tƣợng gọi là “Flysystem” cho phép điều khiển việc lƣu trữ từ xa đơn giản
nhƣ lƣu trữ trên máy local – dễ thấy nhất là mặc định hỗ trợ dịch vụ Amazone S3,
cải tiến quản lý assets thông qua “Elixir”, cũng nhƣ đơn giản hóa quản lý xác thực
với các dịch vụ bên ngồi bằng gói “Socialite”.
Laravel 5.1 phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên nhận
đƣợc hỗ trợ dài hạng (LTS) với một kết hoạch fix bug lên tới 2 năm vào hỗ trợ vá
lỗi bảo mật lên tới 3 năm. Các bản phát hành LTS của Laravel đƣợc lên kế hoạch
theo mỗi 2 năm.
Laravel 5.2 chính thức ra mắt ngày 21-12-2015, phiên bản này bao gồm
những tính năng mới nhƣ: Hỗ trợ multiple authentication, hỗ trợ việc xử lý chứng
thực một cách dể dàng cho phía back-end, tính năng rate limit cho phép bạn giới hạn
số lần gửi request từ 1 IP đến 1 route trong một khoảng thời gian cụ thể.
1.3.3. Sơ lƣợc tính năng cơ bản của Laravel Framework
Bundles: Cung cấp một hệ thống đóng gói các module với rất nhiều tính

năng đi kèm.
Composer: Đƣợc sử dụng nhƣ một cơng cụ quản lý với tính năng nhƣ thêm
các gói cài đặt, các chức năng PHP phụ trợ cho Laravel có trong kho Packagist.
Eloquent ORM: Ánh xạ các đối tƣợng và quan hệ cơ sở dữ liệu, cung cấp
các phƣơng thức nội bộ để thực thi đồng thời cũng bổ sung các tính năng hạn chế
về mối quan hệ giữa các đối tƣợng trong cơ sở dữ liệu. Eloquent ORM trình bày các
bảng trong cơ sở dữ liệu dƣới dạng các lớp, cung cấp thêm các lựa chọn truy cập sơ
sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệp hơn.
Application logic: Là một phần của phát triển ứng dụng, đƣợc sử dụng bởi
bộ điều khiền controller.
Nguyễn Thành Phƣớc – 11T2

11


Xây dựng mạng xã hội sử dụng Laravel Frameword

Route: Định nghĩa mối quan hệ giữa các đƣờng dẫn (url), các liên kết (link).
Khi một liên kết đƣợc tạo ra bằng cách sử dụng tên của route, thì một định danh liên
kết thống nhất sẽ đƣợc tạo ra bởi Laravel.
Restful Controller: Cung cấp các tùy chọn để tách các logic phía sau các
request HTTP POST, GET.
Class auto loading: Cung cấp việc tải tự động các class trong PHP, mà
không cần include các class vào. Tùy thuộc vào yêu cầu các class cần thiết sẽ đƣợc
nạp vào, hạn chế các class không cần thiết.
View: Chứa các mã html, hiển thị dữ liệu đƣợc chỉ định bởi controller.
Migrations: Cung cấp một hệ thống kiểm soát các phiên bản lƣợc đồ cơ sở
dữ liệu (database scheme), làm cho web application có khả năng tƣơng tác phù hợp
với những thay đỗi logic, các đoạn mã code của ứng dụng và những thay đỗi cần
thiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cập nhật các ứng dụng.

Unit Testing: Đóng một vai trò quan trọng trong Laravel, Unit testing chứa
rất nhiều các hệ thống unit testing, giúp phát triển và ngăn chặn lỗi trong khn khổ
nhất định. Unit testing có thể đƣợc chạy thơng qua tiện ích command-line.
Automatic pagination: Tính năng tự động phân trang đƣợc tích hợp vào
Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với các phƣơng
pháp thông thƣờng.
1.4. TIẾN ĐỘ THỰC HIỆN ĐỀ TÀI
Quy trình
Phân tích đề tài

Thời gian
29-30

Thiết kế cơ sở dữ liệu
Cài đặt Frameword Laravel và các công
cụ hỗ trợ.

31-32

Tạo cơ sở dữ liệu
Thiết kế hệ thống, giao diện
Nguyễn Thành Phƣớc – 11T2

33-35
12


Xây dựng mạng xã hội sử dụng Laravel Frameword

Code chức năng

Kiểm thử
Viết báo cáo

36-38
39
39-40

1.5. KẾT CHƢƠNG
Trên đây tôi vừa giới thiệu một số thông tin về Laravel Framework dành cho
các lập trình viên web. Nhìn vào sự phát triển của Framework hiện nay, chúng ta có
thể thấy rằng Laravel đang là Framework hot nhất hiện nay. Năm 2015 mới chỉ trơi
qua, đây là cơ hội cho lập trình viên Việt Nam chúng ta bắt kịp với tiến trình của thế
giới. Hãy bắt tay vào tự học Laravel Framework, từ căn bản đến nâng cao. Cùng
chung tay góp sức cống hiến cho nền khoa học và công nghệ nƣớc nhà.

Nguyễn Thành Phƣớc – 11T2

13


Xây dựng mạng xã hội sử dụng Laravel Frameword

CHƢƠNG 2: PHÂN TÍCH ĐỀ TÀI VÀ KẾ HOẠCH
TRIỂN KHAI
2.1. PHÂN TÍCH ĐỀ TÀI
2.1.1. Lý do lựa chọn đề tài
Kể từ khi có kết nối mạng trên tồn cầu (internet) và nhất là sau khi điện thoại
thơng minh hay máy tính bảng đƣợc chế tạo, việc sử dụng mạng xã hội (Facebook,
Instagram, Viber, Zalo, Skype, Whatsapp, Youtube, Linked, Twitter, … đã khơng
cịn xa lạ với hầu hết ngƣời dùng, kể cả trẻ em, thanh thiếu niên và ngƣời lớn tuổi.

Nhiều ngƣời dùng phàn nàn về sự thiếu kiểm soát trong việc sử dụng rộng rãi
các mạng xã hội nhƣ: có khả năng gây nghiện cao, thông tin tràn lan, mất nhiều thời
gian, công sức và tiềm ẩn nhiều rủi ro về đời sống cá nhân hay sự cân bằng cảm xúc
do quá mải mê hay ganh đua số lƣợng Fan hoặc cạnh tranh, so sánh hay chỉ trích
thái quá.
Tuy nhiên, MXH (social network) vẫn tiếp tục đƣợc sử dụng ngày càng rộng rãi
và ngun nhân là vì những lợi ích tuyệt vời do xu thế này đang mang lại mà chúng
ta không thể phủ nhận. Nhƣng thông tin trên mạng lại quá nhiều khơng đi sâu vào
một lĩnh vực nào cả, vì vậy tôi chọn đề tài này nhằm tạo một sân chơi cho ngƣời
dùng, tạo một nơi cập nhật địa điểm, nhà hàng, khách san hay nơi trò chuyện giữa
các ngƣời dùng.
2.1.2. Mục tiêu đề tài
Nhằm tạo một trang cập nhật tin tức, địa điểm, xu thế du lịch hiện nay, cải thiện
chất lƣợng thông tin, kết nối bạn bè gia đình và cộng đồng, tiết kiệm kinh phí thời
gian. Tạo mơi trƣờng giải trí thân thiện cho ngƣời dùng, nâng cao tầm hiểu biết về
các địa điểm du lịch.
2.1.3. Phân tích chức năng chính
Để thể hiện rõ là một website mạng xã hội du lịch thì ngồi các tính năng thông
thƣờng của một trang mạng xã hội nhƣ: chat, cập nhật trang thái, bình luận, like,
Nguyễn Thành Phƣớc – 11T2

14


Xây dựng mạng xã hội sử dụng Laravel Frameword

chia sẽ, … Ở đây mình bố trí thêm vào các chức năng nhƣ: tìm kiếm địa điểm trên
map, hay các địa điểm du lịch nổi tiếng,…
Phần cập nhật trạng thái mình cần viết về một địa điểm và đi kèm với nó là vị trí,
hình ảnh và có thể có hoặc khơng có video về địa điểm du lịch đó.

Ngồi ra ở đây cịn có thơng tin về các địa điểm du lịch mới mở, hay là các địa điểm
thu hút khách du lịch nhất. Ngƣời xem có thể xem chi tiết về các địa điểm hay khách
sạn hoặc nhà hàng gần địa điểm du lịch đó. Thơng tin này do admin cung cấp.
2.2. PHÂN TÍCH TRIỂN KHAI HỆ THỐNG
2.2.1. Phân tích yêu cầu ngƣời dùng, ngƣời quản trị
 Ngƣời dùng:
 Giao diện dể sử dung, có tính thẩm mỹ cao.
 Cho phép ngƣời dùng đăng ký thành viên và đảm bảo bí mật các
thơng tin của ngƣời dùng (có thể sử dụng các tài khoản google hay
facebook để đăng nhập vào hệ thống).
 Xem và thay đỗi thông tin tài khoản.
 Ngƣời dùng có thể sử dụng các chức năng chính của một trang
MXH bao gồm: cập nhật trạng thái, thích, chia sẻ bài viết, chat,
đăng ảnh hay video…
 Ngồi ra có thể xem và thêm mới các địa điểm du lịch. Đƣa phản
hồi về địa điểm du lịch, nhà hàng, nhà nghỉ gần vị trí du lịch.
 Các tour du lịch có sẳn
 Tìm kiếm các địa điểm du lịch,nhà hàng, khách sạn hoặc bạn bè.
 Tìm kiếm vị trí các địa điểm tích hợp bởi google map.
 Ngƣời quản trị:
 Quản lý thông tin ngƣời dùng.

Nguyễn Thành Phƣớc – 11T2

15


×