Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh ngành dịch vụ du lịch, ăn uống và giải trí tại Việt Nam ghi nhận sự phát triển mạnh mẽ, nhu cầu tìm kiếm và đặt trước địa điểm lưu trú cũng như phòng hát giải trí ngày càng gia tăng. Tuy nhiên, thực trạng thị trường thời điểm thực hiện đề tài còn tồn tại nhiều bất cập như tình trạng ép giá du khách, cơ sở hạ tầng thiếu đồng bộ, chất lượng quản lý dịch vụ chưa cao, gây tâm lý e ngại về vấn đề phòng ở cho khách du lịch phương xa.

Bên cạnh đó, phương thức đặt phòng truyền thống bộc lộ nhiều hạn chế đối với người tiêu dùng:

  1. Khách hàng phải đến trực tiếp quầy tiếp tân của khách sạn hoặc cơ sở karaoke để tìm hiểu thông tin, trao đổi giá cả và khảo sát phòng thực tế.
  2. Quá trình di chuyển gây tốn kém thời gian và công sức, đặc biệt khi cơ sở hết phòng hoặc không đáp ứng đúng nhu cầu.
  3. Người đặt phòng bị giới hạn sự lựa chọn do chỉ tiếp cận được từng địa điểm riêng lẻ đã dự định từ trước.

Để giải quyết các vấn đề trên, đề tài "Xây dựng ứng dụng đặt phòng khách sạn và karaoke trên di động" đã được tác giả Nguyễn Thái Sơn thực hiện tại Khoa Công nghệ Thông tin – Điện – Điện tử, Trường Đại học Thủ Dầu Một (dưới sự hướng dẫn của ThS. Nguyễn Hữu Vĩnh, tháng 5/2017). Tên ứng dụng được đặt rút gọn là Katel (ghép từ "Ka" trong Karaoke và "tel" trong Hotel).

Mục tiêu nghiên cứu:

  • Xây dựng một ứng dụng di động hỗ trợ đặt trước phòng khách sạn và phòng karaoke với thông tin trung thực, tin cậy.
  • Cho phép người dùng dễ dàng, nhanh chóng tìm kiếm chỗ lưu trú hoặc địa điểm tổ chức sự kiện, giải trí trực tiếp trên điện thoại thông minh (smartphone).
  • Vận hành theo mô hình kết nối người tiêu dùng với người tiêu dùng (C2C - Consumer-to-Consumer), giúp đa dạng hóa nguồn cung cấp dịch vụ về mặt chất lượng và mức giá.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Quy trình nghiệp vụ đặt phòng dịch vụ lưu trú và giải trí; các kỹ thuật lập trình ứng dụng di động trên nền tảng Android; các dịch vụ đám mây Firebase và giải pháp tích hợp cổng thanh toán trực tuyến PayPal SDK.
  • Phạm vi không gian và hệ thống: Ứng dụng triển khai trên hệ điều hành Android; hỗ trợ hiển thị, tìm kiếm và gợi ý các doanh nghiệp trên bản đồ số trong phạm vi bán kính 15 km tính từ trung tâm và vị trí GPS hiện tại của người dùng.
  • Phạm vi thời gian: Đề tài được hoàn thành và nghiệm thu vào tháng 5 năm 2017.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp giữa nghiên cứu quy trình thực tiễn, phân tích hệ thống tương tự và triển khai các công nghệ phần mềm chuyên dụng:

