mẩu báo cáo đồ án tốt nghiệp ngành công nghệ thông tinĐề tài: Xây dựng mạng xã hội du lịch với frameword LaravelDành cho nhưng ai chưa có kiến thức về trình bày văn bản và đây là mẩu chuẩn do trường đại học bách khoa đà nẵng xây dựng
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Tel (84-511) 3736949, Fax (84-511) 3842771 Website: itf.dut.udn.vn, E-mail: cntt@dut.udn.vn
ĐỒ Á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
Trang 2Đầ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 quá 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 hoà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, đã luôn 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 quý Thầy Cô và các bạn
Nguyễn Thành Phước
Trang 3Tô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 hoàn toàn trách nhiệm
Sinh viên thực hiện
Nguyễn Thành Phước
Trang 4
Trang 5
Trang 6
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ỚITHIỆ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ỚITHIỆ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ẾTCHƯƠ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
Trang 72.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 yê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Á ƯUNHƯỢ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
Trang 8Hì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
Trang 9Hì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
Trang 10Từ 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)
Trang 11MỞ ĐẦ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 toà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 Ngoà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
Trang 122.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
Trang 13CHƯƠ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ó
Trang 14thể 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
Trang 15PARC 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 toà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
Trang 16Hì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ó luôn 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
Trang 17Hình 2: Mô hình tuần tự của MVC
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ữ nguyên
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
Trang 18xâ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.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
Trang 19Khuyế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 luôn 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 hoà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 luôn 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.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
Trang 20thự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
Trang 21nă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 ngoà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
Trang 22Route: Đị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 khuôn 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
Trang 24CHƯƠ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 toà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à nguyên 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ì ngoà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,
Trang 25chia 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 đó
Ngoà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…
Ngoà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
Trang 26 Quản lý các thông tin: Địa điểm, nhà hàng, khách sạn, tour
Thay đỗi quyền của các user
2.2.2 Tạo bảng cơ sở dữ liệu
Bảng thành viên: Nơi lưu trữ thông tin người dùng và tài khoản của nzgười quản trị bao gồm: Email, Username, Password, birthday, Avatar, Phone Number, First Name, Last Name, Role Sử dụng cho việc đăng ký, đăng nhập hay việc đăng nhập bằng tài khoản facebook hay google
Hình 3: Bảng thành viên
Trang 27 Bảng địa điểm: Thông tin ở bảng này do người quản trị quản lý bao gồm việc: thêm sửa xóa các địa điểm du lịch nổi tiếng và các bài giới thiệu về địa điểm đó
Hình 4: Bảng địa điểm
Bảng Tour: Chứa các chuyến du lịch dựa theo thông tin từ bảng địa điểm đưa ra các chuyến đi, giá cả và ngày giờ Bảng này người dùng không có quyền thêm sửa xóa
Hình 5: Bảng Tours