MỞ ĐẦU Công nghệ thông tin ngày càng phát triển, đóng một phần quan trọng không chỉ trong nền kinh tế – văn hóa – xã hội, thậm chí còn trong các ngành khoa học công nghệ. Máy tính điện tử hiện nay cũng không còn là phương tiện quý hiếm mà đang ngày càng trở thành một công cụ đắc lực trợ giúp con người. Con người không ngừng khai thác các tài nguyên được cập nhật trên hệ thống mạng Internet, hay cũng có thể đăng tải và tìm kiếm những tài nguyên mình cần. Công nghệ thông tin và đặc biệt là Internet đã giúp cho con người thay đổi cách sống, cách liên lạc, cách làm việc, cách tiếp cận các nguồn thông tin đa dạng và nhanh chóng.
Mạng Internet ra đời là trợ thủ đắc lực giúp cho những người có nhu cầu tìm kiếm các tài nguyên nói chung, hay tìm kiếm các phòng khách sạn nói riêng trở nên dễ dàng hơn bao giờ hết. Với người có nhu cầu thuê phòng khách sạn, việc tìm kiếm theo hình thức truyền thống sẽ rất khó khăn, mất thời gian và công sức để tìm những nơi phù hợp với tiêu chí của mình. Đối với người cho thuê, việc tiếp cận với khách hàng gặp khá nhiều khó khăn do vị trí, cách thức truyền đạt hạn chế. Giờ đây hệ thống mạng ra đời, chỉ với một chiếc máy tính được kết nối mạng là chúng ta có thể đăng tin và tìm kiếm các phòng khách sạn ở bất cứ địa điểm nào, giá cả phù hợp với nhu cầu một cách dễ dàng.
Từ những lý do trên, em quyết định chọn đề tài “Xây dựng website hỗ trợ tìm kiếm và đặt phòng khách sạn”. Với mong muốn tạo ra trang website, hỗ trợ người dùng tìm kiếm các phòng khách sạn phù hợp với nhu cầu. Mục tiêu đề tài “Xây dựng website hỗ trợ tìm kiếm và đặt phòng khách sạn TAHO” là một website đặt phòng trực tuyến cung cấp cho doanh nghiệp và cá nhân nền tảng kinh doanh phù hợp với xu hướng của ngành công nghiệp 4. Ngoài ra, website mong muốn cung cấp và phục vụ khách hàng các chức năng đặt phòng tiện lợi, hiện đại cùng với trải nghiệm đặt phòng tốt nhất.
Đối tượng nghiên cứu và phạm vi nghiên cứu a. Đối tượng nghiên cứu Phân tích thiết kế chức năng tìm kiếm, đặt phòng khách sạn. SVTH: Phan Thị Thanh Thảo 1 Xây dựng website hỗ trợ tìm kiếm và đặt phòng khách sạn TAHO b. Phạm vi nghiên cứu Đề tài được áp dụng tại Đà Nẵng và sau này có thể mở rộng phạm vi ra các thành phố/ tỉnh khác trên cả nước.
Phương pháp nghiên cứu • Phương pháp nghiên cứu lý thuyết thu thập thông tin qua internet, tài liệu, sách để tìm được các cơ sở lý thuyết liên quan vấn đề mình nghiên cứu. • Phương pháp triển khai thực nghiệm: xây dựng website. Giải pháp công nghệ • Ngôn ngữ lập trình: PHP – Laravel Framework. • Hệ quản trị cơ sở dữ liệu: MySQL.
• Công cụ hỗ trợ: StartUML, Visual Studio Code. Cấu trúc của đồ án tốt nghiệp Cấu trúc đồ án tốt nghiệp gồm các phần như sau: - Mở đầu: Nghiên cứu, tìm hiểu và đưa ra lý do chọn đề tài, mục tiêu và mục đích khi xây dựng và phát triển đề tài. Xác định rõ phạm vi và đối tượng hướng đến, giải pháp công nghệ để triển khai, xây dựng đề tài, đồng thời phân tích đặc tả yêu cầu nghiệp vụ. - Chương I: Cơ sở lý thuyết Tìm hiểu, giới thiệu tổng quát các kiến thức về ngôn ngữ lập trình PHP, TypeScript, Laravel Framework, Bootstrap 5 và hệ quản trị cơ sở dữ liệu MySQL.
- Chương II: Phân tích thiết kế hệ thống Phân tích các tác nhân và chức năng của từng tác nhân, yêu cầu phi chức năng của hệ thống. Thiết kế sơ đồ use-case, sơ đồ hoạt động, sơ đồ ERD. Thiết kế cơ sở dữ liệu. Xây dựng kịch bản cho từng use-case trong hệ thống.
- Chương III: Xây dựng giao diện và chức năng của hệ thống. - Kết luận và Hướng phát triển: Kết luận chung cho các chương trong đồ án. Trình bày những vấn đề đã giải quyết đồng thời trình bày hướng phát triển. SVTH: Phan Thị Thanh Thảo 2 Xây dựng website hỗ trợ tìm kiếm và đặt phòng khách sạn TAHO Chương 1 CƠ SỞ LÝ THUYẾT 1.
Ngôn ngữ lập trình PHP 1. PHP là gì? PHP là chữ viết tắt của “Personal Home Page" do Rasmus Lerdorf tạo ra năm 1994. Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử dụng trong môi trường chuyên nghiệp và nó trở thành “PHP:Hypertext Preprocessor". Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơn giản đó là một trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trong HTML.
PHP là một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một công nghệ phía máy chủ (Server-Side) và không phụ thuộc vào môi trường (cross- platform). Đây là hai yếu tố rất quan trọng, thứ nhất khi nói công nghệ phía máy chủ tức là nói đến mọi thứ trong PHP đều xảy ra trên máy chủ, thứ hai, chính vì tính chất không phụ thuộc môi trường cho phép PHP chạy trên hầu hết trên các hệ điều hành như Windows, Unix và nhiều biển thể của nó. Đặc biệt các mã kịch bản PHP viết trên máy chủ này sẽ làm việc bình thường trên máy chủ khác mà không cần phải chỉnh sửa hoặc chỉnh sửa rất ít. Khi một trang Web muốn được dùng ngôn ngữ PHP thì phải đáp ứng được tất cả các quá trình xử lý thông tin trong trang Web đó, sau đó đưa ra kết quả ngôn ngữ HTML.
Khác với ngôn ngữ lập trình, PHP được thiết kế để chỉ thực hiện điều gì đó sau khi một sự kiện xảy ra (ví dụ, khi người dùng gửi một biểu mẫu hoặc chuyển tới một URL 1. Tại sao nên sử dụng PHP? Để thiết kế Web động có rất nhiều ngôn ngữ lập trình khác nhau để lựa chọn, mặc dù cấu hình và tính năng khác nhau nhưng chúng vẵn đưa ra những kết quả giống nhau. Chúng ta có thể lựa chọn cho mình một ngôn ngữ: ASP, PHP, Java, Perl. và SVTH: Phan Thị Thanh Thảo 1 Xây dựng website hỗ trợ tìm kiếm và đặt phòng khách sạn TAHO một số loại khác nữa.
Vậy tại sao chúng ta lại nên chọn PHP. Rất đơn giản, có những lí do sau mà khi lập trình Web chúng ta không nên bỏ qua sự lựa chọn tuyệt vời này. PHP được sử dụng làm Web động vì nó nhanh, dễ dàng, tốt hơn so với các giải pháp khác. PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu hết các cơ sở dữ liệu có sẵn, tính linh động, bền vững và khả năng phát triển không giới hạn.
Đặc biệt PHP là mã nguồn mở do đó tất cả các đặc tính trên đều miễn phí, và chính vì mã nguồn mở sẵn có nên cộng đồng các nhà phát triển Web luôn có ý thức cải tiến nó, nâng cao để khắc phục các lỗi trong các chương trình này. PHP vừa dễ với người mới sử dụng vừa có thể đáp ứng mọi yêu cầu của các lập trình viên chuyên nghiệp, mọi ý tuởng của các bạn PHP có thể đáp ứng một cách xuất sắc Hình 1.1: Sơ đồ hoạt động của PHP 1. Giới thiệu về Laravel framework 1. Tổng quan về Laravel Framework Được phát triển dựa trên mô hình MVC, Laravel là một PHP Framework mã nguồn mở miễn phí với cú pháp rõ ràng, mạch lạc.
Như đã chia sẻ ở bài viết trước, Framework hoặc “Software Framework” (tạm dịch: khung phần mềm) là “bộ khung” cung cấp đa số các kiểu mẫu thiết kế phù hợp với ứng dụng bạn sắp thực hiện, các thư viện, API, trình biên dịch. Framework được cấu thành từ các đoạn code. MVC (Model-View-Controller) là mô hình phân bố source code thành 3 phần. Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác.
Cụ thể là: SVTH: Phan Thị Thanh Thảo 2 Xây dựng website hỗ trợ tìm kiếm và đặt phòng khách sạn TAHO Model : Đây là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (mysql, mssql…). Thành phần Model bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu, … View : Đây là nơi chứa những giao diện như nút bấm, khung nhập, menu, hình ảnh, … Thành phần View sẽ đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống. Controller : Đây là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng. Thành phần Controller sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết và hiển thị dữ liệu đó ra cho người dùng qua lớp View.2: Giới thiệu về Laravel 1.
Ưu điểm của Laravel • Tiếp cận các tính năng mới nhất mà PHP cung cấp. Ưu điểm này đặc biệt hữu ích với người dùng Namespaces, Interfaces, Overloading, Anonymous functions và Shorter array syntax. • Tham khảo nguồn tài nguyên đa dạng tài liệu khác nhau. Mỗi phiên bản phát hành của Laravel đều kèm theo nguồn tài liệu phù hợp để người dùng tiện tra cứu.
• Tích hợp với dịch vụ mail dựa trên nền tảng đám mây hoặc local nhờ API sạch trên thư viện SwiftMailer SVTH: Phan Thị Thanh Thảo 3 Xây dựng website hỗ trợ tìm kiếm và đặt phòng khách sạn TAHO • Tốc độ xử lý nhanh, đáp ứng như cầu tạo lập website hay các dự án lớn trong thời gian ngắn • Dễ sử dụng nhờ tuân theo mẫu thiết kế mô hình 3 lớp MVC dễ hiểu. • Tính bảo mật cao • Hỗ trợ các cache backend như Memcached và Redis out-of-the-box • Công cụ tích hợp cho dòng lệnh – Artisan • Tạo liên kết đến các route được đặt tên • Giảm đáng kể chu kỳ phát triển sản phẩm vì Laravel giúp tích hợp nhanh hơn cùng sự hỗ trợ của cộng đồng Laracasts. Nhược điểm của Laravel Framework • Không có sự liên kết giữa các phiên bản. Ứng dụng có thể bị đình trệ, ngừng hoạt động hoặc phá vỡ nếu người dùng cố cập nhật code.
• Làm chậm tốc độ tải trang vì Laravel quá nặng cho ứng dụng di động. • Không hỗ trợ tính năng thanh toán 1. Các thành phần cơ bản của Laravel Framework • Khái niệm route: Route trong Larvel cũng như các framework khác đều có chức năng là định ra các dạng resquest (hiểu nôm na là url) định sẵn và cũng có các action (hành động) do chúng ta định nghĩa cho nó. • Các loại route trong Laravel: Laravel là một framework hỗ trợ rất đa dạng về route, và cũng rất dễ sử dụng.