Khung lý thuyết và công nghệ sử dụng

  • Hệ điều hành Android: Nền tảng mã nguồn mở trên nhân Linux do Google quản lý, phân phối theo giấy phép Apache, sử dụng ngôn ngữ lập trình Java để phát triển các mô-đun ứng dụng di động.
  • Nền tảng Google Firebase: Dịch vụ đám mây đa năng cung cấp hệ sinh thái Backend-as-a-Service:
    • Firebase Realtime Database: Cơ sở dữ liệu đám mây NoSQL hỗ trợ đồng bộ hóa dữ liệu thời gian thực trên tất cả các máy khách và duy trì khả năng truy cập khi ngoại tuyến.
    • Firebase Authentication: Dịch vụ xác thực quyền truy cập và bảo vệ dữ liệu người dùng.
    • Cloud Messaging & Firebase Grow Notifications: Giải pháp truyền nhận tin nhắn và phát thông báo đẩy đa nền tảng (dung lượng tối đa 4 KB mỗi tin nhắn).
    • Firebase Storage: Lưu trữ dữ liệu phương tiện (hình ảnh phòng) do người dùng tải lên.
    • Các dịch vụ bổ trợ: Firebase Analytics, Firebase Develop, Firebase Hosting, Firebase Test Lab, Firebase Crash Reporting, Remote Config, App Indexing, Dynamic Links, Invites và liên kết AdWords.
  • PayPal Android SDK: Bộ công cụ phát triển phần mềm tích hợp Braintree, hỗ trợ xử lý thanh toán và đặt cọc qua thẻ thanh toán quốc tế (Visa, MasterCard) và tài khoản PayPal trên thiết bị Android từ phiên bản 4.x trở lên.
  • Hệ thống định vị toàn cầu GPS (Global Positioning System): Thu thập tọa độ địa lý của người dùng nhằm tính toán khoảng cách và hiển thị danh sách cơ sở kinh doanh theo bán kính.

