TÌM HIỂU FRAMEWORK LARAVEL 5 X VÀ ỨNG DỤNG PHÁT TRIỂN HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH TRỰC TUYẾN - Full 10 điểm

82 0 0
TÌM HIỂU FRAMEWORK LARAVEL 5 X VÀ ỨNG DỤNG PHÁT TRIỂN HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH TRỰC TUYẾN - Full 10 điểm

Đ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

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN -----  ----- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Đ ề tài: TÌM HIỂU FRAMEWORK LARAVEL 5 X VÀ ỨNG DỤNG PHÁT TRIỂN HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH TRỰC TUYẾN Sinh viên thực hiện: Nguyễn Duy Tuấn MSSV: 2113021036 Chuyên nghành: Công nghệ thông tin Khoá học: 2013 – 2017 Giảng viên hướng dẫn: ThS ĐỖ QUANG KHÔI Qu ả ng Nam, tháng 04 n ă m 2017 LỜI CẢM ƠN Trước hết em xin gửi lời cảm ơn sâu sắc đến ThS Đỗ Quang Khôi, người đã trực tiếp hướng dẫn, giúp đỡ, định hướng và đóng góp ý kiến cho em trong suốt thời gian làm bài để em có thể hoàn thành bài khóa luận tốt nghiệp này Em xin chân thành cảm ơn tất cả thầy cô giáo trường Đại học Quảng Nam, đặc biệt là các thầy, cô trong Khoa Công nghệ thông tin của trường đã tận tình dạy dỗ và truyền đạt kiến thức cho em trong suốt quá trình học tập và nghiên cứu tại trường, tạo điều kiện thuận lợi cho em trong thời gian cuối khóa để hoàn thành chương trình tốt nghiệp Em cũng gửi lời cảm ơn đến Trung tâm học liệu và Công nghệ thông tin – Trường Đại học Quảng Nam đã tạo môi trường, điều kiện giúp đỡ cho em trong suốt quá trình thực tập tốt nghiệp và những kinh nghiệm trong thực tế Đồng thời, em cũng gửi lời cảm ơn đến gia đình, bạn bè đã động viên, giúp đỡ em lúc khó khăn trong học tập và trong cuộc sống MỤC LỤC Phần 1 MỞ ĐẦU 1 1 1 Lý do chọn đề tài 1 1 2 Mục tiêu của đề tài 1 1 3 Đối tượng và phạm vi nghiên cứu 2 1 4 Phương pháp nghiên cứu 2 1 5 Lịch sử nghiên cứu 2 1 6 Đóng góp của đề tài 2 1 7 Cấu trúc của khóa luận 2 Phần 2 NỘI DUNG NGHIÊN CỨU 4 Chương 1: TỔNG QUAN VỀ FRAMEWORK LARAVEL 4 1 1 Giới thiệu Framework Laravel 4 1 1 1 Khái ni ệ m 4 1 1 2 L ị ch s ử phát tri ể n c ủ a Laravel 4 1 1 3 Ư u đ i ể m c ủ a Framework Laravel 4 1 2 Cài đặt Framework Laravel 5 1 2 1 Yêu c ầ u h ệ th ố ng 5 1 2 2 Cài đặ t Framework Laravel 5 1 3 Kết luận chương 1 6 Chương 2: PHÁT TRIỂN WEBSITE TRÊN NỀN TẢNG FRAMEWORK LARAVEL 7 2 1 Tổng quan về mô hình MVC 7 2 2 Mô hình MVC trong Framework Laravel 7 2 2 1 Controller 7 2 2 2 View 7 2 3 3 Model 7 2 3 Framework Laravel trong xây dựng website với mô hình MVC 8 2 3 1 Cách s ử d ụ ng Route trong Laravel 8 2 3 2 Cách s ử d ụ ng View, Model và Controller trong Laravel 9 2 3 3 S ử d ụ ng Blade Templates engine trong Laravel 11 2 3 4 Làm vi ệ c v ớ i database b ằ ng l ệ nh trong Laravel 13 2 3 5 T ạ o m ố i quan h ệ Relationships trong Laravel 22 2 4 Kết luận chương 2 30 Chương 3: XÂY DỰNG HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH TRỰC TUYẾN 31 3 1 Phát biểu bài toán 31 3 2 Phân tích và thiết kế hệ thống 31 3 2 1 Các tác nhân c ủ a h ệ th ố ng 31 3 2 2 Ca s ử d ụ ng c ủ a h ệ th ố ng 31 3 2 3 Bi ể u đồ ca s ử d ụ ng c ủ a h ệ th ố ng 32 3 2 4 Đặ c t ả các ca s ử d ụ ng 33 3 2 5 Mô hình c ấ u trúc h ệ th ố ng 38 3 2 6 Mô hình hành vi c ủ a h ệ th ố ng 42 3 2 7 Thi ế t k ế h ệ th ố ng 48 3 3 Chương trình thử nghiệm 64 3 4 Kết luận chương 3 71 Phần 3 KẾT LUẬN 72 Phần 4 TÀI LIỆU THAM KHẢO 73 DANH MỤC HÌNH VẼ Hình 1 1: Cài đặt Laravel 5 Hình 1 2: Giao diện Laravel sau khi cài đặt 6 Hình 2 1: Mô hình MVC 7 Hình 3 1: Ca sử dụng cho ban quản trị 32 Hình 3 2: Ca sử dụng cho khách hàng 32 Hình 3 3: Biểu đồ tuần tự cho ca sử dụng đăng nhập 42 Hình 3 4: Biểu đồ tuần tự cho ca sử dụng quản lý tour du lịch 43 Hình 3 5: Biểu đồ tuần tự cho ca sử dụng quản lý khách sạn 44 Hình 3 6: Biểu đồ tuần tự cho ca sử dụng quản lý phòng 45 Hình 3 7: Phương thức kiểm tra tài khoản 46 Hình 3 8: Phương thức thêm tour du lịch 46 Hình 3 9: Phương thức thêm khách sạn 47 Hình 3 10: Phương thức thêm phòng khách sạn 47 Hình 3 11: Cơ sở dữ liệu 48 Hình 3 12: Biểu đồ định hướng cửa sổ cho ca sử dụng đăng nhập 58 Hình 3 13: Biểu đồ định hướng cửa sổ cho ca sử dụng đăng ký tài khoản 59 Hình 3 14: Biểu đồ định hướng cho ca sử dụng quản lý tour du lịch 60 Hình 3 15: Biểu đồ định hướng cho ca sử dụng quản lý khách sạn 61 Hình 3 16: Biểu đồ định hướng cho ca sử dụng quản lý phòng khách sạn 62 Hình 3 17: Biểu đồ thành phần 63 Hình 3 18: Trang đăng nhập vào hệ thống 64 Hình 3 19: Trang chủ của hệ thống 64 Hình 3 20: Danh sách các tài khoản quản trị 65 Hình 3 21: Thêm mới tài khoản quản trị 65 Hình 3 22: Danh sách tour du lịch 66 Hình 3 23: Thêm tour du lịch 66 Hình 3 24: Danh sách khách sạn 67 Hình 3 25: Thêm khách sạn 67 Hình 3 25: Danh sách phòng 68 Hình 3 26: Thêm phòng khách sạn 68 Hình 3 27: Giao diện trang chủ 69 Hình 3 28: Giao diện trang danh sách khách sạn 70 Hình 3 29: Giao diện trang đặt phòng khách sạn 71 DANH MỤC BẢNG Bảng 3 1: Bảng dữ liệu User 49 Bảng 3 2: Bảng dữ liệu Tours 50 Bảng 3 3: Bảng dữ liệu category_tours 51 Bảng 3 4: Bảng dữ liệu book_tours 51 Bảng 3 5: Bảng dữ liệu areas 52 Bảng 3 6: Bảng dữ liệu review_tours 52 Bảng 3 7: Bảng dữ liệu category_hotels 53 Bảng 3 8: Bảng dữ liệu hotels 54 Bảng 3 9: Bảng dữ liệu rooms 55 Bảng 3 10: Bảng dữ liệu category_rooms 55 Bảng 3 11: Bảng dữ liệu book_rooms 56 Bảng 3 12: Bảng dữ liệu room_convenients 56 Bảng 3 13: Bảng dữ liệu hotel_convenients 57 Bảng 3 14: Bảng dữ liệu convenients 57 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tên tiếng anh Tên tiếng việt MVC Model – View – Controller Mô hình 3 lớp PK PRIMARY KEY Khóa chính CD Command Prompt Nhắc lệnh trong window FK Foreign key Khóa ngoại HTML HyperText Markup Language Mã HTML ORM Object-relational mapping Truy vấn đến database CSS Cascading Style Sheets Mã CSS PHP Hypertext Preprocessor Ngôn ngữ lập trình UML Unified Modeling Language ngôn ngữ dành cho việc đặc tả CSDL Database Cơ sở dữ liệu - 1 - Phần 1 MỞ ĐẦU 1 1 Lý do chọn đề tài Trong sự phát triển mạnh mẽ của khoa học công nghệ thế giới, có thể nói rằng ngành công nghệ thông tin phát triển với tốc độ nhanh nhất và ngày càng thể hiện được vai trò to lớn, hết sức quan trọng đối với toàn bộ đời sống con người Hầu hết các lĩnh vực trong xã hội đều ứng dụng công nghệ thông tin, nhiều phần mềm đã mang lại hiệu quả không thể phủ nhận Song thực tiễn luôn đặt ra những yêu cầu mới đòi hỏi ngành công nghệ thông tin không ngừng phát triển để thỏa mãn và đáp ứng những thay đổi của cuộc sống Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công ty… nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ Việc xây dựng các trang web để phục vụ cho các nhu cầu riêng của các tổ chức, công ty thậm chí các cá nhân ngày nay không lấy gì làm xa lạ Thông qua những website này, thông tin về họ cũng như các công văn, thông báo, quyết định của chính phủ hay các sản phẩm, dịch vụ mới của công ty sẽ đến với những người quan tâm, đến với khách hàng của họ một cách nhanh chóng kịp thời, tránh những phiền hà mà phương thức giao tiếp truyền thống thường gặp phải Hoạt động của một công ty du lịch có quy mô khá lớn sẽ càng được tăng cường và mở rộng nếu xây dựng được một website có khả năng giới thiệu được công ty và cho phép quản lý các tour du lịch và đặt phòng khách sạn một cách nhanh chóng và chính xác nhất Bắt nguồn với ý tưởng này, cùng với những gợi ý của thầy Đỗ Quang Khôi, em đã chọn đề tài “ Tìm hiểu Framework Laravel 5 x và ứng dụng phát triển hệ thống Quản lý dịch vụ du lịch trực truyến ” làm khóa luận tốt nghiệp 1 2 Mục tiêu của đề tài - Nắm vững những kiến thức cơ bản cũng như mô hình MVC trong Laravel Framework - 2 - - Áp dụng Framework Laravel để viết ứng dụng phát triển hệ thống Quản lý dịch vụ du lịch trực truyến 1 3 Đối tượng và phạm vi nghiên cứu - Kiến thức về MVC và Framework Laravel - Ứng dụng Framework Laravel vào xây dựng 1 hệ thống 1 4 Phương pháp nghiên cứu - Tìm đọc tài liệu trên trang chủ laravel com, giáo trình, luận văn, bài báo, thông tin trên mạng, tìm hiểu thực tế - Phân tích, tổng hợp tài liệu - Phân tích và thiết kế hệ thống theo hướng tiếp cận UML 1 5 Lịch sử nghiên cứu - Framework Laravel đã được một số tác giả tìm hiểu và nghiên cứu trước đó - Phần lớn các tác giả đều cho thấy một cách tổng quan về nội dung lý thuyết của Framework Laravel đồng thời cũng xây dựng một hệ thống phù hợp với môi trường và bản thân tác giả - Với những ưu điểm của mình thì lập trình PHP và Framework Laravel đã được sử dụng trong nhiều hệ thống lớn tuy nhiên nó còn khá mới mẻ đối với sinh viên trường Đại học Quảng Nam 1 6 Đóng góp của đề tài - Đề tài được nghiên cứu nhằm trình bày tổng quan về Framework Laravel 5 x - Trình bày những kiến thức cơ bản và tổng quan về mô hình MVC trong Framework Laravel - Xây dựng ứng dụng trong việc quản lý dịch vụ du lịch trực truyến 1 7 Cấu trúc của khóa luận Lời cảm ơn Mục lục - 3 - Danh mục các hình vẽ MỞ ĐẦU 1 Lý do chọn đề tài 2 Mục đích nghiên cứu 3 Đối tượng và phạm vi nghiên cứu 4 Phương pháp nghiên cứu 5 Lịch sử nghiên cứu 6 Đóng góp của đề tài NỘI DUNG Ch ươ ng 1: T ổ ng quan v ề Framework Laravel Ch ươ ng 2: Phát tri ể n website trên n ề n t ả ng Framework Laravel Ch ươ ng 3: Xây d ự ng h ệ th ố ng qu ả n lý d ị ch v ụ du l ị ch tr ự c tuy ế n KẾT LUẬN TÀI LIỆU THAM KHẢO - 4 - Phần 2 NỘI DUNG NGHIÊN CỨU Chương 1: TỔNG QUAN VỀ FRAMEWORK LARAVEL 1 1 Giới thiệu Framework Laravel 1 1 1 Khái niệm Laravel là một Framework dùng để xây dựng web application, nó được thiết kế dựa trên mô hình MVC (Model, View, Controller) 1 1 2 Lịch sử phát triển của Laravel Laravel là một PHP Framework khá mới, phiên bản đầu tiên là Laravel 1 được phát hành vào tháng 6/2011, tiếp sau đó vào tháng 9/2011 thì Laravel 2 được phát hành với nhiều cải tiến đáng kể như hỗ trợ Inversion of control (Ioc), hệ thống template Balde, Laravel 3 được phát hành vào tháng 2/2012 với nhiều tính năng bao gồm giao diện dòng lệnh artisan (CLI) 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 và hỗ trợ bắt sự kiện trong ứng dụng Tiếp sau đó là Laravel 4 được phát hành vào tháng 5/2013 lần này 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, Laravel 5 được phát hành vào tháng 2/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 1 1 3 Ưu điểm của Framework Laravel Laravel được chú ý điến với nhiều ưu điểm “ nh ẹ mà hay ” như Eloquent ORM, localization, models và relationship, routing, caching, sessions, view … Laravel là một Framework ra đời khá trễ nên nó được thừa hưởng tất cả các thế mạnh và ưu điểm của các Framework khác Ở phần routing của laravel rất mạnh mẽ Laravel sử dụng mô hình ORM để tương tác với cở sở dữ liệu rất mạnh mẽ mà không cần phải tương tác đến trình quản lý của mysql Nó dễ dàng tích hợp các thư viện khác vào dự án thông qua composer - 5 - 1 2 Cài đặt Framework Laravel 1 2 1 Yêu cầu hệ thống Trước tiên khi cài đặt Laravel, chúng ta cần phải đảm bảo rằng Apache, PHP, mysql đã được cài đặt, đối với từng phiên bản của Laravel thì yêu cầu hệ thống phải đảm bảo được các yêu cầu sau: + Sử dụng phiên bản PHP từ 5 5 9 trở lên + Cần phải mở OpenSSL PHP Extension (trong file php env) + Cần phải mở PDO PHP Extension (trong file php env) 1 2 2 Cài đặt Framework Laravel Các bước cài đặt Laravel: + B ướ c 1 : mở comment line lên và di chuyển vào thư mục chứa Apache + B ướ c 2 : tiếp theo gõ lệnh sau vào comment line composer create-project laravel/laravel laravel5 ''''5 2 *'''' Gi ả i thích: laravel/laravel : là tên giới thiệu của project laravel5 : là tên project (tên thư mục) của mình 5 2 * : là version của laravel nếu không có thì mặc định sẽ dowload về bản mới nhất Hình 1 1: Cài đặ t Laravel - 6 - + Bước 3: sau khi dowload xong ở comment line bạn di chuyển vào thư mục dự án vừa tạo bằng lệnh CD rồi gõ lệnh sau: php artisan serve + Bước 4: mở trình duyệt lên và gõ trên thanh địa chỉ http://localhost:8000 nếu xuất hiện như hình bên dưới là đã cài đặt thành công Laravel Hình 1 2: Giao di ệ n Laravel sau khi cài đặ t 1 3 Kết luận chương 1 Chương 1 giới thiệu tổng quát về Framework Laravel 5 *, cài đặt laravel và chạy thử chương trình đầu tiên - 7 - Chương 2: PHÁT TRIỂN WEBSITE TRÊN NỀN TẢNG FRAMEWORK LARAVEL 2 1 Tổng quan về mô hình MVC Mô hình MVC (Models, View, Controller) là một kiến trúc phần mền hay mô hình thiết kế được sử dụng trong kỹ thuật phần mền, nó giúp cho các lập trình viên tách ứng dụng của họ ra 3 thành phần khác nhau Models, View, Controller 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 2 2 Mô hình MVC trong Framework Laravel Hình 2 1: Mô hình MVC 2 2 1 Controller Giữ nhiệm vụ nhận, điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức mà người dùng gửi lên để xử lý chúng 2 2 2 View View có nhiệm vụ tiếp nhận dữ liệu từ controller gửi sang và hiển thị các thông tin đó sang các đoạn mã HTML 2 3 3 Model Có nhiệm vụ thao tác đến cơ sở dữ liệu, nghĩa là nó sẽ chứa tất cả các hàm, các phương thức truy vấn trực tiếp với dữ liệu và controller sẽ thông qua các hàm, phương thức đó để lấy dữ liểu trả về cho View - 8 - 2 3 Framework Laravel trong xây dựng website với mô hình MVC 2 3 1 Cách sử dụng Route trong Laravel Mục đích của việc sử dụng router là định tuyến đến những Controller cụ thể từ phía request của người sử dụng M ộ t s ố cách khai báo Route:  Route basic ( đ i ề u khi ể n c ă n b ả n): Các định tuyến trong Laravel Framework được viết trong file app/routes php ta khai báo như sau: Route::method(''''uri'''', ''''function callback''''); Gi ả i thích : uri : là dạng link trên url function callback : là hàm sẽ được gọi khi link uri phía trên được chạy, đậy là nơi có thể xử lý dữ liệu method : là các phương thức như GET, POST, PUT, DELETE Ví d ụ : Route::get(''''demo'''', function (){ return “demo project laravel”; });  Route parameters (s ử d ụ ng tham s ố trong b ộ đị nh tuy ế n): Trong trường hợp muốn gửi kèm các tham số cho bộ định tuyến thì ta chỉ cần khai báo theo dạng {tên tham số} Ví d ụ : Route::get(''''parameters-demo/{name}/{age}'''',function($name,$age){ echo “xin chào, tôi là: ” $name “n ă m nay tôi ” $age ”tu ổ i”; });  Route filters (B ộ l ọ c đị nh tuy ế n): Đây chính là bộ lọc định tuyến, nó có thể cho phép chúng ta kiểm tra trước khi truy cập vào đường dẫn đó Filters có hai loại là before và after before nghĩa là kiểm tra trước khi - 9 - request chạy vào route đó, ngược lại after sẽ kiểm tra khi request chạy vào route đó Cú pháp để khai báo filters: Route::filter(''''tên filter'''', function (){ //code x ử lý });  Route groups (g ộ p nhóm b ộ đị nh tuy ế n): Route groups sẽ giúp chúng ta nhóm các route lại một cách dễ dàng với cách khai báo như sau: Route::group([''''prefix'''' => ''''admin'''', function(){ Route::get(''''user'''', function (){ echo “ đ ây là page user”; }); Route::get(''''products'''', function (){ echo “ đ ây là page products”; }); }]); 2 3 2 Cách sử dụng View, Model và Controller trong Laravel 2 3 2 1 View Trong Framework Laravel để tạo view ta vào thư mục resources/view 2 3 2 2 Model Trong các PHP Framework khi nói đến Model thì dường như nó sẽ gắng liền thao tác với cơ sở dữ liệu Trong Framework Laravel thì nó hỗ trợ cho chúng ta tạo model đơn giản bằng lệnh artisan là: php artisan make:model Models/name + Trong đó, name là tên model mình cần tạo + Sau khi lệnh artisan được chạy xong thì ta vào thư mục app/Http/Models và mở file model vừa tạo lên và làm việc - 10 - Ví d ụ : Gi ả i thích: $table : là tên của bảng trong database $fillable : là tên các thuộc tính của bảng trong database 2 3 2 3 Controller Trong Laravel Framework có hỗ trợ cho chúng ta tạo Controller bằng lệnh artisan một cách đơn giản như sau: php artisan make:controller NameController + trong đó NameController là tên Controller mà chúng ta muốn tạo Ví d ụ : php artisan make:controller ProductController Sau khi chạy xong lệnh ta vào thư mục app/Http/controllers và mở file ProductController và làm việc Để có thể gọi được Controller với function test trong Laravel thì ta phải truy cập đến file routes trong thư mục app/routes php và thêm nội dung sau: Route::get(''''test-controller'''', ''''ProductController@test''''); - 11 - 2 3 3 Sử dụng Blade Templates engine trong Laravel Templates engine có tác dụng giúp dọn sạch đi những code PHP nằm trong view nên tách biệt hoàn toàn giữa người cắt CSS và người code PHP Hiện nay có khá nhiều template engine như Smarty, Xitemplate Templates engine này được tích hợp sẵn bên trong Laravel và tất cả các blade template engine đều có phần mở rộng là blade php Để tạo template engine ta vào thư mục resource/view vào tạo file với đuôi mở rộng là blade php Các cú pháp sử dụng trong blade template engine: + Sử dụng cặp dấu {{ }} hoặc {!! !!} thay cho từ khóa echo trong php Ví d ụ : Thay vì viết vậy balde template hỗ trợ câu lệnh ngắn gọn hơn cho chúng ta là: {{ $name }} + Sử dụng vòng lặp điều kiện: để sử dụng vòng lặp hoặc câu điều kiện if thì ta chỉ việc thêm @ ngay trước câu lệnh và kết thúc bằng @end + tên hàm Ví d ụ : @php $i=5; @endphp @if($iget(); print_r($user); K ế t qu ả tr ả v ề là: Array( [0] => stdClass Object ( [id] => 1, [name] => Nguy ễ n v ă n A ), [1] => stdClass Object ( [id] => 2, [name] => Nguy ễ n v ă n B ) )  L ấ y m ộ t dòng d ữ li ệ u t ừ CSDL s ử d ụ ng câu l ệ nh: DB::table(''''tên b ả ng'''')->where(''''tên c ộ t'''', '''' đ i ề u ki ệ n'''')->first();  S ử d ụ ng m ệ nh đề select : DB::table(''''tên b ả ng'''')->select(''''tên c ộ t 1'''', ''''tên c ộ t 2'''', )->get();  S ử d ụ ng m ệ nh đề where thêm đ i ề u ki ệ n: DB::table(''''tên b ả ng'''')->where(''''tên c ộ t'''', ''''di ề u ki ệ n'''', giá tr ị so sánh) ->get();  S ử d ụ ng m ệ nh đề or where: DB::table(''''tên b ả ng'''')->where(''''tên c ộ t'''', giá tr ị '''') ->orWhere(''''tên c ộ t'''', giá tr ị )->get();  S ử d ụ ng m ệ nh đề where between: DB::table(''''tên b ả ng'''')->whereBetween(''''tên c ộ t'''', - 15 - [giá tr ị b ắ t đầ u,giá tr ị k ế t thúc])->get();  S ử d ụ ng OrderBy, GroupBy và Having: DB::table(''''tên b ả ng'''')->orderBy(''''tên c ộ t c ầ n order'''',''''DESC'''') ->groupBy(''''tr ườ ng c ầ n g ộ p'''') ->having(''''tên c ộ t'''', '''' đ i ề u ki ệ n'''', ''''giá tr ị só sánh'''') ->get();  S ử d ụ ng limit: DB::table(''''tên b ả ng'''')->skip(''''giá tr ị b ắ t đầ u c ầ n l ấ y'''') ->take(''''s ố l ượ ng record c ầ n l ấ y'''')->get();  Join b ả ng d ữ li ệ u: DB::table(''''tên b ả ng1'''') ->join( ''''tên b ả ng 2'''', ''''tên b ả ng 1 khóa chính'''', ''''='''',''''tên b ả ng 2 khóa ngo ạ i'''' )->get();  Left join: DB::table(''''tên b ả ng 1'''') ->leftJoin( ''''tên b ả ng 2'''', ''''tên b ả ng 1 khóa chính'''',''''='''', ''''tên b ả ng 2 khóa ngo ạ i'''' )->get();  S ử d ụ ng hàm: DB::table(''''tên b ả ng'''')->count(); DB::table(''''tên b ả ng'''')->max(''''c ộ t c ầ n l ấ y giá tr ị max''''); DB::table(''''tên b ả ng'''')->min(''''c ộ t c ầ n l ấ y giá tr ị min''''); DB::table(''''tên b ả ng'''')->avg(''''c ộ t c ầ n avg''''); DB::table(''''tên b ả ng'''')->sum(''''tên c ộ t c ầ n sum'''');  Chèn d ữ li ệ u vào b ả ng: DB::table(''''tên b ả ng'''')->insert( [''''tên c ộ t 1'''' => ''''giá tr ị '''', ''''tên c ộ t 2'''' => ''''giá tr ị ''''] );  Update d ữ li ệ u: - 16 - DB::table(''''tên b ả ng'''')->where(''''tên c ộ t'''', ''''giá tr ị '''')->update( [ ''''tên c ộ t 1'''' => ''''giá tr ị c ầ n update'''', ''''tên c ộ t 2'''' => ''''giá tr ị c ầ n update'''' ] );  Delete d ữ li ệ u: DB::table(''''tên b ả ng'''')->where(''''tên c ộ t'''', '''' đ i ề u ki ệ n'''', ''''giá tr ị '''') ->delete(); b) S ử d ụ ng Eloquent ORM trong laravel Eloquent trong Laravel chính là một ORM(Object-relational mapping) cung cấp các activeRecord đơn giản nhưng vô cùng chuyên nghiệp giúp chúng ta làm việc với cơ sở dữ liệu thuận tiện hơn Để sử dụng được eloquent ORM trong Laravel trước tiên ta phải tạo model bằng cách ở trên Ví d ụ : class User extends Eloquent{ protected $table = ''''users''''; } + Khi model được định nghĩa là chúng ta có thể thao tác trên nó, và lớp model đều phải kế thừa từ lớp Eloquent + Thuộc tính $table sẽ khai báo bảng dữ liệu mà ta sẽ thao tác 2 3 4 2 L ấ y d ữ li ệ u b ằ ng eloquent ORM trong laravel  L ấ y t ấ t c ả d ữ li ệ u c ủ a b ả ng: $data= App\Models\Tên model::all();  L ấ y m ộ t d ữ li ệ u theo khóa chính: $data= App\Models\Tên model :: find(giá tr ị );  Truy v ấ n s ử d ụ ng Eloquent ORM: $data= App\Models\Tên model :: where ( - 17 - ''''tên c ộ t'''', '''' đ i ề u ki ệ n'''', giá tr ị )->take(giá tr ị records c ầ n l ấ y)->get();  S ử d ụ ng hàm trong Eloquent ORM: $count = App\Models\Tên model :: where( ''''tên c ộ t'''', '''' đ i ề u ki ệ n'''', giá tr ị )->count();  Thêm d ữ li ệ u (Insert) b ằ ng Eloquent ORM: $insert = new tên model (); $insert → tên c ộ t c ủ a b ả ng = giá tr ị ; $insert → save(); ho ặ c $tên model :: create( [ ''''tên c ộ t 1'''' => ''''giá tr ị '''', ''''tên c ộ t 2'''' => ''''giá tr ị '''' ] );  C ậ p nh ậ t d ữ li ệ u (Update) b ằ ng Eloquent ORM: $update = $ tên model :: find(''''id record c ầ n c ậ p nh ậ t''''); $update → tên c ộ t c ầ n c ậ p nh ậ t = giá tr ị c ậ p nh ậ t; $update → save();  Xóa d ữ li ệ u (Delete) b ằ ng Eloquent ORM: $delete= $ tên model :: find(id record c ầ n xóa''''); $delete->delete(); ho ặ c $delete = $tên model :: detroy([''''id record c ầ n xóa'''']); Xóa nhi ề u reocords $delete = $tên model :: detroy( [''''id record 1'''', ''''id record 2'''' ,''''id record 3''''] ); - 18 - 2 3 4 3 T ạ o b ả ng v ớ i Schema Builder Để sử dụng được Schema Buider cần phải cấu hình các thông số kết nối đến cơ sở dữ liệu trong file App/config/database php ''''mysql'''' => array( ''''driver'''' => ''''mysql'''', ''''host'''' => ''''localhost'''', ''''database'''' => ''''tên b ả ng c ầ n k ế t n ố i'''', ''''username'''' => ''''username c ủ a mysql'''', ''''password'''' => '''''''', ''''charset'''' => ''''utf8'''', ''''collation'''' => ''''utf8_unicode_ci'''', ''''prefix'''' => '''''''' ) Lớp Schema Buider trong laravel cung cấp cơ chế thao tác với cơ sở dữ liệu, nó làm việc với tất cả cơ sở dữ liệu và thông qua những hàm API của hệ thống - Ph ươ ng th ứ c Create - t ạ o b ả ng d ữ li ệ u: Schema :: create (''''tên b ả ng'''', function($table){ $table->increments(''''id''''); $table->string(''''tên c ộ t 1''''); $table->integer(''''tên c ộ t 2''''); … $table->timestamps(); }); + increment : tạo khóa chính cho bảng dữ liệu và tự động tăng + string : tạo cột dạng chuỗi giống như kiểu nvarchar + integer : tạo cột dạng số nguyên + timestamps : lệnh này sẽ tạo ra hai cột created_at và updated_at trong bảng, nó là hai trường mặc định để lưu thời gian tạo và sửa cột trong bảng - Ph ươ ng th ứ c rename- đổ i tên b ả ng d ữ li ệ u: Schema :: rename($from, $to); - 19 - $from : tên b ả ng hi ệ n t ạ i $to : tên b ả ng m ớ i - Ph ươ ng th ứ c drop - xóa b ả ng d ữ li ệ u: Shema :: drop (''''tên b ả ng'''') ho ặ c Schema::dropIfExit(''''tên b ả ng''''); - Ph ươ ng th ứ c table - c ậ p nh ậ t tên c ộ t vào m ộ t b ả ng hi ệ n t ạ i: Schema :: table(''''tên b ả ng'''', function($table){ $table->string(''''tên c ộ t''''); }); - Ph ươ ng th ứ c rename colums - đổ i tên c ộ t: Schema :: table (''''tên b ả ng'''', function ($table){ $table->renameColum(''''tên c ộ t mu ố n đổ i'''', ''''tên c ộ t m ớ i''''); }); - Ph ươ ng th ứ c drop colums - xóa c ộ t: Schema :: table(''''tên b ả ng'''', function ($table){ $table->dropColum(''''tên c ộ t c ầ n xóa''''); }); - Ph ươ ng th ứ c has table - ki ể m tra có t ồ n t ạ i b ả ng không: if(Schema :: hasTable(''''tên b ả ng'''')){ // code } - Ph ươ ng th ứ c has colums - ki ể m tra có t ồ n t ạ i c ộ t không: Schema :: table(''''tên b ả ng'''', function ($table){ if(Schema :: hasColum(''''tên c ộ t'''')){ //code } }); - S ử d ụ ng khóa ngo ạ i: $table->integer(''''tên khóa ngo ạ i'''')->unsigned(); $table->foreign(''''tên khóa ngo ạ i'''')->references(''''khóa chính'''') ->on(''''tên b ả ng''''); - 20 - ho ặ c $table->integer(''''tên khóa ngo ạ i'''')->unsigned(); $table->foreign(''''tên khóa ngo ạ i'''')->references(''''khóa chính'''') ->on(''''tên b ả ng'''')->onDelete(''''cascade''''); 2 3 4 4 T ạ o d ữ li ệ u m ẫ u v ớ i Seeding trong laravel Seeding hay còn được gọi là seeder, seed thực ra nó là một class chứa code để tạo ra các dummy data (dữ liệu mẫu) cho database trong quá trình xây dựng ứng dụng - S ử d ụ ng seeder m ặ c đị nh c ủ a laravel: Mặc định laravel cung cấp cho chúng ta một database seeder trong thư mục database/seeds/ Để sử dụng nó ta chỉ cần viết queryBuider vào đó - 21 - Ví d ụ : Để chạy được nó ta sử dụng lệnh : php artisan db:seed - T ạ o Seeder: Để tạo Seeder trong Laravel ta dùng lệnh php artisan make:seed seedname Ví d ụ : Mở comment line và gõ lệnh php artisan make:seed UsersSeed Sau đó vào thư mục database/seeds/ mở file UsersSeed php lên và chèn code Query Buider vào đó Để chạy được seeder Users ta dùng lệnh php artisan db: seed --class = UsersSeed 2 3 5 Tạo mối quan hệ Relationships trong Laravel Trong hầu hết các PHP Framework hiện nay điều tích hợp relationships model, trong Yii khái niệm này được gọi là Active Records, còn trong Laravel thì được gọi là Eloquent Object-relational Mapper Trước đây Laravel 4 0 thì chỉ cung cấp cho chúng ta 3 mối quan hệ chính, nhưng đến những phiên bản laravel 5 0 trở lên đã được nâng cấp lên thành 6 mối quan hệ gồm: + One to One : m ố i quan h ệ 1-1 + One to Many : quan h ệ 1-n + Many to Many : quan h ệ n-n + Has Many Through : quan h ệ nhi ề u nhi ề u qua l ạ i trung gian + Polymophic Relations : quan h ệ đ a hình + Many to Many Polymophic Relations : quan h ệ nhi ề u nhi ề u đ a hình 2 3 5 1 One to One: Mối quan hệ 1-1 là mối quan hệ cở bản nhất trong tất cả mối quan hệ - 23 - Ví d ụ : Có một bảng post để đăng bài viết và một bảng feature_image để đặt ảnh đại diện cho bài post đó khi đó sẽ tạo ra hai model là Posts và FeatureImage Khi này chỉ cần triệu gọi với lệnh eloquent dạng như sau: App\Models\Post::find(1)-> featureImages; Nó sẽ lấy ảnh có bài post ứng với id là 1 và ngược lại để lấy bài post có tấm ảnh với id là 1 thì ta dùng lệnh eloquent như sau: App\Models\FeatureImage::find(1)-> posts; - 24 - 2 3 5 2 One to Many: Mối quan hệ One to Many được sử dụng để xác định các mối quan hệ khi một model sở hữu nhiều số lượng của model khác Ví d ụ : Có một bảng post để đăng bài viết và một bảng comment để bình luận cho bài post đó khi đó sẽ tạo ra hai model là Posts và Comments Khi này chỉ cần triệu gọi với lệnh eloquent dạng như sau: App\Models\Post::find(1)-> comments; Nó sẽ lấy các comments có bài post ứng với id là 1 và ngược lại để lấy bài post có comments với id là 1 thì ta dùng lệnh eloquent như sau: App\Models\Comments::find(1)->post; - 25 - Tất cả các relationship cũng được phục vụ cho query buider nên cũng có thể thêm các ràng buộc cho chúng: App\Models\Post::find(1)-> comments->where([''''title'''', ''''abc'''']); 2 3 5 3 Many to Many Đây là mối quan hệ phức tạp hơn so với hasOne và hasMany, mối quan hệ Many To Many được định nghĩa bằng cách gọi phương thức belongsToMany dựa trên eloquent class Ví d ụ : Một user sẽ có nhiều role (quyền) và một role sẽ thuộc về nhiều user , để xác định relationship này cần thiết phải có 3 bảng trong cơ sở dữ liệu là users , role và users_role , bảng users_role sẽ chữa user_id và role_id Một khi mối quan hệ được xác định thì ta có thể truy cập đến chúng bằng cách: App\Models\user()::find(1)->roles; Để xác định tên bảng của bảng tham gia vào relationship, Eloquent sẽ join 2 model liên quan theo thứ tự của bảng chữ cái, tuy nhiên chúng ta cũng có thể ghi đè quy ước này bằng cách thêm vào một đối số thứ hai trong phương thức belongsToMany: Ngoài tùy biến trên chúng ta cũng có thể tùy biến các tên cột của các key bằng cách truyền thêm đối số cho các phương thức bolongsToMany, đối số thứ 3 là foreign key mà chúng ta đang xác định relationship và đối số thứ 4 là tên foreign key trong model mà chúng ta đang join đến Định nghĩa inverse của quan hệ: Để xác định các nghịch đảo của mối quan hệ Many To Many, chúng ta chỉ cần đặt phương thức belongsToMany tên model đó: - 27 - Khi làm việc với mối quan hệ Many To Many đòi hỏi cần thêm một bảng trung gian Eloquent cung cấp cho chúng ta một số cách hữu ích để tương tác với bảng này Để truy cập vào bảng trung gian bằng cách sử dụng pivot attribute trên model App\Models\User::find(1)->roles->pivot Theo mặc định chỉ có các keys sẽ có mặt trên các pivot object Nếu bảng pivot có chứa các thuộc tính mở rộng, chúng ta cần xác định chúng khi xác định các mối quan hệ: - 28 - Nếu muốn bảng pivot tự động có thêm cột created_at và updated_at chúng ta sử dụng phương thức timestamps vào định nghĩa mối quan hệ: Chúng ta cũng có thể lọc các kết quả trả về bằng cách sử dụng phương thức wherePivot và whereInPivot khi định nghĩa các mối quan hệ: 2 3 5 4 Has Many Through: Quan hệ Has Many Through cung cấp một thuận tiện short-cut để truy cập vào các mối quan hệ từ xa thông qua một mối quan hệ trung gian: Ví d ụ : một country model có thể có nhiều Post model thông qua một User model trung gian: countries - id: integer - name: string users - id: integer - country_id:integer - name: string posts - id: integer - user_id: integer - title: string Mặc dù posts không chứa cột country_id, mối quan hệ HasManyThrough cung cấp quyền truy cập vào posts của country thông qua $country->posts Để thực hiện truy vấn này, Eloquent kiểm tra các country_id trên bảng user trung gian, sau khi tìm ra id của user phù hợp, chúng được sử dụng để truy vấn bảng post: Nếu chúng ta muốn trùy chỉnh các foreign key của relationship chúng ta có thể truyền vào các đối số thứ 5 và thứ 4 của phương thức hasManyThrough Đối số thứ 3 là foreign key của model trung gian, đối số thứ 4 là foreign key của model cuối cùng và đối số thứ 5 là local key: 2 4 Kết luận chương 2 Chương 2 tìm hiểu về mô hình MVC, cách sử dụng Route, Blade Templates engine, Eloquent ORM, Relationships, seeding trong laravel - 31 - Chương 3: XÂY DỰNG HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH TRỰC TUYẾN 3 1 Phát biểu bài toán Xã hội ngày càng phát triển, nhu cầu vui chơi giải trí của con người ngày càng nâng cao, các địa điểm du lịch ngày càng thu hút nhiều du khách Tuy nhiên các công ty về du lịch chưa đáp ứng được nhu cầu của khách hàng Các trang web cho phép đặt tour trên mạng chưa được phổ biến Nhằm phục vụ điều này và tạo ra một môi trường giao tiếp giữa các du khách đơn giản hoá việc đặc tour nên em đã xây dựng website này để đáp ứng các yêu cầu cần thiết của du khách Thông qua website này du khách có thể nắm bắt được nhiều thông tin bổ ích như: các tour mới nhất, tour được nhiều du khách ghé thăm nhất… 3 2 Phân tích và thiết kế hệ thống 3 2 1 Các tác nhân của hệ thống - Quản trị website - Khách hàng 3 2 2 Ca sử dụng của hệ thống Đăng nhập vào hệ thống quản trị: Mô tả người dùng (quản trị hệ thống website) đăng nhập bằng tài khoản đã được tạo trước để thực hiện các chức năng đã được phân quyền của hệ thống website Quản lí tour du lịch: Mô tả việc quản trị Website có thể xem, cập nhật thêm sửa xoá các thông tin về tour du lịch của mình Quản lí danh sách khách đặt tour: Mô tả việc quản trị website có thể xem được thông tin các đơn hàng của khách hàng đã đặt Quản lí khách sạn: Mô tả việc quản trị có thể xem, cập nhât thêm sửa xoá các thông tin về khách sạn của mình Quản lí phòng: Mô tả việc quản trị có thể xem, cập nhật thêm sửa xoá các thông tin về phòng của khách sạn Quản lí danh sách khách hàng đặt phòng khách sạn: Mô tả việc quản trị xem được các đơn hàng mà khách hàng đã đặt - 32 - 3 2 3 Biểu đồ ca sử dụng của hệ thống - Ca s ử d ụ ng cho ban qu ả n tr ị : Hình 3 1: Ca s ử d ụ ng cho ban qu ả n tr ị - Ca s ử d ụ ng dành cho khách hàng: Hình 3 2: Ca s ử d ụ ng cho khách hàng - 33 - 3 2 4 Đặc tả các ca sử dụng Tên Use-Case: Đăng nhập ID: 1 M ứ c độ quan tr ọ ng: Cao Tác nhân chính:Qu ả n tr ị website Ki ể u Use-Case: Chi tiết, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả người dùng (Ban Quản lý KTX) đăng nhập vào hệ thống bằng tài khoản đã được tạo trước đó để thực hiện các chức năng đã được phân quyền của hệ thống Kh ở i s ự : - Ban quản trị: đăng nhập vào hệ thống và thực hiện quản lý các thông tin về tour du lịch, khách sạn và phòng thuộc khách sạn đó Các m ố i quan h ệ : Kết hợp (Association): Ban quản trị Bao hàm (Include): Kiểm tra tài khoản Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản trị đăng nhập vào hệ thống 2 Hệ thống kiểm tra tính hợp lệ của tài khoản (email, password và quyền) 3 Ban quản trị thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a Nếu tài khoản không hợp lệ thì hệ thống thông báo yêu cầu người dùng đăng nhập lại vào hệ 3c Thoát khỏi hệ thống - 34 - T ên Use-Case: Đăng ký sử dụng ID: 2 M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Ban quản trị Ki ể u Use-Case: Chi tiết, cần thiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả ban quản trị (supper admin) đăng ký tài khoản cho một quản trị viên khách Kh ở i s ự : Ban quản trị (supper admin) đăng ký tài khoản mới cho quản trị viên khi đăng nhập lần đầu tiên Các m ố i quan h ệ : Kết hợp (Association): Ban quản trị Bao hàm (Include): Mở rộng (Extend): Kiểm tra tài khoản Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản trị (supper admin) đăng ký mới tài khoản 2 Hệ thống kiểm tra tính hợp lệ về thông tin đăng ký của người dùng 3 Ban quản trị thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: 2a Nếu thông tin đăng ký ban quản trị (supper admin) nhập vào hợp lệ thì hệ thống sẽ thông báo thành công Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 2a-1 Nếu thông tin tài khoản đăng ký không hợp lệ thì hệ thống thông báo các trường nhập không hợp lệ và yêu cầu đăng ký lại 2b Hủy đăng ký sử dụng - 35 - Tên Use-Case: Quản lý thông tin tour du lịch ID: 3 M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Ban quản trị Ki ể u Use-Case: Chi tiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc Ban trị cập nhật thông tin của tour du lịch Kh ở i s ự : - Ban quản trị đăng nhập vào hệ thống và cập nhật thông tin về một tour du lịch nào đó Các m ố i quan h ệ : Kết hợp (Association): Ban quản trị Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản trị chọn hiển thị danh sách thông tin tour 2 Ban quản trị chọn cập nhật thông tin một tour nào đó 3 Hệ thống kiểm tra tính hợp lệ của thông tin 4 Ban quản trị sửa thông tin và chấp nhận cập nhật 5 Hệ thống thực hiện kiểm tra 6 Hệ thống cập nhật và gởi thông báo kết quả 7 Ban quản trị thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a Nếu thông tin không hợp lệ thì hệ thống thông báo yêu cầu cập nhật lại 3b Thoát khỏi hệ thống - 36 - Tên Use-Case: Quản lý thông tin khách sạn ID: 3 M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Ban quản trị Ki ể u Use-Case: Chi tiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc Ban Quản trị cập nhật thông tin của khách sạn Kh ở i s ự : - Ban quản trị đăng nhập vào hệ thống và cập nhật thông tin về khách sạn Các m ố i quan h ệ : Kết hợp (Association): Ban quản trị Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản trị chọn hiển thị thông tin khách sạn 2 Ban quản trị chọn cập nhật thông tin 3 Hệ thống kiểm tra tính hợp lệ của thông tin 4 Ban quản trị cập nhật nội dung 5 Hệ thống kiểm tra tính hợp lệ 6 Hệ thống thực hiện cập nhật và gởi thông báo kết quả 7 Ban quản trị thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a Nếu thông tin không hợp lệ thì hệ thống thông báo yêu cầu cập nhật lại 3b Thoát khỏi hệ thống - 37 - Tên Use-Case: Quản lý thông tin phòng ID: 3 M ứ c độ quan tr ọ ng: Bình thường Tác nhân chính: Ban quản trị Ki ể u Use-Case: Chi tiết Mô t ả v ắ n t ắ t: Ca sử dụng mô tả việc Ban Quản trị cập nhật thông tin phòng của khách sạn Kh ở i s ự : - Ban quản trị đăng nhập vào hệ thống và cập nhật thông tin về phòng khách sạn Các m ố i quan h ệ : Kết hợp (Association): Ban quản trị Bao hàm (Include): Mở rộng (Extend): Khái quát hóa (Generalization): Các lu ồ ng s ự ki ệ n thông th ườ ng: 1 Ban quản trị chọn hiển thị thông tin phòng thuộc khách sạn 2 Ban quản trị chọn cập nhật thông tin 3 Hệ thống kiểm tra tính hợp lệ của thông tin 4 Ban quản trị cập nhật nội dung 5 Hệ thống kiểm tra tính hợp lệ 6 Hệ thống thực hiện cập nhật và gởi thông báo kết quả 7 Ban quản trị thoát khỏi hệ thống Các lu ồ ng s ự ki ệ n con: Các lu ồ ng s ự ki ệ n thay th ế /ngo ạ i l ệ : 3a Nếu thông tin không hợp lệ thì hệ thống thông báo yêu cầu cập nhật lại 3b Thoát khỏi hệ thống - 38 - 3 2 5 Mô hình cấu trúc hệ thống 3 2 5 1 Xác đị nh các l ớ p th ự c th ể Dựa vào các quy tắc phân tích văn bản cũng như những yêu cầu của hệ thống, hệ thống bao gồm các lớp thực thể sau: Lớp Tài khoản (users) gồn các thuộc tính:  Fullname : Họ tên của ban quản trị  Email : Tên tài khoản đăng nhập hệ thống  Password : Mật khẩu đăng nhập hệ thống  Company_name : Tên công ty của ban quản trị  Company_address : Địa chỉ công ty  Phone : Số điện thoại  Level : Quền hạn  Status : Trạng thái  Descriptions : Mô tả về bạn Lớp Tours (Tours) gồn các thuộc tính:  Name : Tên tour  Date_start : Ngày bắt đầu của tour  Date_stop : Ngày kết thúc tour  Timestop : Thời gian kết thúc tour  Address_start : Điểm khởi hành của tour  Expediency : Phương tiện đi lại  Sched : kế hoạch  Images : hình ảnh cho tour  Destination : Điểm đến  Pricedescriptions : chi tiết về giá của tour  Polycy : Chính sách  Price : giá của tour  Discount : giảm giá  Images_descriptions : hình ảnh mô tả cho tour - 39 -  Status : trạng thái của tour Lớp Review tour (review_tours) gồm các thuộc tính:  Fullname : họ tên người review  Review_home : đánh giá chỗ ở  Review_food : đánh giá về món ăn  Review_vehicle : đánh giá về phương tiện  Review_guides : đánh giá về hướng dẫn viên  Review_schedule : đánh giá về kế hoạch Lớp đặt tour (book_tours) gồm các thuộc tính:  Fullname : họ tên người đặt tour  Email : email người đặt tour  Phone : số điện thoại người đặt tour  Address : địa chỉ người đặt tour  Number : số lượng phiếu đặt  Status : tình trạng Lớp khách sạn (hotels) gồm các thuộc tính:  Name : tên khách sạn  Address : địa chỉ khách sạn  Lat : địa chỉ khách sạn trên map  Lng : địa chỉ khách sạn trên map  Descriptions : mô tả về khách sạn  Images: hình ảnh khách sạn  Descriptions_image : hình ảnh mô tả cho khách sạn  About : giới thiệu về khách sạn  Slug : seo website  Title_website : tiêu đề website Lớp đánh giá khách sạn gồm các thuộc tính:  Fullname : họ tên người đánh giá  Review_serve : đánh giá về phục vụ  Review_convenient : đánh giá tiện lợi của khách sạn - 40 -  Review_price : đánh giá về giá cả của khách sạn  Review_toilec : đánh giá về khu vệ sinh  Review_content : đánh giá nội dung Lớp phòng khách sạn (rooms) gồm các thuộc tính:  Trend_room : hướng phòng  Type_bed : loại giường  Maximun : số lượng người ở trong phòng  Detail : chi tiết phòng  Price : giá của phòng  Discount : giảm giá  Number_room : số lượng phòng  Image : hình ảnh phòng  Descriptions_images : hình ảnh mô tả cho phòng Lớp đặt phòng khách sạn (book_rooms) gồm các thuộc tính:  Fullname : tên khách hàng đặt phòng  Email : email khách hàng đặt phòng  Phone : số điện thoại khách hành đặt phòng  Date_start : ngày đặt phòng  Date_stop : ngày trả phòng  Address : địa chỉ khách hàng đặt phòng  Status : trạng thái 3 2 5 2 Xác đị nh các l ớ p biên Lớp biên là lớp nhằm chuyển đổi các thông tin giao tiếp giữa các tác nhân và hệ thông Đó chính là các giao diện để tác nhân giao tiếp vs hệ thống cho phép thu thập thông tin hay xuất kết quả Mỗi cặp tác nhân – ca sử dụng có ít nhất 01 lớp biên Dựa vào ca sử dụng đã được xây dựng ở trên, hệ thống có các lớp biên như sau:  Đố i v ớ i ca s ử d ụ ng đă ng nh ậ p - 41 - I_NQT_DN : giao diện cho phép người dùng nhập vào các thông tin đăng nhập vào hệ thống  Đố i v ớ i ca s ử d ụ ng đă ng ký tài kho ả n qu ả n tr ị : I_NQT_DKTK : giao diện đăng ký một tài khoản quản trị mới  Đố i v ớ i ca s ử d ụ ng qu ả n lí tour du l ị ch: I_NQT_QLTDL : giao diện quản lý thông tin tour du lịch I_NQT_QLTDL_TStour : giao diện cho phép quản trị thêm sửa tour du lịch  Đố i v ớ i cac s ử d ụ ng qu ả n lí khách s ạ n I_NQT_QLKS: giao diện quản lí thông tin khách sạn I_NQT_QLKS_TSkhachsan : giao diện cho phép quản trị thêm sửa khách sạn  Đố i v ớ i ca s ử d ụ ng qu ả n lý phòng khách s ạ n I_NQL_QLPKS : giao diện quản lý thông tin phòng khách sạn I_NQT_QLPKS_TSPhong : giao diện cho phép quản trị thêm sửa phòng của khách sạn 3 2 5 3 Xác đị nh các l ớ p đ i ề u khi ể n Lớp điều khiển là các lớp điều hành sự diễn biến trong một ca sử dụng Các lớp điều khiển chứa các quy tắc nghiệp vụ và đứng trung gian giữa lớp biên và lớp thực thể, cho phép từ màn hình có thể truy xuất được các thông tin chứa trong các lớp thực thể Mỗi ca sử dụng có ít nhất một lớp điều khiển Các lớp điều khiển chính của hệ thống: - Lớp C_NQT_DN : lớp điều khiển cho ca sử dụng đăng nhập hệ thống - Lớp C_NQT_DKTK : lớp điều khiển cho ca sử dụng đăng ký tài khoản - Lớp C_ NQT_QLTDL : lớp điều khiển cho ca sử dụng quản lí tour du lịch - Lớp C_NQT_QLKS : lớp điều khiển cho ca sử dụng quản lí khách sạn - Lớp C_NQT_QLPKS : lớp điều khiển cho ca sử dụng quản lí phòng khách sạn - 42 - 3 2 6 Mô hình hành vi của hệ thống 3 2 6 1 Mô hình tu ầ n t ự Sau đây là một số biểu đồ tuần tự cho ca sử dụng chính:  Biểu đồ tuần tự cho ca sử dụng đăng nhập: Hình 3 3: Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng đă ng nh ậ p - 43 -  Biểu đồ tuần tự cho ca sử dụng quản lí tour du lịch: Hình 3 4: Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng qu ả n lý tour du l ị ch - 44 -  Biểu đồ tuần tự cho ca sử dụng quản lí khách sạn: Hình 3 5: Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng qu ả n lý khách s ạ n  Biểu đồ tuần tự cho ca sử dụng quản lí phòng: - 45 - Hình 3 6: Bi ể u đồ tu ầ n t ự cho ca s ử d ụ ng qu ả n lý phòng - 46 - 3 2 6 2 Bi ể u đồ ho ạ t độ ng Các biểu đồ hoạt động cho các phương thức chính của các lớp chính:  Phương thức KiemTraTaiKhoan(email,password) của lớp Users Hình 3 7: Ph ươ ng th ứ c ki ể m tra tài kho ả n  Phương thức thêm tour du lịch add() của lớp Tours Hình 3 8: Ph ươ ng th ứ c thêm tour du l ị ch - 47 -  Phương thức thêm khách sạn add() của lớp Hotels Hình 3 9: ph ươ ng th ứ c thêm khách s ạ n  Phương thức thêm phòng khách sạn add() của lớp Rooms Hình 3 10: Ph ươ ng th ứ c thêm phòng khách s ạ n - 48 - 3 2 7 Thiết kế hệ thống 3 2 7 1 C ơ s ở d ữ li ệ u c ủ a h ệ th ố ng Hình 3 11: C ơ s ở d ữ li ệ u - 49 - 3 2 7 2 Mô t ả các b ả ng B ả ng 3 1: B ả ng d ữ li ệ u User Tên bảng : User Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Fullname NVARCHAR 255 Họ tên quản trị Email VARCHAR 255 Email của quản trị Password VARCHAR 255 Mật khẩu Company_name NVARCHAR 255 Tên công ty Company_address NVARCHAR 255 Địa chỉ công ty Phone VARCHAR 255 Số điện thoại Level TINYINT 4 Quyền Status TINYINT 4 Trạng thái Descriptions Text Mô tả Created_at TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật - 50 - B ả ng 3 2: B ả ng d ữ li ệ u Tours Tên bảng : Tours Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Name NVARCHAR 255 Tên tour Date_start DATE Ngày bắt đầu của tour Date_stop DATE Ngày kết thúc của tour Time_stop DATE Thời gian đi của tour Address_start NVARCHAR 255 Địa điểm xuất phát Expediency VARCHAR 255 Phương tiện khởi hành sched TEXT Lịch trình Images VARCHAR 255 Hình ảnh Destination Text Điểm đến Polycy TEXT Chính sách Price INT 11 Giá của tour Discount INT 11 Giảm giá Images_descriptions TEXT ảnh mô tả cho tour Slug VARCHAR 255 Seo link url Title VARCHAR 255 Seo title website FK Users_id INT 11 Id user FK Category_tours_id INT 11 Id category tour Status INT 4 Trạng thái Created_at TIMESTAMP Ngày tạo tour Updated_at TIMESTAMP Ngày cập nhật tour - 51 - B ả ng 3 3: B ả ng d ữ li ệ u category_tours Tên bảng : category_tours Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Name_category_tour NVARCHAR 255 Tên danh mục tour Image_category_tour NVARCHAR 255 Anh danh mục tour Order_category_tour INT 11 Sắp xếp tour FK Area_id INT 11 Id tiện nghi FK Users_id INT 11 Id users Created_at TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật B ả ng 3 4: B ả ng d ữ li ệ u book_tours Tên bảng : book_tours Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Fullname NVARCHAR 255 Tên khách hàng Email NVARCHAR 255 Email khách hàng Phone NVARCHAR 255 Số điện thoại Address NVARCHAR 255 Địa chỉ khách hàng Number INT 11 Số lượng vé Status TINYINT 4 Trạng thái FK Tour_id INT 11 Id tour Created_at TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật - 52 - B ả ng 3 5: B ả ng d ữ li ệ u areas Tên bảng : areas Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Name_area NVARCHAR 255 Tên miền Created_at TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật B ả ng 3 6: B ả ng d ữ li ệ u review_tours Tên bảng : review_tours Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Fullname NVARCHAR 255 Tên khách hàng Review_home INT 11 Đánh giá chổ ở Review_food INT 11 Đánh giá món ăn Review_vehicle INT 11 Đánh giá phương tiện Review_guides INT 11 Đánh giá hướng dẫn viên Review_schedule INT 11 Đánh giá lịch trình FK Tour_id INT 11 Id tour Created_at TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật - 53 - B ả ng 3 7: B ả ng d ữ li ệ u category_hotels Tên bảng :category_hotels Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Name NVARCHAR 255 Tên danh mục khách sạn Descriptions NVARCHAR 255 Mô tả về danh mục khách sạn Order INT 11 Sắp xếp Lat DOUBLE 10,6 Địa chỉ trên map Lng DOUBLE 10,6 Địa chỉ trên map Image VARCHAR 255 Hình ảnh FK Users_id INT 11 Id user Slug VARCHAR 255 Seo link url Title_website VARCHAR 255 Seo tiêu đề website Created_ad TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật - 54 - B ả ng 3 8: B ả ng d ữ li ệ u hotels Tên bảng :hotels Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Name NVARCHAR 255 Tên khách sạn Address TEXT Địa chỉ khách sạn Lat DOUBLE 10,6 Địa chỉ trên map Lng DOUBLE 10,6 Địa chỉ trên map Descriptions TEXT Mô tả khách sạn Image VARCHAR 255 Hình ảnh Description_images TEXT Hình ảnh mô tả cho khách sạn About TEXT Mô tả khách sạn FK Category_hotels_id INT 11 Id danh mục khách sạn FK Users_id INT 11 Id user Slug VARCHAR 255 Seo link url Title_website VARCHAR 255 Seo tiêu đề website Created_ad TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật - 55 - B ả ng 3 9: B ả ng d ữ li ệ u rooms Tên bảng :rooms Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Trend_room NVARCHAR 255 Hướng phòng Type_bed VARCHAR 255 Loại giường Maximun INT 11 Số người / phòng Detail TEXT Chi tiết phòng Price INT 11 Giá phòng Discount INT 11 Giảm giá Number_room INT 11 Số phòng Image VARCHAR 255 Hình ảnh Description_images VARCHAR 255 ảnh mô tả cho phòng FK Category_rooms_id INT 11 Id danh mục phòng FK Hotels_id INT 11 Id user Created_ad TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật B ả ng 3 10: B ả ng d ữ li ệ u category_rooms Tên bảng :category_rooms Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Name NVARCHAR 255 Tên danh mục phòng Order INT 11 Sắp xếp FK Users_id INT 11 Id user Created_ad TIMESTAMP Ngày tạo Updated_at TIMESTAMP Ngày cập nhật - 56 - B ả ng 3 11: B ả ng d ữ li ệ u book_rooms Tên bảng :book_rooms Khóa Tên trường Kiểu dữ liệu Độ rộng Mô tả Ràng buộc (nếu có) PK Id int 11 Fullname NVARCHAR 255 Tên khách hàng Email VARCHAR 255 Email Phone VARCHAR 255 Số điện thoại Date_start DATE Ngày nhận phòng Date_

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN - - KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Đề tài: TÌM HIỂU FRAMEWORK LARAVEL 5.X VÀ ỨNG DỤNG PHÁT TRIỂN HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH TRỰC TUYẾN Sinh viên thực hiện: Nguyễn Duy Tuấn MSSV: 2113021036 Chuyên nghành: Công nghệ thông tin Khoá học: 2013 – 2017 Giảng viên hướng dẫn: ThS ĐỖ QUANG KHÔI Quảng Nam, tháng 04 năm 2017 LỜI CẢM ƠN Trước hết em xin gửi lời cảm ơn sâu sắc đến ThS Đỗ Quang Khôi, người trực tiếp hướng dẫn, giúp đỡ, định hướng đóng góp ý kiến cho em suốt thời gian làm để em hồn thành khóa luận tốt nghiệp Em xin chân thành cảm ơn tất thầy cô giáo trường Đại học Quảng Nam, đặc biệt thầy, cô Khoa Công nghệ thơng tin trường tận tình dạy dỗ truyền đạt kiến thức cho em suốt trình học tập nghiên cứu trường, tạo điều kiện thuận lợi cho em thời gian cuối khóa để hồn thành chương trình tốt nghiệp Em gửi lời cảm ơn đến Trung tâm học liệu Công nghệ thông tin – Trường Đại học Quảng Nam tạo môi trường, điều kiện giúp đỡ cho em suốt trình thực tập tốt nghiệp kinh nghiệm thực tế Đồng thời, em gửi lời cảm ơn đến gia đình, bạn bè động viên, giúp đỡ em lúc khó khăn học tập sống MỤC LỤC Phần MỞ ĐẦU 1.1 Lý chọn đề tài 1.2 Mục tiêu đề tài 1.3 Đối tượng phạm vi nghiên cứu 1.4 Phương pháp nghiên cứu 1.5 Lịch sử nghiên cứu 1.6 Đóng góp đề tài 1.7 Cấu trúc khóa luận Phần NỘI DUNG NGHIÊN CỨU Chương 1: TỔNG QUAN VỀ FRAMEWORK LARAVEL 1.1 Giới thiệu Framework Laravel 1.1.1 Khái niệm 1.1.2 Lịch sử phát triển Laravel 1.1.3 Ưu điểm Framework Laravel 1.2 Cài đặt Framework Laravel 1.2.1 Yêu cầu hệ thống 1.2.2 Cài đặt Framework Laravel 1.3 Kết luận chương Chương 2: PHÁT TRIỂN WEBSITE TRÊN NỀN TẢNG FRAMEWORK LARAVEL 2.1 Tổng quan mơ hình MVC 2.2 Mơ hình MVC Framework Laravel 2.2.1 Controller 2.2.2 View 2.3.3 Model 2.3 Framework Laravel xây dựng website với mơ hình MVC 2.3.1 Cách sử dụng Route Laravel 2.3.2 Cách sử dụng View, Model Controller Laravel 2.3.3 Sử dụng Blade Templates engine Laravel 11 2.3.4 Làm việc với database lệnh Laravel 13 2.3.5 Tạo mối quan hệ Relationships Laravel 22 2.4 Kết luận chương 30 Chương 3: XÂY DỰNG HỆ THỐNG QUẢN LÝ DỊCH VỤ DU LỊCH TRỰC TUYẾN 31 3.1 Phát biểu toán 31 3.2 Phân tích thiết kế hệ thống 31 3.2.1 Các tác nhân hệ thống 31 3.2.2 Ca sử dụng hệ thống 31 3.2.3 Biểu đồ ca sử dụng hệ thống 32 3.2.4 Đặc tả ca sử dụng 33 3.2.5 Mơ hình cấu trúc hệ thống 38 3.2.6 Mơ hình hành vi hệ thống 42 3.2.7 Thiết kế hệ thống 48 3.3 Chương trình thử nghiệm 64 3.4 Kết luận chương 71 Phần KẾT LUẬN 72 Phần TÀI LIỆU THAM KHẢO 73 DANH MỤC HÌNH VẼ Hình 1.1: Cài đặt Laravel Hình 1.2: Giao diện Laravel sau cài đặt Hình 2.1: Mơ hình MVC Hình 3.1: Ca sử dụng cho ban quản trị 32 Hình 3.2: Ca sử dụng cho khách hàng 32 Hình 3.3: Biểu đồ cho ca sử dụng đăng nhập 42 Hình 3.4: Biểu đồ cho ca sử dụng quản lý tour du lịch 43 Hình 3.5: Biểu đồ cho ca sử dụng quản lý khách sạn 44 Hình 3.6: Biểu đồ cho ca sử dụng quản lý phòng 45 Hình 3.7: Phương thức kiểm tra tài khoản 46 Hình 3.8: Phương thức thêm tour du lịch 46 Hình 3.9: Phương thức thêm khách sạn 47 Hình 3.10: Phương thức thêm phịng khách sạn 47 Hình 3.11: Cơ sở liệu 48 Hình 3.12: Biểu đồ định hướng cửa sổ cho ca sử dụng đăng nhập 58 Hình 3.13: Biểu đồ định hướng cửa sổ cho ca sử dụng đăng ký tài khoản 59 Hình 3.14: Biểu đồ định hướng cho ca sử dụng quản lý tour du lịch 60 Hình 3.15: Biểu đồ định hướng cho ca sử dụng quản lý khách sạn 61 Hình 3.16: Biểu đồ định hướng cho ca sử dụng quản lý phòng khách sạn 62 Hình 3.17: Biểu đồ thành phần 63 Hình 3.18: Trang đăng nhập vào hệ thống 64 Hình 3.19: Trang chủ hệ thống 64 Hình 3.20: Danh sách tài khoản quản trị 65 Hình 3.21: Thêm tài khoản quản trị 65 Hình 3.22: Danh sách tour du lịch 66 Hình 3.23: Thêm tour du lịch 66 Hình 3.24: Danh sách khách sạn 67 Hình 3.25: Thêm khách sạn 67 Hình 3.25: Danh sách phòng 68 Hình 3.26: Thêm phịng khách sạn 68 Hình 3.27: Giao diện trang chủ 69 Hình 3.28: Giao diện trang danh sách khách sạn 70 Hình 3.29: Giao diện trang đặt phòng khách sạn 71 DANH MỤC BẢNG Bảng 3.1: Bảng liệu User 49 Bảng 3.2: Bảng liệu Tours 50 Bảng 3.3: Bảng liệu category_tours 51 Bảng 3.4: Bảng liệu book_tours 51 Bảng 3.5: Bảng liệu areas 52 Bảng 3.6: Bảng liệu review_tours 52 Bảng 3.7: Bảng liệu category_hotels 53 Bảng 3.8: Bảng liệu hotels 54 Bảng 3.9: Bảng liệu rooms 55 Bảng 3.10: Bảng liệu category_rooms 55 Bảng 3.11: Bảng liệu book_rooms 56 Bảng 3.12: Bảng liệu room_convenients 56 Bảng 3.13: Bảng liệu hotel_convenients 57 Bảng 3.14: Bảng liệu convenients 57 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tên tiếng anh Tên tiếng việt MVC Model – View – Controller Mơ hình lớp PK PRIMARY KEY Khóa CD Command Prompt Nhắc lệnh window FK Foreign key Khóa ngoại HTML HyperText Markup Language Mã HTML ORM Object-relational mapping Truy vấn đến database CSS Cascading Style Sheets Mã CSS PHP Hypertext Preprocessor Ngơn ngữ lập trình UML Unified Modeling Language ngôn ngữ dành cho việc đặc tả CSDL Database Cơ sở liệu Phần MỞ ĐẦU 1.1 Lý chọn đề tài Trong phát triển mạnh mẽ khoa học cơng nghệ giới, nói ngành công nghệ thông tin phát triển với tốc độ nhanh ngày thể vai trò to lớn, quan trọng toàn đời sống người Hầu hết lĩnh vực xã hội ứng dụng công nghệ thông tin, nhiều phần mềm mang lại hiệu phủ nhận Song thực tiễn đặt yêu cầu địi hỏi ngành cơng nghệ thơng tin khơng ngừng phát triển để thỏa mãn đáp ứng thay đổi sống Ngày nay, ứng dụng công nghệ thông tin việc tin học hóa xem yếu tố mang tính định hoạt động phủ, tổ chức, cơng ty… đóng vai trị quan trọng, tạo bước đột phá mạnh mẽ Việc xây dựng trang web để phục vụ cho nhu cầu riêng tổ chức, công ty chí cá nhân ngày khơng lấy làm xa lạ Thơng qua website này, thông tin họ công văn, thơng báo, định phủ hay sản phẩm, dịch vụ công ty đến với người quan tâm, đến với khách hàng họ cách nhanh chóng kịp thời, tránh phiền hà mà phương thức giao tiếp truyền thống thường gặp phải Hoạt động cơng ty du lịch có quy mô lớn tăng cường mở rộng xây dựng website có khả giới thiệu công ty cho phép quản lý tour du lịch đặt phòng khách sạn cách nhanh chóng xác Bắt nguồn với ý tưởng này, với gợi ý thầy Đỗ Quang Khơi, em chọn đề tài “Tìm hiểu Framework Laravel 5.x ứng dụng phát triển hệ thống Quản lý dịch vụ du lịch trực truyến” làm khóa luận tốt nghiệp 1.2 Mục tiêu đề tài - Nắm vững kiến thức mơ hình MVC Laravel Framework - - - Áp dụng Framework Laravel để viết ứng dụng phát triển hệ thống Quản lý dịch vụ du lịch trực truyến 1.3 Đối tượng phạm vi nghiên cứu - Kiến thức MVC Framework Laravel - Ứng dụng Framework Laravel vào xây dựng hệ thống 1.4 Phương pháp nghiên cứu - Tìm đọc tài liệu trang chủ laravel.com, giáo trình, luận văn, báo, thơng tin mạng, tìm hiểu thực tế - Phân tích, tổng hợp tài liệu - Phân tích thiết kế hệ thống theo hướng tiếp cận UML 1.5 Lịch sử nghiên cứu - Framework Laravel số tác giả tìm hiểu nghiên cứu trước - Phần lớn tác giả cho thấy cách tổng quan nội dung lý thuyết Framework Laravel đồng thời xây dựng hệ thống phù hợp với môi trường thân tác giả - Với ưu điểm lập trình PHP Framework Laravel sử dụng nhiều hệ thống lớn nhiên cịn mẻ sinh viên trường Đại học Quảng Nam 1.6 Đóng góp đề tài - Đề tài nghiên cứu nhằm trình bày tổng quan Framework Laravel 5.x - Trình bày kiến thức tổng quan mơ hình MVC Framework Laravel - Xây dựng ứng dụng việc quản lý dịch vụ du lịch trực truyến 1.7 Cấu trúc khóa luận Lời cảm ơn Mục lục - -

Ngày đăng: 28/02/2024, 20:03

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan