TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THÔNG TIN HỮU NGHỊ VIỆT - HÀN KHOA CÔNG NGHỆ THÔNG TIN
XÂY DỰNG WEBSITE QUẢN LÍ ĐẶT PHÒNG DỊCH VỤ HOMESTAY CHO BAOBAB HOMESTAY TÓM TẮT ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN NIÊN KHÓA: 2016 - 2019
: Trần Hữu Nhựt
HSSV Mã HSSV : CCCT16B015
CBHD
: TS. Nguyễn Thị Hoa Huệ
Đà Nẵng, 06/2019
MỞ ĐẦU
Khoảng vài năm trở lại đây, loại hình lưu trú ngắn hạn homestay thực sự bùng nổ khi nhu cầu khách hàng lựa chọn homestay để nghỉ dưỡng ngày càng tăng và kéo theo đó nhiều người cũng “đua nhau” đầu tư kinh doanh loại hình sản phẩm, dịch vụ này.
Ngoài nhu cầu từ khách hàng thì các ưu thế vượt trội so với thị trường như giá cả, tiện ích và sự đa dạng cũng là những yếu tố thúc đẩy. So với khách sạn từ 3 đến 4 sao, giá thuê homestay tương đương, có đôi khi còn rẻ hơn, chỉ cần bỏ từ vài trăm nghìn là bạn đã có thể sở hữu cho mình một không gian vô cùng tiện ích.
Đôi với khách du lịch ngày nay, càng ngày khách càng đòi hỏi cao hơn từ các dịch vụ của homestay như: wifi miễn phí, hệ thống giải trí hiện đại, những trải nghiệm độc nhất, check-in, check-out nhanh chóng… Đó cũng là thách thức trong việc cạnh tranh giữa các homestay.
Để chủ động hơn về công nghệ và giảm thiểu chi phí đặt phòng đã được chiết khấu qua các trung gian hệ thống đặt phòng online. Nhiều homestay đã tự xây dựng hệ thống website đặt phòng riêng của mình. Tại đó khách du lịch sẽ có mức giá lưu trú hợp lí hơn.
1. Lý do chọn đề tài
Baobab homestay nằm trên đường Bùi Hữu Nghĩa, thuộc phường An Hải Bắc, quận Sơn Trà, thành phố Đà Nẵng. Baobab homestay chuyên cung cấp các phòng ở lưu trú cỡ nhỏ và vừa cho các cá nhân hay gia đình du lịch xa đến với Đà Nẵng muốn có một sự lựa chọn phù hợp về giá cho chỗ ở qua đêm hoặc dài hạn.
Baobab homestay hiện tại đang trong giai đoạn phát triển, Baobab homestay không chỉ muốn dừng lại ở việc đặt booking tại các trang booking lớn. Nên Baobab homestay muốn có một website riêng giúp khách hàng có thể booking ngay tại website của Baobab
1
homestay. Bên cạnh đó website của Baobab homestay có thể giúp quảng cáo chi tiết hơn cho các dịch vụ của mình.
2. Mục tiêu và nhiệm vụ nghiên cứu
Tạo dựng một website cho Baobab homestay dựa trên các ngôn ngữ lập trình web và framework CodeIgiter đáp ứng được các yêu cầu:
- Thiết kế lịch sự, đơn giản, sang trọng, nhưng vẫn đảm bảo sự tinh tế. Thiết kế website phải thể hiện được hình ảnh đẹp của Baobab homestay.
- Tính năng đặt phòng thuận tiện, nhanh chóng. - Tính năng quản lí đặt phòng. - Trang giới thiệu Baobab homestay và các dịch vụ của
Baobab homestay..
- Website phải đáp ứng được tính bảo mật. - Phải dễ sử dụng đối với người quản lí và cả người dùng.
3. Đối tƣợng và phạm vi nghiên cứu - Đối tượng nghiên cứu:
o Baobab homestay. o Ngôn ngữ lập trình web PHP; HTML, CSS,
Javascript.
o Framework CodeIgniter 3.10.
- Phạm vi nghiên cứu:
o Dịch vụ đặt phòng của Baobab homestay. o Thông tin phòng ở của Baobab homestay.
4. Phƣơng pháp nghiên cứu
- Nghiên cứu lí thuyết: Nghiên cứu lí thuyết về thiết kế web (thiết kế giao diện với ngôn ngữ HTML, CSS, Javascript,…), lập trình web (ngôn ngữ PHP, framework Codeigniter và hệ QT CSDL MySQL).
- Nghiên cứu thực nghiệm: Phân tích, tìm hiểu các kiểu thiết kế, xu hướng thiết kế cũng như phần mềm quản lí đặt phòng của các
2
website thuộc lĩnh vực Homestay, Khách sạn, Nhà hàng, Khu nghỉ dưỡng để vận dụng lập trình xây dựng webssite cho Baobab homestay một cách hợp lí. 5. Dự kiến kết quả Hoàn thành Website Baobab Homestay với chức năng đặt
phòng cơ bản.
6. Ý nghĩa khoa học và ý nghĩa thực tiễn
- Ý nghĩa khoa học: Sinh viên tích lũy thêm kiến thức, kinh nghiệm về lập trình
website full-stack. Tìm hiểu thêm về framework CodeIgniter.
- Ý nghĩa thực tiễn
Giúp Baobab homestay có một hệ thống website đặt phòng
hoàn chỉnh của riêng mình.
Ngoài những nội dung như Phần mở đầu, tổng kết, tài liệu
tham khảo thì nội dung chính của đồ án gồm các chương như sau:
Chương 1. Cơ sở lý thuyết.
Chương 2. Phân tích thiết kế.
Chương 3. Website Demo
3
CHƢƠNG 1. CƠ SỞ LÝ THUYẾT
1.1. NGÔN NGỮ LẬP TRÌNH PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới.
1.2. NHỮNG ĐẶC TRƢNG CƠ BẢN CỦA PHP
1.3. ƢU VÀ NHƢỢC ĐIỂM CỦA PHP
1.4. MÔ HÌNH PHÁT TRIỂN WEBSITE MVC
SAP (SINGLE WEB
1.5. MÔ HÌNH WEBSITE APPLICATION)
1.6. MỘT SỐ CÔNG NGHỆ KHÁC
1.6.1. Framework PHP
1.6.2. Framework CodeIgniter phiên bản 3.x
1.6.3. HTML
1.6.4. CSS
1.6.5. Bootstrap
1.6.6. Javascript
1.6.7. jQuery
1.6.8. jQuery Ajax
4
CHƢƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1. ĐẶT VẤN ĐỀ
Dịch vụ cung cấp phòng lưu trú homestay giá rẻ ngày càng nở rộ. Kéo theo đó là các dịch vụ liên kết và phân phối đặt phòng như Booking, Airbnb hay tại Việt Nam là Luxstay,… ngày một nhiều.
Giả sử chỉ có một Booking thay vì có nhiều các dịch vụ phân phối khác tương tự. Chủ homestay sẽ liên kết với Booking, và sử dụng công nghệ của Booking để quản lí việc đặt phòng. Khách du lịch có nhu cầu sẽ tìm đến homestay qua Booking hoặc chủ của homestay sẽ quảng cáo bên ngoài và đưa khách đến với Booking thông qua các đường link. Booking sẽ trích tiền đặt phòng ở mức phần trăm nhất định Công việc của homestay về việc đặt phòng chỉ dừng lại ở Booking.
Bây giờ có rất nhiều dịch vụ như Booking, nhiều homestay sẽ lựa chọn hầu hết các dịch vụ này, nhằm đảm bảo phòng của homestay tiếp cận được đến hết hầu hết khách du lịch. Thời gian của chủ homestay dành ra cho các dịch vụ này sẽ tăng lên. Quản lí giá phòng tại mỗi dịch vụ sẽ khác nhau, công nghệ mỗi dịch vụ cũng lại khác nhau. Việc cập nhật tình trạng phòng đến các dịch vụ sẽ không đồng đều và kịp thời.
Vậy, một homestay có thể làm chủ được công nghệ đặt phòng, thông báo chính xác kịp thời tình trạng phòng của homestay, cũng như giá phòng sẽ ở mức hợp lí khi không phải chiết khấu qua các khâu trung gian sẽ là điều đáng thực hiện.
2.2. PHÂN TÍCH THIẾT KẾ
2.2.1. Yêu cầu phi chức năng 2.2.2. Yêu cầu chức năng 2.3. BIỂU ĐỒ TRƢỜNG HỢP SỬ DỤNG
2.3.1. Danh sách các tác nhân sử dụng hệ thống
5
STT Tác nhân Ý nghĩa
1 Người dùng chung Người truy cập vào website
2 Khách thuê Người truy cập vào website và đặt phòng trên website
3 Người quản lí Người quản lí hệ thống(chủ homestay)
- Người dùng chung: tác nhân có thể xem các thông tin trên
website như thông tin phòng ở nhưng không đặt phòng.
- Khách thuê: tác nhân có thể xem các thông tin trên website giống người dùng chung nhưng là người đặt phòng trực tuyến. Có thể đã từng đặt trước đó hoặc là khách thuê mới.
- Người quản lí: tác nhân có thể sử dụng các chức năng của hệ thống như cập nhật thông tin phòng, kiểm tra thông tin các đơn thuê phòng, kiểm tra hoặc cập nhật thông tin khách thuê,… 2.3.2. Các biểu đồ trƣờng hợp sử dụng của hệ thống
Hình 2.1. Biểu đồ trường hợp sử dụng tổng quát
6
Hình 2.2. Biểu đồ trường hợp sử dụng cập nhật danh mục phòng
Hình 2.3. Biểu đồ trường hợp sử dụng cập nhật danh mục đơn thuê
Hình 2.4. Biểu đồ trường hợp sử dụng cập nhật danh mục khách thuê
7
Hình 2.5. Biểu đồ trường hợp sử dụng thêm mới đơn thuê
2.4. BIỂU ĐỒ LỚP
Hình 2.6. Các bảng biểu đồ lớp
2.5. TỪ ĐIỂN CƠ SỞ DỮ LIỆU
2.5.1. Bảng room Bảng 2.1. Bảng từ điển phòng.
Tên thuộc tính Kiểu dữ liệu Chú thích
room_id int(11) Mã phòng(khóa chính)
name varchar(255) Tên phòng
8
price varchar(255) Giá phòng
short_desc varchar(255) Mô tả ngắn
long_desc text Mô tả chi tiết phòng
people int(11) Số người ở giới hạn
features text Dịch vụ cơ bản đi kèm
thumbnail_image text Hình ảnh đại diện
gallery_image text Album hình ảnh
square varchar(4) Diện tích phòng
date_booked text Danh sách ngày mà phòng đã được thuê
2.5.2. Bảng orders Bảng 2.2. Bảng từ điển đơn thuê phòng.
Tên thuộc tính Kiểu dữ liệu Chú thích
order_id int(11) Mã đơn thuê phòng(khóa chính)
room_id int(11) Mã phòng(khóa ngoại)
status int(11)
Trạng thái đơn thuê(1: chờ xác nhận; 2: chờ checkin; 3: chờ checkout; 4: đã checkout và thanh toán; 5: đã hủy)
total varchar(11) Tổng tiền đơn thuê
checkin varchar(255) Ngày đến
checkout varchar(255) Ngày đi
client_id int(11) Mã khách hàng(khóa ngoại)
9
token text Mã xác nhận đơn thuê
people int(11) Số người đến cùng
date datetime Ngày thực hiện đặt phòng
2.5.3. Bảng client Bảng 2.3. Bảng từ điển khách thuê.
Tên thuộc tính Kiểu dữ liệu Chú thích
client_id int(11) Mã khách thuê(khóa chính)
fullname varchar(255) Tên đầy đủ khách thuê
email varchar(60) Email khách thuê
phone varchar(20) Số điện thoại khách thuê
address varchar(255) Địa chỉ khách thuê
date_used datetime Ngày đầu sử dụng dịch vụ
status int(11)
Trạng thái khách thuê(1: được thuê; 2: bị chặn thuê; 3: cần xác nhận đơn vừa đặt)
2.5.4. Bảng user Bảng 2.4. Bảng từ điển tài khoản.
Tên thuộc tính Kiểu dữ liệu Chú thích
user_id int(11) Mã tài khoản(khóa chính)
user_name varchar(22) Tên của chủ tài khoản
user_email varchar(60) Địa chỉ email đăng nhập
user_password varchar(40) Mật khẩu đăng nhập
CHƢƠNG 3. WEBSITE DEMO
10
3.1. GIAO DIỆN WEBSITE DÀNH CHO NGƢỜI DÙNG CHUNG
Hình 3.1. Giao diện tổng quan dành cho khách
11
Hình 3.2. Giao diện đầu trang và kiểm tra phòng
Hình 3.3. Giao diện trả kết quả kiểm tra phòng trống
12
Hình 3.4. Giao diện thân trang và thông tin phòng
Hình 3.5. Giao diện thông tin chi tiết phòng
13
3.2. GIAO DIỆN ĐẶT PHÒNG DÀNH CHO KHÁCH THUÊ PHÒNG
Hình 3.6. Giao diện chọn ngày đặt phòng
Hình 3.7. Giao diện cung cấp thông tin liên hệ xác nhận đặt phòng
14
Hình 3.8. Giao diện thông báo kết quả đặt phòng
3.3. GIAO DIỆN QUẢN LÍ DÀNH CHO NGƢỜI QUẢN LÍ
Hình 3.9. Giao diện đăng nhập của quản lí
15
Hình 3.10. Giao diện quản lí phòng
Hình 3.11. Giao diện thêm mới phòng
16
Hình 3.12. Giao diện cập nhật thông tin phòng
Hình 3.13. Giao diện cập nhật tài khoản quản trị
17
Hình 3.14. Giao diện quản lí khách thông tin khách từng thuê
Hình 3.15. Giao diện quản lí thông tin đơn đặt phòng
18
KẾT LUẬN
1. TỔNG KẾT
Xây dựng hệ thống website theo mô hình mới như SPA(Single page application - ứng dụng website một trang) là một thách thức không hề nhỏ. Thứ nhất, mặc dù độ phổ biến của mô hình này khá rộng, nhưng do thời gian tiếp cận của em đối với mô hình này lại chỉ có hạn. Thứ hai, đây là lần đầu tiên em xây dựng website áp dụng nhiều mô hình và công nghệ như SPA, MVC, framework CodeIgniter,… vào thực tế. Do đó quá trình thực hiện đề tài gặp rất nhiều bug, mất khá nhiều thời gian để tìm hiểu kiến thức mới và hiểu để áp dụng vào đề tài. Ngoài ra, để một website có một trải nghiệm tốt đối với người dùng thì phải cần nhiều yếu tố ví dụ như giao diện. Phần giao diện này cũng mất khá nhiều thời gian nghiên cứu trong đề tài, nhưng cũng không thể tránh các thiếu sót về mặc thẩm mĩ.
Dưới đây là phần trình bày những gì em đã thực hiện được
trong đề tài lần này:
- Về giao diện: Giao diện được xây dựng khá hoàn chỉnh, tương ứng với từng đối tượng cụ thể, ở đây có ba đối tượng là Người dùng chung, Người thuê phòng và Người quản lí homestay.
- Với người quản lí thì có thể thực hiện được các chức năng: Cập nhật thông tin phòng ở lên website, trong đó có thêm, sửa, xóa phòng; Thay đổi mật khẩu của tài khoản quản lí; Quản lí các đơn đặt phòng của khách thuê; Quản lí thông tin của các khách đã từng thuê phòng trên website.
- Với người dùng là khách thuê phòng online: Kiểm tra phòng trống khả dụng tương ứng với ngày muốn lưu trú; Đặt phòng online; Thay đổi thông tin liên hệ của chính mình trong các lần đặt phòng tiếp theo.
Mặc dù website còn thiếu sót nhiều chức năng, hoặc có nhiều dự định em chưa thể thực hiện hết trong đề tài do thời gian có hạn.
19
Em hi vọng sẽ có thể hoàn thiện trong thời gian đến. Những vấn đề tồn đọng mà website chưa đáp ứng:
- Thiếu cung cấp tài khoản quản lí cho nhân viên của
homestay.
- Thiếu mục tin bài blog du lịch. - Chưa có chức năng thanh toán online cọc phòng, nhằm đảm
bảo quyền lợi của homestay.
- Mặc dù một số phần lập trình có hướng đến chuẩn SEO, tuy
nhiên hiệu quả chưa đạt. 2. HƢỚNG PHÁT TRIỂN
Xây dựng bổ sung thêm phần chức năng của quản lí homestay
như:
- Tạo tài khoản riêng cho nhân viên, và phân quyền cho loại
tài khoản này cũng như quản lí loại tài khoản này.
- Đăng tin bài blog với nội dung về du lịch cho khách hàng
của mình hoặc nhằm mục đích quảng cáo khác.
Xây dựng bổ sung tính năng thanh toán online bằng việc liên kết với các hệ thống ngân hàng hoặc hệ thống thanh toán online quốc tế khác.
Lập trình nội dung website theo hướng chuẩn SEO để khách
hàng có thể dễ dàng tìm kiếm qua các công cụ tìm kiếm trên internet.
20