Phương pháp nghiên cứu

  • Phương pháp nghiên cứu tài liệu: Tổng hợp tài liệu hướng dẫn kỹ thuật về hệ điều hành Android, tài liệu đặc tả API của Google Firebase và PayPal Android SDK.
  • Phương pháp tham khảo chuyên gia: Trao đổi trực tiếp với giảng viên hướng dẫn chuyên môn để lựa chọn kiến trúc phần mềm và định hướng giải pháp lập trình.
  • Phương pháp khảo sát ứng dụng thực tế: Khảo sát và đánh giá hệ thống ứng dụng di động và website Navi Booking (http://navi.vn/) để đối chiếu ưu, nhược điểm.
Tiêu chí so sánh Hệ thống Navi Booking (Khảo sát) Ứng dụng Katel (Đề tài xây dựng)
Mô hình hoạt động Tập trung, khép kín Mô hình C2C (Người dùng cá nhân & Doanh nghiệp)
Tài khoản người dùng Khách hàng không cần đăng ký tài khoản Phân quyền tài khoản cá nhân và tài khoản doanh nghiệp
Nguồn dữ liệu phòng Do chủ ứng dụng/Admin tự cung cấp Do các doanh nghiệp, chủ cơ sở trực tiếp đăng ký và đăng tin
Phương thức đặt phòng Người dùng gửi thông tin cho Admin để Admin liên hệ lại Đặt trực tiếp trên app, kết nối PayPal đặt cọc, thông báo đẩy
Ưu điểm & Nhược điểm Dễ kiểm soát nhưng thông tin nghèo nàn, ít lựa chọn Thông tin phong phú, đa dạng chất lượng và giá cả

Thiết kế và triển khai

Hệ thống được thiết kế theo hướng phân tán, phân định rõ quyền hạn của các nhóm tác tử và tích hợp các cơ chế bảo đảm an toàn dữ liệu:

1. Phân quyền người dùng và kiểm soát rủi ro

Hệ thống thiết lập 3 nhóm quyền chính:

  • Khách hàng (Tài khoản cá nhân): Tìm kiếm phòng theo vị trí GPS hoặc khu vực chọn sẵn; xem thông tin chi tiết; đặt phòng; đặt cọc qua PayPal; liên hệ cơ sở; gửi đánh giá và quản lý lịch sử đặt phòng.
  • Doanh nghiệp: Kế thừa toàn bộ quyền của tài khoản cá nhân, bổ sung quyền khai báo thông tin cơ sở (tên, phân loại khách sạn/karaoke, tọa độ GPS trên bản đồ), đăng thông tin phòng, tiếp nhận yêu cầu đặt phòng, quản lý danh sách phòng và nhận thông báo đẩy.
  • Quản trị viên (Admin): Kiểm duyệt thông tin hồ sơ doanh nghiệp trước khi cho phép hoạt động chính thức trên hệ thống.

Để vận hành mô hình C2C an toàn, tác giả đã thiết kế các quy tắc xử lý rủi ro cụ thể:

Rủi ro phát sinh Cơ chế xử lý kỹ thuật trong Katel
Doanh nghiệp đăng thông tin phòng ảo - Giới hạn tối đa 5 phòng cho mỗi doanh nghiệp.
- Bắt buộc mỗi phòng phải có 2 ảnh: 1 ảnh chọn từ thư viện (ảnh chụp trước/chỉnh sửa) và 1 ảnh chụp trực tiếp từ camera của ứng dụng (không qua chỉnh sửa).
Tài khoản doanh nghiệp ảo Bắt buộc khai báo đầy đủ thông tin pháp lý/tọa độ và phải được tài khoản Admin xét duyệt.
Rủi ro tài khoản khách hàng giả Khi nhập ô Email, ứng dụng buộc lấy từ danh sách tài khoản Google tồn tại thực tế trên thiết bị.
Tranh chấp khi đặt cọc trực tuyến Sau khi xác nhận đặt phòng, ứng dụng hiển thị thông báo khuyến cáo người dùng về điều kiện đặt cọc qua PayPal.

2. Thiết kế luồng dữ liệu (DFD) và quy trình xử lý

Hệ thống xây dựng mô hình quan hệ thực thể (ERD), Use Case và chuỗi sơ đồ dòng chảy dữ liệu (DFD) từ cấp 0 đến các luồng chức năng chi tiết:

  • Quy trình đăng ký tài khoản khách hàng (5 bước):
    1. Ứng dụng kiểm tra tính hợp lệ của dữ liệu nhập vào (Họ tên, Mật khẩu, Email Google từ máy).
    2. Kết nối tới Firebase Authentication để gửi yêu cầu khởi tạo tài khoản; dừng lại báo lỗi nếu dữ liệu sai.
    3. Gửi yêu cầu đăng nhập vào Firebase sau khi tạo tài khoản thành công.
    4. Cập nhật thông tin chi tiết của khách hàng vào Firebase Realtime Database.
    5. Điều hướng màn hình ứng dụng về giao diện chính và hoàn tất tiến trình.
  • Quy trình đăng ký tài khoản doanh nghiệp: Thực hiện xác thực người đại diện tương tự khách hàng cá nhân, đồng thời thu thập thêm tên cơ sở, loại hình dịch vụ và tọa độ định vị vị trí trên bản đồ số, sau đó gửi về CSDL để chờ Admin xét duyệt.
  • Quy trình khôi phục mật khẩu: Tiếp nhận email từ người dùng, gửi yêu cầu về Firebase Authentication để phát sinh đường dẫn (link) đặt lại mật khẩu gửi trực tiếp về hòm thư Gmail của người dùng.

3. Cấu hình tích hợp công nghệ

  • Tích hợp Firebase SDK: Yêu cầu Google Play services từ phiên bản 10.1 trở lên.
    • Cấu hình file build.gradle (root-level): Thêm phụ thuộc classpath 'com.gms:google-services:3.0'.
    • Cấu hình file build.gradle (app-level): Áp dụng plugin apply plugin: 'com.google-services' ở cuối file và khai báo các thư viện Firebase trong khối dependencies.
  • Tích hợp PayPal SDK: Yêu cầu môi trường Android 4.x trở lên, khai báo thư viện compile 'com.sdk:paypal-android-sdk:2.x' trong cấu hình Gradle của ứng dụng.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Chương 1 phân tích bối cảnh phát triển của ngành dịch vụ khách sạn và karaoke tại Việt Nam, nêu bật những hạn chế của phương thức đặt phòng truyền thống. Chương này giới thiệu các công nghệ nền tảng bao gồm hệ điều hành Android (ngôn ngữ Java), hệ sinh thái Google Firebase và bộ công cụ thanh toán PayPal Android SDK. Đồng thời, tác giả xác định rõ mục tiêu xây dựng ứng dụng Katel kết nối khách hàng với cơ sở dịch vụ theo mô hình C2C, phạm vi nghiên cứu và phương pháp tiếp cận đề tài.

Chương 2: Cơ sở lý thuyết

Chương 2 mô tả chi tiết 8 bước trong quy trình đặt phòng truyền thống:

  1. Nhận yêu cầu đặt phòng.
  2. Xác định khả năng đáp ứng của cơ sở.
  3. Thỏa thuận và thuyết phục khách hàng.
  4. Nhập thông tin đặt phòng.
  5. Khách sạn/karaoke xác nhận lại việc đặt phòng.
  6. Lưu trữ thông tin đặt phòng.
  7. Nhận khẳng định lại từ khách hàng.
  8. Tổng hợp tình hình đặt phòng.

Chương này trình bày kết quả khảo sát ứng dụng Navi Booking (http://navi.vn/), phân tích các điều kiện tích hợp Firebase SDK, PayPal SDK vào hệ điều hành Android, và đề xuất các giải pháp kỹ thuật nhằm ngăn chặn phòng ảo, doanh nghiệp ảo và rủi ro thanh toán trực tuyến.

Chương 3: Phân tích thiết kế cơ sở dữ liệu

Chương 3 trình bày các kết quả phân tích hệ thống phục vụ chuyển đổi quy trình đặt phòng lên môi trường di động. Nội dung bao gồm việc xây dựng Sơ đồ cơ sở dữ liệu (Database Schema), Sơ đồ quan hệ thực thể (ERD), Sơ đồ Use Case phân định tương tác hệ thống và chuỗi Sơ đồ dòng chảy dữ liệu (DFD cấp 0 cùng các DFD chi tiết cho đăng ký, đăng nhập, cập nhật thông tin cá nhân/doanh nghiệp, đăng phòng, đặt phòng và liên hệ).

Chương 4: Xây dựng ứng dụng

Chương 4 mô tả toàn bộ giao diện và chức năng đã lập trình hoàn thiện trên thiết bị di động:

  • Giao diện điều hướng và hiển thị: Header ứng dụng, Navigation Drawer, TabLayout phân chia hai tab "HOTEL" và "KARA", danh mục lựa chọn Spinner, bản đồ GPS hiển thị các cơ sở kinh doanh trong bán kính 15 km quanh vị trí người dùng.
  • Mô-đun tài khoản: Giao diện đăng nhập, đăng ký khách hàng (ràng buộc chọn tài khoản Google trên máy), đăng ký doanh nghiệp (chọn loại hình, ghim tọa độ), khôi phục mật khẩu qua liên kết Gmail, xem và chỉnh sửa thông tin cá nhân/doanh nghiệp với hộp thoại chọn nguồn ảnh từ thư viện hoặc camera.
  • Mô-đun đặt phòng và thanh toán: Màn hình đặt phòng cho khách chưa có tài khoản và khách đã đăng nhập; tiến trình kết nối cổng PayPal, màn hình đăng nhập PayPal, lựa chọn phương thức thanh toán và xử lý kết quả giao dịch.
  • Mô-đun tương tác và quản trị: Giao diện liên hệ giữa khách hàng và chủ cơ sở; màn hình dành cho Admin xét duyệt doanh nghiệp; quản lý danh sách phòng đã đặt và phòng đã đăng (tối đa 5 phòng); mô-đun đánh giá doanh nghiệp; hệ thống thông báo đẩy (Notification Content / Action Bar) khi có giao dịch đặt phòng mới; chức năng tìm kiếm cơ sở kinh doanh theo từ khóa (đã kiểm thử với các từ khóa: van trong, kara, hotel, mira).

Kết quả và đóng góp

Kết quả chính

  • Xây dựng hoàn chỉnh ứng dụng di động Katel trên nền tảng Android, kết nối CSDL thời gian thực Firebase Realtime Database.
  • Tích hợp thành công các dịch vụ định vị GPS (lọc bán kính 15 km), xác thực tài khoản qua Google và Firebase Authentication, gửi nhận thông báo đẩy qua Cloud Messaging và thanh toán qua PayPal Android SDK.
  • Thiết lập đầy đủ các luồng xử lý từ đăng ký, đăng tin phòng, duyệt doanh nghiệp, đặt phòng đến phản hồi đánh giá và tìm kiếm theo từ khóa.

Giải pháp và đóng góp của tác giả

  • Về mặt giải pháp: Đưa ra cơ chế xác thực kép đối với hình ảnh phòng (bắt buộc 1 ảnh chụp trực tiếp từ camera) và giới hạn 5 phòng/doanh nghiệp để giải quyết triệt để tình trạng phòng ảo trong mô hình C2C; áp dụng cơ chế xác thực email tự động thông qua tài khoản Google có sẵn trên điện thoại nhằm đảm bảo dữ liệu người dùng thật.
  • Đóng góp so với nghiên cứu trước: Khắc phục nhược điểm thiếu hụt nguồn cung dữ liệu của các ứng dụng truyền thống (như Navi Booking - nơi admin phải tự nhập dữ liệu) bằng cách mở rộng quyền cho phép các doanh nghiệp tự đăng ký và quản lý phòng, đồng thời kết hợp cả hai loại hình dịch vụ lưu trú (Hotel) và giải trí (Karaoke) trên cùng một giao diện di động.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Hệ thống chỉ mới được xây dựng và thử nghiệm trên hệ điều hành Android, chưa hỗ trợ các nền tảng di động khác.
  • Phạm vi quét và gợi ý cơ sở kinh doanh tự động cố định trong vòng bán kính 15 km tính từ trung tâm và vị trí người dùng.
  • Cổng thanh toán trực tuyến sử dụng PayPal SDK, đòi hỏi người dùng phải có tài khoản PayPal hoặc thẻ thanh toán quốc tế (Visa/Mastercard), chưa tích hợp các hình thức thanh toán nội địa.
  • Quy trình giải quyết tranh chấp sau khi đặt cọc phụ thuộc vào thỏa thuận giữa hai bên người dùng mà chưa có cơ chế trọng tài tự động trên ứng dụng.

Hướng phát triển

  • Mở rộng ứng dụng sang các hệ điều hành di động khác (như iOS).
  • Bổ sung và đa dạng hóa các cổng thanh toán điện tử nội địa phù hợp với thói quen tiêu dùng tại Việt Nam.
  • Nâng cấp thuật toán tìm kiếm, cho phép tùy chỉnh bán kính quét linh hoạt và tối ưu hóa hệ thống kiểm duyệt cơ sở kinh doanh.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo phù hợp cho sinh viên, học viên và lập trình viên thuộc ngành Công nghệ thông tin, Kỹ thuật phần mềm hoặc Hệ thống thông tin:

  • Thiết kế hệ thống C2C: Cung cấp phương pháp xây dựng sơ đồ Use Case, DFD nhiều cấp và ERD cho bài toán kết nối đa người dùng (khách hàng - doanh nghiệp - quản trị viên).
  • Tích hợp dịch vụ đám mây: Cung cấp tài liệu tham khảo thực tế về các bước cấu hình file build.gradle để kết nối các dịch vụ Firebase (Authentication, Realtime Database, Cloud Messaging, Storage) trên ứng dụng Android.
  • Tích hợp cổng thanh toán di động: Minh họa quy trình nhúng và xử lý giao dịch qua PayPal Android SDK.
  • Giải pháp kiểm soát dữ liệu: Đóng góp ý tưởng kỹ thuật về việc bắt buộc chụp ảnh camera trực tiếp và liên kết tài khoản Google trên thiết bị để hạn chế gian lận thông tin.

Câu hỏi thường gặp

1. Tên gọi ứng dụng "Katel" có ý nghĩa gì và vận hành theo mô hình nào?
Tên gọi "Katel" được kết hợp từ chữ "Ka" trong "Karaoke" và "tel" trong "Hotel", đại diện cho hai loại hình dịch vụ mà ứng dụng hỗ trợ. Ứng dụng hoạt động theo mô hình thương mại C2C (Consumer-to-Consumer), kết nối trực tiếp khách hàng có nhu cầu với các cơ sở kinh doanh phòng khách sạn và phòng karaoke.

2. Đề tài đưa ra giải pháp kỹ thuật nào để ngăn chặn tình trạng doanh nghiệp đăng thông tin phòng ảo?
Tác giả quy định mỗi phòng đăng tải bắt buộc phải có 2 tấm hình: 1 tấm lấy từ thư viện ảnh (ảnh chụp trước hoặc qua chỉnh sửa) và 1 tấm bắt buộc chụp trực tiếp từ camera của thiết bị (không được chỉnh sửa bất kỳ chi tiết nào). Ngoài ra, mỗi doanh nghiệp bị giới hạn đăng tối đa 5 phòng.

3. Để đăng ký tài khoản khách hàng, ứng dụng kiểm soát tính trung thực của địa chỉ email như thế nào?
Khi người dùng chọn vào ô nhập (EditText) "Email", ứng dụng không cho nhập tự do mà hiển thị thông báo yêu cầu lấy địa chỉ email từ danh sách các tài khoản Google đang tồn tại thực tế trên chính chiếc điện thoại đó.

4. Ứng dụng Katel yêu cầu các điều kiện kỹ thuật gì để tích hợp Firebase và PayPal SDK?
Để sử dụng Firebase, ứng dụng yêu cầu thiết bị chạy Google Play services từ phiên bản 10.1 trở lên và cấu hình classpath 'com.gms:google-services:3.0' trong file build.gradle. Đối với PayPal Android SDK, hệ thống yêu cầu môi trường Android từ phiên bản 4.x trở lên và tích hợp gói thư viện qua Braintree.

5. Phạm vi tìm kiếm và hiển thị doanh nghiệp trên bản đồ của ứng dụng là bao xa?
Hệ thống sử dụng cảm biến định vị GPS để tự động nhận diện vị trí hiện tại của người dùng và hiển thị danh sách các doanh nghiệp lưu trú, giải trí trên bản đồ trong vòng bán kính 15 km tính từ trung tâm và vị trí đó.


Kết luận

Khóa luận tốt nghiệp của tác giả Nguyễn Thái Sơn đã xây dựng thành công ứng dụng di động Katel trên nền tảng Android, kết hợp hiệu quả giữa Google Firebase và PayPal Android SDK để giải quyết bài toán đặt phòng khách sạn và karaoke theo mô hình C2C. Công trình đã chuẩn hóa quy trình phân tích thiết kế hệ thống từ DFD, ERD đến hiện thực hóa giao diện, đồng thời đề xuất các giải pháp kỹ thuật thiết thực nhằm hạn chế thông tin ảo và nâng cao độ tin cậy của dịch vụ. Đây là tài liệu tham khảo có giá trị chuyên môn cao đối với sinh viên ngành Công nghệ thông tin trong việc nghiên cứu và phát triển các ứng dụng thương mại điện tử trên thiết bị di động.