BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI
XÂY DỰNG ỨNG DỤNG QUẢN LÝ
KHÁCH SẠN TRÊN NỀN TẢNG ANDROID
KẾT HỢP WEB SERVICES
Sinh viên: Lê Thanh Hùng
Mã số: 1117874
Khóa K37
Cần Thơ, 05/2015
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
Đề Tài
XÂY DỰNG ỨNG DỤNG QUẢN LÝ
Mặc dù đã cố gắng và nổ lực hoàn thành đề tài 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 sai 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 thầy cô và các bạn.
Một lần nữa tôi xin chân thành cảm ơn!
Cần Thơ, ngày 05 tháng 05 năm 2015
Người thực hiện
Lê Thanh Hùng
i
MỤC LỤC
LỜI CẢM ƠN ..............................................................................................................i
MỤC LỤC .................................................................................................................. ii
DANH MỤC BẢNG ...................................................................................................v
DANH MỤC HÌNH ...................................................................................................vi
TÓM TẮT ................................................................................................................ vii
ABSTRACT ............................................................................................................ viii
CHƯƠNG 1 GIỚI THIỆU ..........................................................................................1
1.1 ĐẶT VẤN ĐỀ ...................................................................................................1
1.2 MỤC TIÊU ĐỀ TÀI ..........................................................................................1
1.3 PHẠM VI ĐỀ TÀI.............................................................................................1
1.4 HƯỚNG GIẢI QUYẾT VẤN ĐỀ .....................................................................2
1.4.1 Phương pháp thực hiện ................................................................................2
1.4.2 Hướng giải quyết .........................................................................................2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT ............................................................................3
2.1 GIỚI THIỆU VỀ NỀN TẢNG HỆ ĐIỀU HÀNH ANDROID [1] ...................3
2.2 GOOGLE MAPS ...............................................................................................3
2.2.1 Giới thiệu về google maps ...........................................................................3
2.2.2 Các apis và công nghệ nổi bật [3] ...............................................................4
4.1 GIAO DIỆN ĐĂNG NHẬP ............................................................................33
4.2 GIAO DIỆN ĐĂNG KÝ .................................................................................34
4.3 GIAO DIỆN CHÍNH CHƯƠNG TRÌNH .......................................................34
4.3.1 Giao diện người dùng ................................................................................35
4.3.2 Giao diện thành viên..................................................................................36
4.3.3 Giao diện người quản trị............................................................................37
4.4 GIAO DIỆN THÊM KHÁCH SẠN ................................................................37
4.5 GIAO DIỆN THÔNG TIN KHÁCH SẠN ......................................................39
4.6 GIAO DIỆN ĐẶT PHÒNG .............................................................................40
4.7 GIAO DIỆN TÌM KIẾM ĐIỂM BẤT KÌ ........................................................41
4.8 GIAO DIỆN QUẢN LÝ PHÒNG ...................................................................42
4.9 GIAO DIỆN QUẢN LÝ LOẠI PHÒNG ........................................................42
4.10 GIAO DIỆN DANH SÁCH ĐẶT PHÒNG ..................................................43
4.11 GIAO DIỆN DANH SÁCH KHÁCH SẠN ..................................................43
4.12 GIAO DIỆN QUẢN LÝ ĐẶT PHÒNG TRÊN WEB ..................................44
4.13 GIAO DIỆN DANH SÁCH THUÊ PHÒNG TRÊN WEB ...........................45
4.14 GIAO DIỆN DANH SÁCH KHÁCH SẠN TRÊN WEB .............................45
4.15 GIAO DIỆN DANH SÁCH KHUYẾN MÃI TRÊN WEB ..........................46
iii
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...........................................47
5.1 KẾT LUẬN......................................................................................................47
5.1.1 Ưu điểm .....................................................................................................47
5.1.2 Hạn chế ......................................................................................................47
5.2 HƯỚNG PHÁT TRIỂN ..................................................................................47
TÀI LIỆU THAM KHẢO .........................................................................................48
iv
Hình 3.2 – Use case người dùng ...............................................................................26
Hình 3.3 – Use case thành viên .................................................................................27
Hình 3.4 – Use case người quản trị ...........................................................................28
Hình 4.1 – Giao diện đăng nhập................................................................................33
Hình 4.2 – Giao diện đăng ký tài khoản ...................................................................34
Hình 4.3 – Giao diện người dùng ..............................................................................35
Hình 4.4 – Giao diện thành viên ...............................................................................36
Hình 4.5 – Giao diện người quản trị .........................................................................37
Hình 4.6 và 4.7 – Giao diện thêm khách sạn ............................................................38
Hình 4.8 và 4.9 – Giao diện thông tin khách sạn của người dùng và quản trị ..........39
Hình 4.10 – Giao diện đặt phòng ..............................................................................40
Hình 4.11 và 4.12 -Giao diện tìm kiếm điểm bất kì và Giao diện chỉ đường ...........41
Hình 4.13- Giao diện quản lý phòng và Hình 4.14- Giao diện quản lý loại phòng ..42
Hình 4.15 – Giao diện danh sách đặt phòng và Hình 4.16 – Giao diện danh sách
khách sạn ...................................................................................................................43
Hình 4.17 – Danh sách đặt phòng trên web ..............................................................44
Hình 4.18– Giao diện Danh sách thuê phòng. ..........................................................45
Hình 4.19 – Danh sách khách sạn .............................................................................45
Hình 4.20 – Danh sách khuyến mãi ..........................................................................46
vi
TÓM TẮT
Ứng dụng quản lý khách sạn là một ứng dụng hỗ trợ người dùng có thể dễ
dàng tìm kiếm khách sạn trên bản đồ theo tỉnh hoặc tìm được những khách sạn gần
người sử dụng nhất trên danh sách khách sạn. Người dùng có thể xem thông tin về
khách sạn, tìm hiểu những chương trình khuyến mãi mà khách sạn đó đưa ra, thời
gian khuyến mãi, số phòng trống có trong khách sạn. Từ những thông tin có được từ
khách sạn, người dùng có thể đưa ra quyết định đặt phòng ở khách sạn đó. Người
administrator to add or remove any hotel and post promotions for the hotel. Moreover,
the application is designed to interface with user which is friendly and easy to use.
Application was built according to the specific steps: data collection, analysis
and model building database, interface design for each function of the user, the
construction-based application delivery presence and functionality of the system.
Through the implementation process, the application was built to serve the
needs of users eith basic functions. Because time is limited, the application is not fully
optimized and the speed is not fast, it depends on network speed a lot. Therefore, the
application is going to be improved, expanded and put into practical in the future.
Key words: google map api, ksoap, json android, hotel management.
viii
CHƯƠNG 1 GIỚI THIỆU
1.1 ĐẶT VẤN ĐỀ
Ngày nay cùng với sự phát triển không ngừng của xã hội thì nhu cầu của con
người ngày càng tăng, đặc biệt là nhu cầu về việc sử dụng các công nghệ hỗ trợ có
kích thước nhỏ, gọn cho cuộc sống hằng ngày. Nắm bắt được nhu cầu đó mà các công
ty không ngừng đổi mới, phát triển và tạo ra nhiều công nghệ hơn. Trong đó, công
nghệ nổi bật và rất phổ biến hiện nay là công nghệ di động và các ứng dụng trên di
động.
Bên cạnh đó, kinh tế cũng không ngừng phát triển, cùng với đó là sự phát triển
vượt bậc của ngành du lịch. Sự phát triển vượt bậc này đã dẫn đến một vấn đề nan
giải đối với các công ty du lịch, các khách sạn và khách du lịch là sự tìm kiếm khách
sạn, tìm đường đi. Đặc biệt là sự quản lý các khách sạn trên bản đồ, bao gồm quản lý
loại phòng, phòng, chính sách khuyến mãi,… bằng cách thông qua một thiết bị di
động. Vì thế, sự ra đời của một ứng dụng giúp giải quyết vấn đề trên là hết sức cần
thiết.
Nhận thấy được nhu cầu đó nên em quyết định nghiên cứu và xây dựng một
khách sạn theo tỉnh hoặc một địa điểm bắt kì thông qua chức năng tìm kiếm do ứng
dụng cung cấp. Giúp người dùng biết đường đến điểm cần tìm, thời gian và phương
tiện đi thông qua chức năng chỉ đường.
1.4 HƯỚNG GIẢI QUYẾT VẤN ĐỀ
1.4.1 Phương pháp thực hiện
Về lý thuyết
̶ Nắm vững kiến thức cơ bản về lập trình android và Web services.
̶ Trang bị kiến thức về Google Map Api.
̶ Năm vững các phương pháp tổ chức, phân tích và thiết kế cơ sở dữ liệu.
Về kỹ thuật
̶ Dùng công cụ Power Designer 15.1 để thiết kế cơ sở dữ liệu.
̶ Dùng Microsoft Visual Studio 2012 tạo web services và websites
̶ Phần mềm máy ảo Genymotion 2.2.2.
̶ Lập trình Android với Eclipse.
1.4.2 Hướng giải quyết
Thu thập thông tin, yêu cầu và nhu cầu trên thị trường để làm cơ sở phân tích
đề tài.
Từ những thông tin thu thập được, xác định các tác nhân tác động vào hệ thống
và cách thức mà tác nhân đó tác động vào để có thể phân tích chính xác và cung cấp
các chức năng phù hợp với nhu cầu sử dụng.
Xây dựng cơ sở dữ liệu và các sơ đồ cần thiết.
Thiết kế giao diện dựa trên mô tả và các chức năng. Xác định và hiểu rõ từng
chức năng của hệ thống.
Tiến hành xây dựng ứng dụng dựa trên các giao diện và chức năng đã thiết kế.
2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 GIỚI THIỆU VỀ NỀN TẢNG HỆ ĐIỀU HÀNH ANDROID [1]
Khi mà việc sử dụng bản đồ giấy đã trở nên lỗi thời, thì dịch vụ tìm kiếm bản đồ số,
bản đồ vệ tinh, hệ thống GPS là hết sức cần thiết. Giờ thì ta có thể dễ dàng truy cập
vào Google Map ở bất cứ nơi đâu để tìm địa điểm , tìm đường, …
3
2.2.2 Các apis và công nghệ nổi bật [3]
Maps Image APIs: cho phép nhúng một hình ảnh của bản đồ hoặc hình ảnh từ
StreetView vào một trang web.
Map API Web services: sử dụng giao thức HTTPs để gửi các yêu cầu truy
nhập vào vị trí địa lý, phương hướng , múi giờ , …..
Places API: truy cập vào các thông tin về vị tri địa lý , hoặc những địa điểm
được quan tâm.
Google Earth API: truy cập bất cứ nơi nào trên thế giới chỉ với trình duyệt web
của máy tính.
2.3 GOOGLE MAPS API WEB SERVICES [3]
Google Maps API Web services là một tập các giao diện HTTP cung cấp thông
tin về địa lý cho ứng dụng.
Nó bao gồm:
Directions API
Distance Matrix API
Elevation
Geocoding API
trả về nhiều hướng đi khác nhau sử dụng một tập các điểm trung gian.
Dịch vụ này được thiết kế để tính toán đường đi giữa những vị trí xác định rõ
thông tin trên bản đồ Google Map. Vì quá trình tính toán đường đi mất thời gian và
phức tạp (phụ thuộc vào khoảng cách hai điểm) nên bất cứ khi nào có thể nên thực
hiện công việc tính toán trước và lưu trữ tạm thời kết quả nhận được.
Cú pháp của Direction URL Request:
directions /output?parameters
Response trả về có định dạng là XML hoặc JSON.
Các tham số của chuỗi request: một số tham số là bắt buộc, một số tham số là
tùy chọn. Được phân cách bằng ký tự "&".
Bắt buộc:
- origin: địa chỉ hoặc kinh vĩ độ của điểm xuất phát.
- destionation: địa chỉ hoặc kinh vĩ đỗ của điểm đến.
- sensor: có sử dụng thiết bị cảm biến hay không (true or false).
Tùy chọn:
- mode( mặc định là driving) : xác định kiểu di chuyển là đi bộ, đường xe ô tô,
….
- waypoints: xác đinh một tập hợp các điểm trung gian mà đường đi đi qua.
- alternatives ( true or false ) : nếu giá trị true được thiết lập thì kết quả trả về sẽ
nhiều hơn một tuyến đường để lựa chọn.
- region: mã vùng, bao gồm hai kí tự xác định vùng.
Ví dụ về Direction Request : tính đường đi từ đại học cần thơ đến bến xe hùng
vương.
/>20tho&destination=ben%20xe%20hung%20vuong&sensor=false
5
2.3.3 Google distance matrix api
Google Distance Matrix API là một dịch vụ cung cấp khoảng cách và thời gian
geocode /output?parameters
2.4 GOOGLE MAP PLACES API [3]
Google Places API cho phép truy vấn thông tin của địa điểm trên nhiều thể
loại, như: thể loại vị trí, vị trí địa lý, điểm nối bật, ….. Một kết quả trả về của Place
Search là một danh sách các địa điểm cùng thông tin tổng hợp của mỗi địa điểm.
6
2.4.1 Place Search
2.4.1.1 NearBy Search Request
Một NearBy Search cho phép tìm kiếm các địa điểm trong một khu vực xác
định. Cú pháp HTTP của Nearby Search Request:
/output?parameters
Trong đó: output có thể nhận giá trị là json hoặc xml. Đó chính là định dạng
của kết quả trả về tương ứng với request được gửi tới.
Dưới đây là một số đối số bắt buộc và tùy chọn của một Nearby Search
Request. Các đối số này sẽ được cách nhau bởi kí hiệu “&“.
-
key: khóa API của ứng dụng.
location: vị trí địa lý của điểm cần lây thông tin
radius: xác định 1 bán kính từ vị trí hiện tại tới các điểm cần lấy thông tin.
types: loại địa điểm tìm kiếm
Ví dụ về Nearby Search Request
/>18,105.7468535&radius=5000&types=hospital&key=AIzaSyBXOsoOCyY67v3Z6v
ARC3L2ZNzb1DiILUc
2.4.1.2 Text Search Request
Google Places API Text Search Service là một dịch vụ web trả về thông tin về
một tập hợp các điểm dựa trên một chuỗi đầu vào. Kết quả của tìm kiếm sẽ bao gồm
Place Actions cho phép chúng ta bổ sung các dữ liệu hiện có trong cơ sở dữ
liệu hiện có của Google với dữ liệu từ ứng dụng của chúng ta. Dữ liệu được thêm vào
bằng cách dùng Place Actions như một ứng dụng cụ thể, và nó được truy vấn bởi các
ứng dụng có cùng một API key.
Chúng ta có thể thêm, loại bỏ một địa điểm, đặt lịch hoặc chấp nhận cho các
người dùng tạo ra bảng xếp hạng theo tiêu chí của họ.
2.4.3.1 Thêm một địa điểm
Cú pháp:
/>apiKey
Kết quả trả về nếu địa điểm được thêm thành công:
8
{ "status" :"OK"}
2.4.3.2 Xóa một địa điểm
Cú pháp:
/>=apiKey
Thông Bản tin được gửi đi gồm các đối số sau:
reference: mã tham chiếu của một địa điểm.
Kết quả trả về nếu xóa địa điểm thành công:
{ "status" :"OK"}
2.4.3.3 Thêm một sự kiện
Events Service được thiết kế để cung cấp các thông báo, thông tin về các sự
kiện đang xảy ra.
Cú pháp:
/>sensor=true_or_false&key=apiKey
Java.lang - lớp ngôn ngữ cơ bản của java.
Java.io - quản lý vào ra.
Java.net - quản lý kết nối mạng.
Java.text – tiện ích xử lý văn bản.
Java.math – hỗ trợ tính toán.
Java.xml – các lớp về XML.
̶
̶
̶
̶
Ngoài ra android có các lớp riêng như:
̶
̶
̶
̶
̶
̶
̶
Android.app – truy cập mô hình ứng dụng android.
Android.bluetooth – chức năng Bluetooth của android.
Android.content – quản lý dữ liệu trong android.
Android.net – chứa các lớp Uri dùng để truy cập dữ liệu.
Android.location – các dịch vụ liên quan đến vị trí ( ví dụ như GPS);
Android.view – chứa các thành phần giao diện.
Android.widget – các thành phần giao diện khác.
Chúng ta xem xét lập trình Android với Eclipse vì Eclipse cung cấp phong phú
các thành phần hỗ trợ biên soạn java và môi trường debug mà còn có thể quản lý và
Hình 2.1 – Mô hình HTML frontend
HTML frontend thường là lý tưởng khi một thiết bị dự kiến sẽ luôn có một kết
nối internet và các ứng dụng tương tự phải có sẵn trên một loạt các nền tảng thiết bị
khác nhau. Ngoài ra, HTML frontend cho phép phát triển hiệu quả hơn nhờ các các
công cụ phát triển có sẵn với sự hỗ trợ SOAP.
Ưu điểm:
HTMT frontend được tạo ra một cách nhanh chóng và dễ dàng. Có thể được
triển khai trên mọi web server và một phần của SOAP client framework có sẵn cho
các ứng dụng web. Ngoài ra, HTML frontend là một phương pháp độc lập. Bất kỳ
thiết bị di động với một trình duyệt internet có thể truy cập các ứng dụng web tương
tự.
Nhược điểm:
Không thể đồng bộ hóa với thiết bị ứng dụng như lịch, danh sách liên lạc, bản
đồ, tin nhắn SMS, …
Không may, client cần được online cho các ứng dụng web có sẵn. Khi mất kết
nối internet, ứng dụng không sử dụng được, có thể bị mất dữ liệu mà người dung đang
làm trên submit.
11
2.6.1.2 Direct Web Services Invocation
Tất cả các yêu cầu đến dịch vụ Web được thực hiện từ thiết bị di động. Ngụ ý
rằng điện thoại di động client phải có khả năng wrap và unwrap thông điệp SOAP.
Hình 2.2 – Mô hình Direct Web services invocation
Direct Web services invocation là một cách lý tưởng khi một ứng dụng client
có thể sử dụng mà không cần kết nối internet và cần đến tính linh hoạt trong thay đổi.
Ưu điểm: Thiết bị di động client có thể có bộ nhớ đệm nội bộ và logic đồng
phải triển khai trên cả dịch vụ web server, gateway và điện thoại di động client.
- Ngoài ra, phương pháp tiếp cận gateway không được chuẩn hóa. Vì vậy, nó dễ
dàng trở thành ứng dụng cụ thể và bỏ qua nguyên tắc của dịch vụ Web.
2.6.2 Thư viện KSOAP API trong android
2.6.2.1 Giới thiệu về KSOAP
KSOAP là một bộ API được phát triển để hỗ trợ các thiết bị chạy nền Java
(Java-based device) trong đó có thiết bị Android có thể giao tiếp được với web
services sử dụng phương thức truyền đạt thông điệp bằng các gói SOAP (bao gồm
SOAP v1.1 và SOAP v1.2), hỗ trợ ngôn ngữ WSDL như một phần không thể thiếu
và tách rời. WSDL cung cấp một chuẩn mực chung cho các Web services, khiến cho
việc liên lạc, truyền – nhận thông điệp giữa các thiết bị client và web services diễn ra
nhanh, gọn, tính tương thích cao. Tuy nhiên, phiên bản đầu của kSOAP không hỗ trợ
WSDL, nói một cách khác là tính tương thích của bộ API này không cao, không theo
kịp xu thế chung của công nghệ. Kể từ phiên bản thứ 2 (kSOAP v2), một bản vá
(patch) đã được bổ sung, cho phép kSOAP2 mang đến cho các ứng dụng client (nền
Java, Android) khả năng tương thích cao hơn).
KSOAP2 (hay chính xác là kSOAP v2) sử dụng phương pháp liên lạc trực tiếp,
tức là thông điệp được gói trong một đối tượng SOAP, truyền trực tiếp giữa ứng dụng
client và web services, như đã đề cập ở trên. Phương pháp này được ưa chuộng bởi
sự nhanh lẹ, không cần một trạm trung gian trong quá trình truyền tải thông điệp.
Thông điệp yêu cầu (Requests) được truyền đi bởi chính thiết bị client, và thiết
bị cần thiết phải có một cơ chế đóng gói (wrapping) và mở gói (unwrapping) các đối
tượng thông điệp SOAP (SOAP Messages). KSOAP v2 cung cấp những chức năng
này, và rất dễ tiếp cận và sử dụng chúng.
13
2.6.2.2 Các gói thư viện trong kSOAP v2
org.ksoap2: chứa các lớp cơ bản cần thiết để thao tác với các đối tượng SOAP,
Chức năng thêm phòng
Người dùng sẽ thêm phòng bao gồm các thông tin: tên phòng, số giường, mô tả vào
khách sạn đã chọn trước. Phòng sẽ thuộc 1 trong những loại phòng mà admin đã
cung cấp. Ở đây, loại phòng được dùng chung cho tất cả các khách sạn. Mã phòng
tự động tăng giúp tránh trùng lập mã phòng đã có.
Hình 2.4 – Code thêm phòng
14
Chức năng xóa phòng
Chức năng xóa phòng sẽ xóa phòng ở một khách sạn bất kì đã chọn trước. Thông tin
về phòng sẽ được xóa cùng với phòng.
Hình 2.5 – Code xóa phòng
Chức năng sửa phòng
Cho phép cập nhật thông tin của phòng như loại phòng, tên phòng, số giường của.