Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh bùng nổ của công nghệ thông tin và làn sóng Cách mạng công nghiệp 4.0, sự phát triển của vạn vật kết nối Internet (IoT) đã nâng cao khả năng tiếp cận thông tin của người dùng thông qua các nền tảng trực tuyến và thiết bị di động thông minh. Cùng với xu thế đó, nhu cầu di chuyển, du lịch và khám phá những vùng đất mới của người dân, đặc biệt là giới trẻ, ngày càng gia tăng. Tuy nhiên, đối với những cá nhân hoặc nhóm du khách không có điều kiện đặt chỗ trước, việc tìm kiếm phòng nghỉ ngay khi vừa đặt chân đến địa điểm du lịch gặp nhiều trở ngại do phải cân nhắc đồng thời nhiều yếu tố như diện tích, địa điểm, mức giá và cảnh quan xung quanh.
Mặc dù thị trường đã có sự xuất hiện của các dịch vụ tìm kiếm phòng khách sạn quy mô lớn như Traveloka, Trivago, Booking.com hay TripAdvisor, các nền tảng này chủ yếu tập trung vào phân khúc khách sạn tiêu chuẩn với chi phí lưu trú tương đối cao. Đối với đối tượng sinh viên hoặc những người có mức thu nhập trung bình, việc chi trả cho khách sạn là một gánh nặng tài chính, khiến họ có xu hướng tìm kiếm các phòng trọ hoặc nhà nghỉ bình dân. Việc tiếp cận thông tin nhà trọ giá rẻ tại các điểm du lịch thường tốn nhiều thời gian và công sức. Xuất phát từ thực tiễn trên, nhóm tác giả thuộc Viện Điện tử - Viễn thông, Trường Đại học Bách khoa Hà Nội đã lựa chọn và thực hiện đồ án tốt nghiệp với đề tài "Thiết kế hệ thống tìm kiếm khách sạn, nhà trọ".
Mục tiêu và nhiệm vụ nghiên cứu của đồ án được xác định cụ thể qua 5 nhiệm vụ chính:
- Thu thập dữ liệu từ các website về khách sạn, nhà trọ và các trang cho thuê nhà nhằm xây dựng cơ sở dữ liệu tập trung, giúp người dùng so sánh thông tin từ nhiều nguồn khác nhau.
- Xây dựng giao diện tương tác trên 2 nền tảng: ứng dụng di động chạy hệ điều hành Android và ứng dụng nền tảng Web, tạo điều kiện cho người dùng truy cập mọi lúc, mọi nơi từ máy tính cá nhân hoặc điện thoại.
- Xây dựng chức năng tìm kiếm khách sạn, nhà trọ dựa trên vị trí hiện tại hoặc tìm kiếm theo tên, tích hợp chức năng chỉ đường phục vụ nhu cầu điều hướng.
- Xây dựng chức năng cho phép người dùng và chủ cơ sở lưu trú đăng tải thông tin cho thuê nhà trọ, nhà nghỉ lên hệ thống để tiếp cận khách hàng.
- Xây dựng chức năng đánh giá, phản hồi, cho phép người sử dụng gửi nhận xét về chất lượng dịch vụ lưu trú đã trải nghiệm.
Đối tượng và phạm vi nghiên cứu của đề tài bao gồm:
- Đối tượng nghiên cứu: Quy trình phân tích, thiết kế và hiện thực hóa một hệ thống phần mềm hỗ trợ tra cứu, đăng tin và đánh giá nhà trọ, khách sạn trên nền tảng Web và thiết bị di động Android.
- Phạm vi không gian: Nguồn dữ liệu lưu trú được thu thập và áp dụng trên phạm vi lãnh thổ Việt Nam.
- Nguồn dữ liệu ban đầu: Trích xuất từ nền tảng Trivago.
- Thời gian và đơn vị thực hiện: Đồ án được bảo vệ vào tháng 6/2018 tại Viện Điện tử - Viễn thông, Trường Đại học Bách khoa Hà Nội, dưới sự hướng dẫn của TS. Nguyễn Tiến Hòa và sự hỗ trợ kỹ thuật từ bộ phận Mobile Solution thuộc Công ty SMVC.
Cơ sở lý thuyết và phương pháp
Đồ án ứng dụng các công nghệ phần mềm hiện đại nhằm giải quyết bài toán lưu trữ, xử lý dịch vụ phía máy chủ (backend), giao tiếp dữ liệu và hiển thị trên ứng dụng khách (client).
Khung công nghệ và nền tảng lý thuyết được sử dụng trong hệ thống gồm:
- Hệ quản trị cơ sở dữ liệu MySQL: Cơ sở dữ liệu quan hệ mã nguồn mở sử dụng ngôn ngữ truy vấn SQL, đảm bảo tốc độ truy vấn, tính ổn định, độ an toàn dữ liệu và khả năng tương thích cao với các ngôn ngữ lập trình.
- Spring Framework (Spring Boot và Spring Security): Nền tảng phát triển ứng dụng Java doanh nghiệp. Spring Boot được sử dụng để tinh gọn cấu hình, cho phép khởi chạy dịch vụ backend nhanh chóng. Spring Security đảm nhận chức năng xác thực (authentication) và ủy quyền (authorization), hỗ trợ ngăn chặn các hình thức tấn công phổ biến như session fixation, clickjacking và cross-site request forgery (CSRF).
- Ngôn ngữ truy vấn dữ liệu GraphQL: Được Facebook giới thiệu vào năm 2015, GraphQL được nhóm tác giả lựa chọn để thay thế kiến trúc RESTful API truyền thống. GraphQL cho phép định nghĩa chính xác cấu trúc dữ liệu cần trích xuất thông qua các câu lệnh Query (truy vấn) và Mutation (thay đổi dữ liệu), loại bỏ tình trạng truyền tải dữ liệu thừa (over-fetching) hoặc thiếu điểm cuối kết nối (under-fetching).
- Hệ thống giao diện lập trình ứng dụng Google Maps APIs: Tích hợp trực tiếp nhằm phục vụ chức năng bản đồ và định vị, bao gồm: Google Maps API (hiển thị bản đồ và điểm đánh dấu), Google Place API (hỗ trợ chức năng Place autocomplete gợi ý tìm kiếm địa điểm), Google Direction API (tính toán tuyến đường, khoảng cách và thời gian di chuyển giữa điểm xuất phát và điểm đến), Google Geocoding API (chuyển đổi qua lại giữa địa chỉ văn bản và tọa độ địa lý kinh độ - vĩ độ).
- Công cụ tự động hóa Selenium WebDriver: Phần mềm giả lập thao tác duyệt web tự động, cho phép định vị các phần tử HTML thông qua XPath (
//tagname[@attribute='value']), ID, Name hoặc ClassName để bóc tách và thu thập dữ liệu (crawl data) phòng trọ từ website nguồn.
Phương pháp nghiên cứu trong đồ án dựa trên phương pháp luận phân tích và thiết kế hệ thống hướng đối tượng bằng ngôn ngữ mô hình hóa UML (Unified Modeling Language). Quy trình thực hiện bao gồm phân rã yêu cầu chức năng - phi chức năng, xây dựng biểu đồ trường hợp sử dụng (Use Case Diagram), thẻ phân nhiệm lớp CRC (Class-Responsibility-Collaborators), biểu đồ lớp (Class Diagram), biểu đồ hoạt động (Activity Diagram), biểu đồ tuần tự (Sequence Diagram) và mô hình thực thể liên kết (ERD).
Quá trình triển khai kỹ thuật được phân công cụ thể giữa hai thành viên nghiên cứu:
| STT |
Nhóm công việc |
Hạng mục nhiệm vụ cụ thể |
Thành viên phụ trách |
| 1 |
Lập kế hoạch |
Lập nhóm, đề xuất ý tưởng, đánh giá và lựa chọn đề tài |
Cả nhóm |
| 2 |
Lập kế hoạch |
Xác định quy mô dự án |
Trần Quang Huy |
| 3 |
Lập kế hoạch |
Xây dựng bảng kế hoạch và phân công công việc |
Tạ Anh Tú |
| 4 |
Phân tích |
Phân tích yêu cầu chức năng và phi chức năng |
Cả nhóm |
| 5 |
Phân tích |
Xây dựng kịch bản sử dụng (use case) và đặc tả use case |
Tạ Anh Tú |
| 6 |
Phân tích |
Thiết kế thẻ CRC |
Trần Quang Huy |
| 7 |
Phân tích |
Xây dựng biểu đồ lớp (Class diagram) |
Tạ Anh Tú |
| 8 |
Phân tích |
Xây dựng biểu đồ hoạt động (Activity diagram) |
Trần Quang Huy |
| 9 |
Phân tích |
Xây dựng biểu đồ tuần tự (Sequence diagram) |
Trần Quang Huy |
| 10 |
Phân tích |
Xây dựng mô hình thực thể liên kết (ERD) |
Trần Quang Huy |
| 11 |
Thiết kế |
Thiết kế sơ đồ khối của hệ thống |
Trần Quang Huy |
| 12 |
Thiết kế |
Thiết kế cơ sở dữ liệu |
Tạ Anh Tú |
| 13 |
Thiết kế |
Thiết kế giao diện người dùng |
Cả nhóm |
| 14 |
Triển khai |
Thu thập dữ liệu (Crawl dữ liệu) bằng Selenium WebDriver |
Tạ Anh Tú |
| 15 |
Triển khai |
Xây dựng website backend và webservice (Spring Boot, GraphQL) |
Tạ Anh Tú |
| 16 |
Triển khai |
Xây dựng ứng dụng di động trên nền tảng Android |
Trần Quang Huy |
Thiết kế và triển khai hệ thống
Hệ thống được tổ chức theo kiến trúc phân tầng kết hợp mô hình MVC (Model - View - Controller) ở phía máy chủ backend nhằm tách biệt các luồng dữ liệu, logic xử lý và giao diện tương tác:
- Tầng dữ liệu (Model): Sử dụng hệ quản trị MySQL để quản lý cấu trúc bảng và mối liên kết thực thể. Các lớp thực thể trung tâm được mô hình hóa gồm:
User: Quản lý thông tin tài khoản người dùng, bao gồm các thuộc tính ID, Username, Password, Email, Full_name, Enabled. Lớp có quan hệ nhiều - nhiều ($m-n$) với lớp Role (ROLE_USER, ROLE_ADMIN), quan hệ một - nhiều ($1-n$) với lớp bài đăng (Post) và lớp nhận xét (Review).
Role: Đại diện cho vai trò phân quyền người dùng, gồm ID và Name.
Hotel: Đại diện cho đối tượng khách sạn hoặc nhà trọ, gồm các thuộc tính ID, Name, Address, Price, Area.
Review: Lưu trữ phản hồi của khách hàng về nơi lưu trú, gồm ID, User_ID, Hotel_ID, Star, Comment, Time. Lớp này có quan hệ liên kết với User và Hotel.
Post: Đại diện cho tin đăng cho thuê phòng của người dùng, gồm ID, User_id, description, time.
- Tầng điều khiển và dịch vụ (Controller & Service): Xây dựng trên nền Java Spring Boot, tích hợp thư viện Spring Security để kiểm soát quyền đăng nhập của người dùng thông thường và quản trị viên. Dịch vụ trao đổi dữ liệu sử dụng GraphQL làm trung gian xử lý các truy vấn từ client gửi lên thay cho RESTful API, định tuyến dữ liệu trực tiếp vào hệ CSDL MySQL.
- Tầng giao diện người dùng (View/Client):
- Nền tảng Web: Cung cấp giao diện truy cập trên trình duyệt máy tính, bao gồm trang chủ tìm kiếm, trang kết quả lọc dữ liệu, giao diện xem chi tiết thông tin và phòng trọ, khu vực đăng bài cho thuê và khung hiển thị bình luận.
- Nền tảng Android: Ứng dụng di động lập trình độc lập, giao tiếp với máy chủ thông qua các webservice API, hỗ trợ định vị GPS theo thời gian thực và tích hợp Google Place API để hỗ trợ người dùng nhập liệu địa chỉ nhanh chóng.
Nội dung chính theo từng chương
Chương 1. Đặt vấn đề
Chương đầu tiên của đồ án nêu rõ bối cảnh phát triển của cuộc Cách mạng công nghiệp 4.0 và tầm quan trọng của kết nối Internet đối với hành vi tra cứu thông tin của con người. Tác giả phân tích nhu cầu du lịch bụi của giới trẻ và chỉ ra sự thiếu hụt các công cụ chuyên biệt để tìm kiếm phòng trọ, nhà nghỉ giá rẻ so với các hệ thống khách sạn cao cấp hiện hành. Đồ án xác lập phạm vi thu thập dữ liệu lưu trú tại Việt Nam thông qua trang web nguồn Trivago. Chương này cũng trình bày kịch bản hoạt động tổng quan, định nghĩa các nhóm đối tượng sử dụng (người thuê, người cho thuê, quản trị viên) và công bố bảng phân công trách nhiệm chi tiết cho hai thành viên trong nhóm thực hiện.
Chương 2. Cơ sở lý thuyết
Nội dung chương 2 tập trung trình bày các nền tảng kỹ thuật và thư viện công nghệ được ứng dụng trong quá trình phát triển hệ thống. Nhóm tác giả thuyết minh lý do lựa chọn cơ sở dữ liệu quan hệ MySQL dựa trên tốc độ và độ an toàn thông tin; phân tích cấu trúc của Spring Framework với trọng tâm là Spring Boot và cơ chế bảo mật xác thực của Spring Security. Tiếp đó, đồ án so sánh cơ chế hoạt động giữa GraphQL và RESTful API, cung cấp cú pháp khai báo mẫu của các câu lệnh Query, Mutation, Schema và Type. Phần cuối chương dành để mô tả chức năng của 4 dịch vụ bản đồ thuộc Google Maps API (Google Map, Google Place, Google Direction, Google Geocoding) cùng kỹ thuật trích xuất thông tin tự động bằng Selenium WebDriver qua việc định vị thẻ HTML bằng XPath.
Chương 3. Phân tích hệ thống
Chương 3 giải quyết khâu phân tích bài toán kỹ thuật thông qua hệ thống mô hình hóa UML. Hệ thống được xác định gồm 3 tác nhân: User (người dùng), Admin (quản trị viên) và User Post (người đăng tin). Các sơ đồ phân rã use case chi tiết được xây dựng cho các chức năng: Đăng ký tài khoản (kèm điều kiện xác nhận email kích hoạt và kiểm tra trùng lặp), Đăng nhập, Tìm kiếm nhà trọ (theo vị trí hiện tại, tên gọi, khu vực, kèm tùy chọn tìm kiếm nâng cao theo giá và dịch vụ homestay/ở ghép), Xem thông tin nhà trọ, Sửa thông tin cá nhân/bài đăng, Chỉ đường, Đánh giá phản hồi, Xóa bình luận, Báo cáo thống kê số liệu truy cập và Phê duyệt tin đăng dành cho quản trị viên. Bên cạnh đó, nhóm sinh viên hoàn thiện phân tích đối tượng bằng kỹ thuật thẻ CRC, thiết lập Biểu đồ lớp (Class Diagram), Biểu đồ hoạt động (Activity Diagram) và Biểu đồ tuần tự (Sequence Diagram) cho các chu trình nghiệp vụ chính.
Chương 4. Thiết kế hệ thống
Chương 4 mô tả quá trình hiện thực hóa các mô hình phân tích thành cấu trúc kỹ thuật cụ thể. Tác giả trình bày sơ đồ khối hệ thống, làm rõ sự tương tác giữa tầng client (Web, Android) và tầng máy chủ backend theo kiến trúc MVC. Phần thiết kế cơ sở dữ liệu chi tiết hóa cấu trúc các bảng quan hệ, kiểu dữ liệu trường và khóa ngoại trong MySQL. Mục thiết kế giao diện minh họa các khung nhìn người dùng chính gồm: màn hình đăng nhập, màn hình đăng ký tài khoản, giao diện trang chủ tìm kiếm khách sạn/nhà trọ, trang chi tiết hình ảnh, vị trí và thông tin phòng, màn hình đăng bài cho thuê nhà, cũng như khu vực gửi đánh giá và xem phản hồi của cộng đồng.
Chương 5. Kết quả và phương hướng phát triển
Chương cuối cùng công bố kết quả thực nghiệm của hệ thống trên hai môi trường triển khai thực tế. Tác giả cung cấp các hình ảnh chụp màn hình giao diện ứng dụng Web (tìm kiếm, hiển thị danh sách phòng, định vị bản đồ, gửi nhận xét) và ứng dụng di động Android (màn hình tìm kiếm, bộ lọc sắp xếp kết quả, hiển thị vị trí trên Google Maps, giao diện đăng tin nhà trọ). Từ các kết quả demo đạt được, nhóm tác giả đánh giá mức độ hoàn thành so với mục tiêu ban đầu và đề xuất các định hướng nâng cấp hệ thống trong giai đoạn tiếp theo.
Kết quả và đóng góp
Đồ án ghi nhận các kết quả cụ thể đã được kiểm chứng qua sản phẩm demo thực tế:
- Xây dựng thành công cơ sở dữ liệu phòng trọ, khách sạn được bóc tách tự động từ website Trivago bằng công cụ Selenium WebDriver.
- Hoàn thiện hệ thống backend với Spring Boot, quản lý dữ liệu trên MySQL và phân quyền người dùng thông qua Spring Security (phân chia hai nhóm vai trò ROLE_USER và ROLE_ADMIN).
- Ứng dụng thành công webservice GraphQL để xử lý các truy vấn dữ liệu nhanh gọn giữa client và máy chủ.
- Tích hợp đồng bộ bộ công cụ Google Maps APIs hỗ trợ các tính năng định vị, tự động điền gợi ý địa chỉ (Place autocomplete), chuyển đổi tọa độ địa lý và chỉ đường đi trực tiếp.
- Triển khai thành công giao diện ứng dụng trên 2 nền tảng độc lập: Web tương thích trên máy tính và ứng dụng native trên hệ điều hành Android.
Về mặt giải pháp, đồ án đã kết hợp nguồn dữ liệu thu thập tự động từ bên ngoài với mô hình dữ liệu do người dùng tự đóng góp (chủ nhà trọ trực tiếp đăng tin cho thuê). Mô hình phân tích hệ thống được nhóm sinh viên xây dựng chi tiết, tuần tự từ use case, thẻ CRC đến các biểu đồ tương tác, tạo nền tảng vững chắc cho quá trình mã hóa.
Đóng góp chính của đề tài là xây dựng được một giải pháp phần mềm hướng tới việc giải quyết bài toán tìm kiếm nơi lưu trú giá bình dân, phục vụ trực tiếp cho đối tượng sinh viên và người có thu nhập trung bình – nhóm người dùng thường bị bỏ quên trên các ứng dụng đặt phòng thương mại quy mô lớn.
Hạn chế và hướng nghiên cứu tiếp
Căn cứ theo nội dung văn bản đồ án, hệ thống vẫn tồn tại một số hạn chế nhất định:
- Nguồn thu thập dữ liệu tự động mới chỉ thử nghiệm bóc tách từ một website duy nhất là Trivago, chưa đa dạng hóa nhiều nguồn cung cấp dữ liệu nhà trọ khác trên Internet.
- Tính năng thanh toán trực tuyến cho các giao dịch thuê phòng mới chỉ dừng lại ở mức dự kiến khả thi ("Thanh toán: Có thể có"), chưa được hiện thực hóa trong sản phẩm demo.
- Các tính năng tìm kiếm nâng cao (như tìm kiếm phòng ở ghép, dịch vụ homestay bản địa) và một số chức năng điều hướng chỉ đường mới chỉ dừng ở mức tính năng tùy chọn (optional).
- Hệ thống chưa tiến hành các thử nghiệm đo lường hiệu năng chịu tải với số lượng người dùng truy cập đồng thời lớn trên môi trường thực tế.
Hướng phát triển của đề tài được nhóm tác giả xác định:
- Mở rộng phạm vi và tần suất thu thập dữ liệu từ nhiều website cho thuê nhà trọ khác nhau tại Việt Nam nhằm làm phong phú cơ sở dữ liệu.
- Hoàn thiện và tích hợp cổng thanh toán trực tuyến để hỗ trợ người thuê đặt cọc hoặc thanh toán phòng trực tiếp qua hệ thống.
- Phát triển đầy đủ các thuật toán tìm kiếm theo nhu cầu ở ghép và lưu trú dạng homestay.
- Tối ưu hóa giao diện người dùng trên ứng dụng Android và nâng cao hiệu năng truy vấn của webservice GraphQL.
Giá trị tham khảo
Đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho:
- Sinh viên ngành Kỹ thuật phần mềm, Công nghệ thông tin và Điện tử - Viễn thông: Là tài liệu tham khảo hoàn chỉnh về quy trình phân tích và thiết kế hệ thống hướng đối tượng theo chuẩn UML, từ việc lập use case, phân rã chức năng, thiết kế thẻ CRC cho đến xây dựng biểu đồ lớp và biểu đồ tuần tự.
- Lập trình viên phát triển ứng dụng di động và web: Phần nội dung về việc tích hợp Spring Boot với GraphQL và kết nối các dịch vụ Google Maps API (Autocomplete, Direction, Geocoding) là tài liệu tham khảo có tính ứng dụng cao khi xây dựng các dịch vụ dựa trên vị trí (Location-Based Services - LBS).
- Người nghiên cứu kỹ thuật bóc tách dữ liệu: Các chỉ dẫn về việc sử dụng Selenium WebDriver kết hợp XPath để thu thập thông tin tự động từ website thương mại cung cấp phương pháp luận rõ ràng cho các bài toán xử lý dữ liệu web tương tự.
Câu hỏi thường gặp
1. Đề tài này giải quyết khoảng trống nào so với các dịch vụ đặt phòng trực tuyến như Traveloka hay Booking.com?
Theo phân tích của nhóm tác giả trong Chương 1, các ứng dụng thương mại hiện hành như Traveloka, Trivago hay Booking.com chủ yếu hướng đến phân khúc khách sạn với mức chi phí tương đối cao. Đề tài tập trung vào đối tượng sinh viên và người có thu nhập trung bình, hỗ trợ tìm kiếm các loại hình lưu trú giá rẻ như phòng trọ, nhà nghỉ bình dân, đồng thời hỗ trợ các chủ nhà trọ nhỏ lẻ quảng bá thông tin cho thuê.
2. Lý do nhóm tác giả lựa chọn GraphQL để thay thế RESTful API là gì?
GraphQL khắc phục được nhược điểm của RESTful API vốn thường làm việc qua quá nhiều endpoint và hay trả về lượng dữ liệu dư thừa không cần thiết (over-fetching). Với GraphQL, phía client có thể chỉ định chính xác các trường dữ liệu cần lấy thông qua câu lệnh Query, giúp tối ưu hóa dung lượng truyền tải qua mạng và giảm tải cho thiết bị client.
3. Dữ liệu phòng trọ ban đầu của hệ thống được xây dựng bằng cách thức nào?
Dữ liệu ban đầu được nhóm tác giả thu thập tự động từ trang web Trivago bằng công cụ Selenium WebDriver. Công cụ này giả lập trình duyệt để tương tác tự động với trang web và sử dụng cấu trúc XPath (dạng //tagname[@attribute='value']) để bóc tách thông tin các thuộc tính HTML và lưu trữ vào cơ sở dữ liệu MySQL của hệ thống.
4. Hệ thống phân chia quyền hạn của người dùng như thế nào?
Dưới sự hỗ trợ của Spring Security, hệ thống định nghĩa hai vai trò người dùng chính trong lớp Role: ROLE_USER và ROLE_ADMIN. Người dùng thông thường (ROLE_USER) sau khi đăng ký và xác thực tài khoản có quyền đăng tin cho thuê phòng, viết nhận xét và chỉnh sửa thông tin cá nhân. Quản trị viên (ROLE_ADMIN) có thêm quyền xem báo cáo thống kê lượt truy cập, theo dõi các bài đăng spam và thực hiện phê duyệt tin cho thuê trước khi hiển thị công khai.
5. Biểu đồ lớp của hệ thống mô tả mối quan hệ giữa Review và Hotel như thế nào?
Theo đặc tả trong mục Biểu đồ lớp (Class Diagram) của đồ án, mỗi một nhận xét (Review) chỉ liên quan đến một khách sạn/nhà trọ cụ thể, do đó giữa lớp Review và lớp Hotel được nhóm tác giả thiết lập quan hệ một - một ($1-1$), trong khi mối quan hệ giữa User và Review là quan hệ một - nhiều ($1-n$).
Kết luận
Đồ án tốt nghiệp "Thiết kế hệ thống tìm kiếm khách sạn, nhà trọ" của sinh viên Trần Quang Huy và Tạ Anh Tú đã giải quyết trọn vẹn quy trình xây dựng một hệ sinh thái phần mềm phục vụ tìm kiếm nơi lưu trú giá bình dân trên nền tảng Web và thiết bị di động Android. Đề tài vận dụng phương pháp luận phân tích hệ thống hướng đối tượng UML kết hợp công nghệ hiện đại gồm Spring Boot, GraphQL, MySQL, Google Maps APIs và Selenium WebDriver. Dù còn một số hạn chế về phạm vi nguồn dữ liệu và tính năng thanh toán trực tuyến, sản phẩm demo hoàn chỉnh của đồ án đã đáp ứng tốt các mục tiêu kỹ thuật đề ra và là tài liệu tham khảo học thuật có giá trị cho sinh viên khối ngành kỹ thuật công nghệ.