Mục tiêu và phạm viMục tiêu của đề tài là nghiên cứu mô hình hệ thống giao dịch tự động khách sạn,đặt phòng, thanh toán tự động, định danh khách hàng và tiếp nhận trả phòng tự động.Phạm
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
BÁO CÁO CÁ NHÂN
HỆ THỐNG NHÚNG VÀ THIẾT
KẾ GIAO TIẾP NHÚNG
Đề tài:
MÁY GIAO DỊCH KHÁCH SẠN TỰ ĐỘNG
Giảng viên hướng dẫn: TS Phạm Văn Tiến
Sinh viên thực hiện: NHÓM 20
Nguyễn Thái Bảo 20192709
Trang 2A Giới thiệu chung
Chương này trình bày khái quát về ý tưởng của đề tài, mục tiêu và phạm vi và nghiên cứu các phương pháp đã có để thực hiện đề tài
1 Lý do chọn đề tài
Đề tài "Hệ thống nhúng giao dịch tự động khách sạn" là một đề tài có tiềm năng ứng dụng cao trong thực tiễn Lý do chọn đề tài này là bởi ngành công nghiệp khách sạn ngày càng phát triển mạnh mẽ, đòi hỏi phải đáp ứng nhu cầu của khách hàng ngày càng cao Hiện nay, hầu hết các khách sạn vẫn sử dụng phương thức giao dịch truyền thống như quầy lễ tân Phương thức này không chỉ tốn nhân lực mà còn dễ xảy ra sai sót Với sự phát triển của công nghệ thông tin và trí tuệ nhân tạo, việc ứng dụng hệ thống nhúng giao dịch tự động sẽ giúp tự động hóa quy trình giao dịch, giảm thiểu chi phí nhân công, nâng cao chất lượng dịch vụ, đáp ứng tốt hơn nhu cầu khách hàng Vì vậy, đề tài này có ý nghĩa quan trọng trong việc ứng dụng công nghệ thông tin vào lĩnh vực dịch vụ khách sạn
2 Mục tiêu và phạm vi
Mục tiêu của đề tài là nghiên cứu mô hình hệ thống giao dịch tự động khách sạn, đặt phòng, thanh toán tự động, định danh khách hàng và tiếp nhận trả phòng tự động Phạm vi nhằm nắm được cách sử dụng các công cụ lập trình, mô phỏng cũng như mô hình hoá hệ thống
3 Hệ thống giao dịch tự động khách sạn
Hệ thống giao dịch tự động khách sạn là hệ thống cho phép khách hàng tự thực hiện các thủ tục nhận phòng, trả phòng mà không cần sự hỗ trợ của nhân viên lễ tân Khi khách hàng đến khách sạn, họ có thể quét thẻ căn cước hoặc vé máy bay để xác thực thông tin Sau đó, hệ thống sẽ tự động in vé phòng, thẻ phòng và hướng dẫn khách hàng đến phòng mà không cần sự can thiệp của nhân viên Khi trả phòng, khách hàng chỉ cần quét mã QR trên thẻ phòng để thanh toán hoặc gửi phản hồi về dịch vụ
Trang 3Yêu cầu chức năng:
1 Đặt phòng
2 Trả phòng
3 Xác thực danh tính
4 Thanh toán giao dịch
Cách hoạt động của hệ thống giao dịch tự động khách sạn:
Bước 1: Khách hàng sẽ đăng ký vào phòng thông qua màn hình cảm ứng được lắp đặt tại quầy tiếp tân Hệ thống sẽ yêu cầu khách hàng cung cấp thông tin cá nhân cơ bản như tên, địa chỉ email, số điện thoại và quét thẻ CCCD để tiến hành đăng ký
Bước 2: Sau khi nhập đầy đủ thông tin, hệ thống sẽ tiến hành xác thực thanh toán và cấp phòng cho khách Phương thức thanh toán được hỗ trợ bao gồm thanh toán bằng thẻ tín dụng, thẻ ghi nợ hoặc mã QR (Sử dụng máy quét thẻ cho 2 thẻ, còn QR chỉ cần hiện mã QR trên màn hình.) Bước 3: Sau khi thanh toán thành công, hệ thống sẽ in vé phòng và mở cửa phòng khách sạn tự động Thông tin phòng sẽ được ghi nhớ trong hệ thống
để theo dõi số lượng khách đang lưu trú (Cần có máy in)
Bước 4: Trong quá trình lưu trú, khách hàng có thể yêu cầu các dịch vụ như giặt ủi, dọn phòng, đặt đồ ăn thông qua ứng dụng trên điện thoại hoặc màn hình cảm ứng trong phòng Các yêu cầu này sẽ được hệ thống xử lý và điều phối
Bước 5: Khi trả phòng, khách hàng chỉ cần quét vé phòng lưu trú trước đó trên màn hình cảm ứng để thanh toán Hệ thống sẽ tự động tính toán chi phí
và hoàn tất thủ tục thanh toán, trả phòng
Chức năng trong đề tài của bọn em là đặt phòng, thanh toán tự động nên thiết
kế hệ thống bao gồm:
Một máy tính nhúng được thiết kế đặc biệt để chạy các ứng dụng khách sạn (Kiosk đảm nhiệm vai trò như một lễ tân ảo)
Một màn hình cảm ứng để khách hàng có thể tương tác với hệ thống Một máy in thẻ để in hóa đơn và xuất thẻ từ phòng
Một máy quét mã vạch để quét mã vạch trên thẻ tín dụng hoặc thẻ ghi nợ Khóa cửa thông minh để mở và khóa cửa phòng khách sạn
Trang 4Hệ thống nhận thông tin nhập từ bàn phím màn hình cảm ứng do khách hàng nhập vào, những thông tin này sẽ được lưu vào trong cơ sở dữ liệu thời gian thực (Firebase) nếu bước quét nhận diện ảnh căn cước công dân thành công Sau đó hệ thống sẽ tiến hành xác thực thanh toán Sau khi thanh toán thành công, hệ thống sẽ xuất thẻ từ (chìa khóa phòng) và hướng dẫn quét mã vé phòng để mở cửa phòng cho khách
Yêu cầu phi chức năng:
Độ tin cậy: Hệ thống cần đảm bảo tính tin cậy cao trong quá trình giao dịch Điều này đồng nghĩa với việc hệ thống phải hoạt động ổn định, không gặp lỗi
và đảm bảo tính nhất quán trong các hoạt động giao dịch thanh toán, xác thực danh tính
Xử lí các tình huống phát sinh chuẩn xác
Bảo mật: Hệ thống cần đảm bảo tính bảo mật của thông tin người dùng và các hoạt động xác thực thông tin, giao dịch thanh toán Cần sử dụng các biện pháp bảo mật như mã hóa dữ liệu và xác thực để đảm bảo rằng không bị rò rỉ thông tin cá nhân của khách hàng
Dễ sử dụng: Giao diện người dùng cần được thiết kế sao cho dễ sử dụng và thân thiện với người dùng Cần đảm bảo rằng các thao tác xác thực, giao dịch được thực hiện một cách đơn giản và rõ rang
Trang 5Dễ dàng chỉnh sửa, bảo trì.
Đảm bảo tính thời gian thực
B.Mô hình hóa UML
1 Mô tả chức năng
Khi khách hàng đi đến Kiosk và bấm nút “Đặt Phòng”, màn hình sẽ hiển thị danh sách các phòng trong khách sạn với các trạng thái: Trống và Đang sử dụng Các phòng “đang
sử dụng” sẽ bị disable nút (làm mờ đi) Khi khách hàng bấm vào một nút căn phòng
“trống” bất kỳ, màn hình sẽ hiển thị tiếp một form đăng ký bao gồm Họ tên khách hàng, địa chỉ email, số điện thoại và nút yêu cầu quét thẻ CCCD
Sau khi nhập đầy đủ thông tin, hệ thống sẽ tiến hành xác thực thanh toán và cấp phòng cho khách Phương thức thanh toán được hỗ trợ bao gồm thanh toán bằng thẻ tín dụng, thẻ ghi nợ hoặc mã QR (Sử dụng máy quét thẻ cho 2 thẻ, còn QR chỉ cần hiện mã
QR trên màn hình.)
Sau khi thanh toán thành công, hệ thống sẽ xuất thẻ từ (chìa khóa phòng) cho khách hàng để mở cửa phòng khách sạn và bật điện trong phòng Thông tin phòng sẽ được ghi nhớ trong hệ thống để theo dõi số lượng khách đang lưu trú (Cần có máy in)
Trang 62 Mô hình hoá hệ thống sử dụng UML
UML là viết tắt của Unified Modeling Language (dịch ra tiếng việt là “Ngôn ngữ mô hình hóa thống nhất”) là một ngôn ngữ mô hình gồm các ký hiệu đồ họa mà các phương pháp hướng đối tượng sử dụng để thiết kế các hệ thống thông tin một cách nhanh chóng Tạo ra sự tiện lợi cho những người thiết kế và thực hiện hệ thống thông tin cũng như cho người sử dụng Đưa ra một cái nhìn bao quát và đầy đủ về hệ thống dự định xây dựng Điều này giúp nắm bắt trọn vẹn các yêu cầu của người dùng, phục vụ từ giai đọan phân tích đến việc thiết kế, thẩm định và kiểm tra sản phẩm
Một số sơ đồ UML thường được sử dụng:
- User case diagram (Sơ đồ trường hợp sử dụng):
Mô tả các tương tác giữa người dùng và hệ thống dưới dạng các trường hợp sử dụng
Các đối tượng chính là người dùng và hệ thống Người dùng tương tác với hệ thống thông qua các trường hợp sử dụng
Giúp hiểu rõ hơn về yêu cầu chức năng của hệ thống
- Sequence diagram (Sơ đồ giao tiếp):
Mô tả trình tự trao đổi thông điệp giữa các đối tượng trong một trường hợp sử dụng cụ thể
Các đối tượng được mô tả dưới dạng các đường ngang, thời gian di chuyển dọc theo trục
Giúp hiểu rõ quá trình xử lý và tương tác giữa các đối tượng
- Activity diagram (Sơ đồ hoạt động):
Mô tả toàn bộ quy trình làm việc của hệ thống hoặc một phần của hệ thống Các hoạt động được biểu diễn bằng các hình chữ nhật, trình tự bằng các mũi tên
Giúp phân tích và thiết kế các quy trình nghiệp vụ phức tạp của hệ thống User case Diagram
Sơ đồ usecase khi hệ thống hoạt động ổn định
Trang 7Sơ đồ usecase khi hệ thống lỗi
Trang 9Activity Diagram
Trang 10Sequence Diagram
C Tìm hiểu về FSM
FSM là viết tắt của Finite state machine (máy trạng thái hữu hạn) là một mô hình toàn học biểu diễn trạng thái của hệ, trong đó số trạng thái là hữu hạn Từ một trạng thái, máy có thể chuyển qua một số trạng thái khác dựa trên các sự kiện đầu vào được gọi là input
Máy trạng thái thường được chia làm 2 loại:
Trang 11§ Máy trạng thái Mealy (Mealy machine): Máy trạng thái Mealy là một máy trạng thái mà dữ liệu đầu ra được quyết định bởi trạng thái hiện tại và các
dữ liệu ngõ vào
§ Máy trạng thái Moor (Moor machine): Máy trạng thái Moor là máy trạng thái mà dữ liệu ngõ ra được quyết định duy nhất bởi trạng thái hiện tại
Vẽ sơ đồ FSM
Trạng thái của FSM và hành vi kết quả của máy Mealy:
Khởi động: Trạng thái ban đầu khi hệ thống khởi động.
Chờ yêu cầu khách: Hệ thống đang ở trạng thái nguyên vẹn và chờ đợi yêu cầu từ
khách hàng
Khi chuyển từ trạng thái "Khởi động" đến "Chờ yêu cầu khách", không có đầu ra kết quả (x) được sinh ra
Nhận yêu cầu: Hệ thống đã nhận yêu cầu từ khách hàng và bắt đầu xử lý.
Khi chuyển từ trạng thái "Chờ yêu cầu khách" đến "Nhận yêu cầu", đầu ra (x) có thể được sinh ra để gửi thông báo cho khách hàng rằng yêu cầu của họ đã được nhận
Đặt phòng: Hệ thống thực hiện các giao dịch như đặt phòng, cung cấp thông tin
về khách sạn và các dịch vụ khác
Xác minh thông tin: Hệ thống xác minh thông tin từ khách hàng như thông tin cá
nhân, phòng cần đặt và các yêu cầu khác
Khi chuyển từ trạng thái " Đặt phòng" đến "Xác nhận thông tin", đầu ra (x) có
thể được sinh ra để gửi thông báo cho khách hàng về quá trình xác minh thông tin Khi chuyển từ trạng thái "Xác minh thông tin" đến "Thanh toán", đầu ra (x) có thể được sinh ra để gửi thông báo cho khách hàng về quá trình thanh toán tiền phòng
Thanh toán: Hệ thống yêu cầu thanh toán từ khách hàng và xử lý quá trình thanh
toán
Khi chuyển từ trạng thái "Xử lý giao dịch" đến "Thanh toán", đầu ra (x) có thể được sinh ra để gửi thông báo cho khách hàng về quá trình thanh toán
Check-in: Giao dịch đã hoàn thành thành công.
Khi chuyển từ trạng thái "Thanh toán" đến "Check-in", đầu ra (x) có thể được sinh ra để gửi thông báo cho khách hàng rằng giao dịch đã hoàn thành
Nghỉ: Hệ thống kết thúc quy trình giao dịch và đổi trạng thái phòng từ “Trống”
sang “Nghỉ”:
Trang 12Check-out: Hệ thống nhận yêu cầu muốn check-out của khách
Khi chuyển từ trạng thái "Nghỉ" đến "Check-out", đầu ra (x) có thể được sinh ra
để gửi thông báo cho khách hàng rằng khách hàng đã trả phòng thành công
Dọn phòng: Hệ thống yêu cầu nhân viên dọn phòng vào làm việc
Kết thúc: Hệ thống kết thúc quy trình giao dịch và trở về.
Dựa vào yêu cầu của hệ thống, ta thiết kế sơ đồ trạng thái của hệ thống bằng máy trạng thái Mealy
Bảng trạng thái
Trạng thái Đầu vào Đầu ra
Khởi động (Trống) 0
-Chờ yêu cầu khách 0
-Chờ yêu cầu khách 1 X
Nhận yêu cầu 0
-Nhận yêu cầu 1 X
Xác minh thông tin 0
-Xác minh thông tin 1 X
Trang 13Trạng thái Đầu vào Đầu ra
-Hình 1: Sơ đồ máy trạng thái mealy
Trang 14D Cơ sở dữ liệu FireBase
Firebase là một nền tảng phát triển ứng dụng di động và web của Google Nó cung cấp một loạt các dịch vụ đám mây để xây dựng và triển khai ứng dụng, bao gồm cơ sở
dữ liệu thời gian thực (Firebase Realtime Database)
Firebase Realtime Database là một cơ sở dữ liệu thời gian thực dựa trên JSON Nó cho phép bạn lưu trữ và đồng bộ dữ liệu trong thời gian thực giữa các thiết bị khác nhau Khi dữ liệu thay đổi, các thiết bị khác có thể nhận được thông báo và cập nhật
dữ liệu một cách tự động
Một số đặc điểm và tính năng của Firebase Realtime Database bao gồm: Đồng bộ thời gian thực: Firebase Realtime Database cho phép các thiết bị khác nhau đồng bộ dữ liệu trong thời gian thực Khi một thiết bị thay đổi dữ liệu, các thiết
bị khác có thể nhận được thông báo và cập nhật dữ liệu một cách tự động
Cơ chế lắng nghe sự thay đổi: Bằng cách sử dụng các sự kiện lắng nghe (listeners), bạn có thể theo dõi các sự thay đổi trong cơ sở dữ liệu và phản hồi khi có sự thay đổi xảy ra Điều này cho phép bạn xây dựng ứng dụng có tính tương tác cao và đáp ứng nhanh chóng
Được xây dựng trên cơ sở dữ liệu JSON: Firebase Realtime Database sử dụng cấu trúc dữ liệu JSON linh hoạt để lưu trữ dữ liệu Điều này giúp đơn giản hóa việc truy cập và xử lý dữ liệu trong ứng dụng
Quyền truy cập dữ liệu: Bạn có thể xác định quyền truy cập dữ liệu cho người dùng và nhóm người dùng trong Firebase Realtime Database Điều này giúp đảm bảo
an ninh và kiểm soát quyền truy cập vào dữ liệu của ứng dụng
Hỗ trợ đa nền tảng: Firebase Realtime Database hỗ trợ đa nền tảng, cho phép bạn phát triển ứng dụng cho các nền tảng di động (Android, iOS) và web một cách dễ dàng
Firebase Realtime Database là một trong các dịch vụ quan trọng của Firebase và được sử dụng rộng rãi trong việc xây dựng ứng dụng di động và web có tính năng đồng bộ dữ liệu thời gian thực
Tạo Realtime Database trên Firebase:
Trang 15Hình 2: Giao diện Firebase trên web
Tạo bảng dữ liệu của căn phòng, khách hàng:
Mỗi căn phòng bao gồm các thuộc tính: Số phòng, Tình trạng sử dụng: +) Trường “roomID” (primary key) (number): Để mô tả tên của phòng, dùng
để phân loại phòng trong quá trình khách hàng lựa chọn phòng
+) Trường “state” (boolean): Để mô tả trạng thái của phòng, 0 tức là đang trống, 1 là đang sử dụng
+) Trường “price” (number): Để mô tả giá căn phòng
Trang 16Hình 3: Đối tượng phòng Mỗi khách hàng có các thuộc tính: Mã khách hàng, Tên, Số điện thoại, Địa chỉ email, Số phòng
+) Trường “customerID” (primary key) (int): Để mô tả mã khách hàng +) Trường “name” (string): Để mô tả tên khách hàng
+) Trường “phonenumber” (string): Để mô tả số điện thoại của khách hàng +) Trường “email” (string): Để mô tả địa chỉ hòm thư điện tử của khách hàng +) Trường “isUsing” (Boolean): Để mô tả trạng thái sử dụng phòng của khách hàng, nếu chưa trả phòng thì là 1, đã trả phòng thì là 0
+) Trường “roomID” (foreign key) (number): Để mô tả tên của phòng khách hàng đã chọn
Trang 17Hình 4: Đối tượng khách hàng
E Kiểm thử hệ thống
Xem xét đầy đủ các kịch bản có thể xảy ra của hệ thống giao dịch khách sạn tự động chính là các test case có thể xảy ra trong thực tế hoạt động mà hệ thống có thể gặp phải:
- Kịch bản 1: Hết phòng trống
Không còn phòng trống, hệ thống gửi thông báo hiển thị lên màn hình Kiosk “Hiện tại không còn phòng trống, vui lòng quay lại sau!”
- Kịch bản 2: Ảnh chụp căn cước công dân không hợp lệ
Hệ thống gửi thông báo hiển thị lên màn hình Kiosk “Ảnh chụp căn cước công dân không hợp lệ”
- Kịch bản 3: Người dùng không đủ tiền trong tài khoản ngân hàng
Hệ thống thông báo “Tài khoản không đủ số dư, vui lòng chọn thẻ khác”
- Kịch bản 4: Thẻ ngân hàng quét không hợp lệ, hết hạn sử dụng
Hệ thống thông báo “Thẻ ngân hàng không hợp lệ” và trả về màn hình chính
- Kịch bản 5: Thông tin nhập vào không hợp lệ, ví dụ trong tên khách hàng có số, số điện thoại có chữ…
Hệ thống thông báo “Thông tin quý khách nhập vào không hợp lệ, vui lòng thử lại”
- Kịch bản 6: Khách hàng thanh toán thành công nhưng không nhả thẻ ra
Trang 18Hệ thống sẽ tự động đóng sau một khoảng thời gian và lưu thông tin thanh toán của khách hàng, sẽ có nhân viên lễ tân hỗ trợ và đưa chìa dự phòng cho khách
- Kịch bản 7: Hệ thống đang thực hiện giao dịch thì mất nguồn
Hệ thống sẽ bật bộ phát điện và thực hiện nốt giao dịch
- Kịch bản 8: Hệ thống thực hiện giao dịch toàn bộ quá trình thành công
Hệ thống thông báo “Thực hiện thanh toán thành công, vui lòng lấy thẻ phòng từ khay bên cạnh Chúc quý khách sử dụng dịch vụ vui vẻ!”, trừ tiền trong tải khoản người dùng và xuất thẻ phòng tương ứng với khách hàng chọn ở khe nhả
- Kịch bản 9: Khách hàng trả thẻ vào khay nhưng khay không nhận do trục trặc
Hệ thống gửi thông báo kính “Mong quý khách thông cảm và liên hệ với lễ tân hỗ trợ” hoặc có thể để nguyên đó, hệ thống tự gửi thông báo hỗ trợ đến nhân viên
- Kịch bản 10: Khách hàng trả thẻ vào khay thành công
Hệ thống thông báo “ Cảm ơn quý khách đã sử dụng dịch vụ, rất mong được nhận phản hồi tốt từ quý khách và hẹn gặp lại!”
D Kết luận
Đã thực hiện được khảo sát đề tài cũng như lên ý tưởng bài toán, hướng giải quyết bài toán ban đầu
Thực hiện được mô hình hóa bài toán bằng UML, FSM
Thông qua đề tài em nhận được khá nhiều kiến thức cho bản thân, từ bước khảo sát bài toán đền bước thực hiện triển khai đề tài Do trong khoảng thời gian có hạn cũng như kiến thức, khả năng lập trình còn hạn chế,nên dề tài chúng em làm còn nhiều thiếu sót, có thể cải tiến cà khắc phục sau này Kết hợp với đóng góp của thầy chúng em hoàn thiện đề tài hơn Em xin cảm ơn!