Tiểu luận đồ án tốt nghiệp: Thiết kế hệ thống tìm kiếm khách sạn và nhà trọ

Tiểu luận đồ án tốt nghiệp đại học về thiết kế hệ thống tìm kiếm khách sạn, nhà trọ, giúp tối ưu hóa trải nghiệm người dùng và quản lý thông tin hiệu quả.

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2018

82
2
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về hệ thống tìm kiếm

Hệ thống tìm kiếm khách sạn và nhà trọ là một giải pháp công nghệ nhằm đáp ứng nhu cầu ngày càng cao của người dùng trong việc tìm kiếm chỗ ở khi đi du lịch. Hệ thống tìm kiếm này không chỉ giúp người dùng dễ dàng tìm kiếm thông tin về khách sạnnhà trọ, mà còn cung cấp các tính năng hữu ích như so sánh giá cả, đánh giá chất lượng dịch vụ. Việc thiết kế hệ thống tìm kiếm này dựa trên các công nghệ hiện đại, cho phép người dùng truy cập từ nhiều thiết bị khác nhau, bao gồm cả ứng dụng di động và nền tảng web. Điều này giúp tối ưu hóa trải nghiệm người dùng, từ đó nâng cao hiệu quả trong việc tìm kiếm chỗ ở phù hợp.

1.1. Tính cấp thiết của đề tài

Nhu cầu du lịch ngày càng tăng cao, đặc biệt là trong giới trẻ, đã tạo ra áp lực lớn trong việc tìm kiếm chỗ ở phù hợp. Nhiều người thường gặp khó khăn trong việc tìm kiếm nhà trọ hoặc khách sạn phù hợp với ngân sách và yêu cầu của mình. Hệ thống tìm kiếm này không chỉ giúp người dùng tiết kiệm thời gian mà còn cung cấp thông tin đầy đủ và chính xác về các lựa chọn chỗ ở. Việc sử dụng công nghệ công nghệ tìm kiếm hiện đại sẽ giúp người dùng dễ dàng tìm kiếm và so sánh các lựa chọn, từ đó đưa ra quyết định tốt nhất cho chuyến đi của mình.

II. Công nghệ và phương pháp thiết kế

Để xây dựng hệ thống tìm kiếm hiệu quả, việc lựa chọn công nghệ phù hợp là rất quan trọng. Hệ thống sử dụng công nghệ tìm kiếm như MySQL để quản lý cơ sở dữ liệu, Spring Boot cho việc phát triển ứng dụng backend, và các API như Google Maps để cung cấp thông tin vị trí. Giao diện người dùng được thiết kế thân thiện, dễ sử dụng, giúp người dùng dễ dàng tìm kiếm và truy cập thông tin. Việc áp dụng các phương pháp như phân tích yêu cầu và thiết kế hệ thống theo mô hình MVC sẽ giúp đảm bảo tính hiệu quả và khả năng mở rộng của hệ thống trong tương lai.

2.1. Phân tích yêu cầu

Phân tích yêu cầu là bước đầu tiên và quan trọng trong quá trình thiết kế hệ thống tìm kiếm. Các yêu cầu chức năng bao gồm khả năng tìm kiếm khách sạnnhà trọ theo nhiều tiêu chí khác nhau như vị trí, giá cả, và đánh giá của người dùng. Ngoài ra, hệ thống cũng cần có khả năng cho phép người dùng đăng tải thông tin về chỗ ở của mình, từ đó tạo ra một cộng đồng chia sẻ thông tin hữu ích. Các yêu cầu phi chức năng như hiệu suất, bảo mật và khả năng mở rộng cũng cần được xem xét kỹ lưỡng để đảm bảo hệ thống hoạt động ổn định và an toàn.

III. Kết quả và ứng dụng thực tiễn

Kết quả của đồ án là một hệ thống tìm kiếm hoàn chỉnh, cho phép người dùng dễ dàng tìm kiếm và so sánh các lựa chọn khách sạnnhà trọ. Hệ thống đã được thử nghiệm và cho thấy hiệu quả trong việc cung cấp thông tin nhanh chóng và chính xác. Người dùng có thể truy cập hệ thống từ bất kỳ thiết bị nào, giúp họ dễ dàng tìm kiếm chỗ ở trong thời gian thực. Giải pháp công nghệ này không chỉ có giá trị trong việc phục vụ nhu cầu của người dùng mà còn mở ra cơ hội cho các nhà đầu tư trong lĩnh vực du lịch và lưu trú.

3.1. Ứng dụng trong thực tiễn

Hệ thống tìm kiếm này có thể được áp dụng rộng rãi trong ngành du lịch, giúp người dùng dễ dàng tìm kiếm và đặt chỗ ở. Ngoài ra, các chủ nhà trọ và khách sạn cũng có thể sử dụng hệ thống để quảng bá dịch vụ của mình, từ đó thu hút nhiều khách hàng hơn. Việc tích hợp các tính năng như đánh giá và phản hồi từ người dùng sẽ giúp nâng cao chất lượng dịch vụ và tạo ra một môi trường cạnh tranh lành mạnh trong ngành lưu trú. Hệ thống cũng có thể được mở rộng để bao gồm các dịch vụ khác như đặt tour du lịch, cho thuê xe, tạo ra một nền tảng toàn diện cho người dùng.

01/02/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề Trong thời đại bùng nổ công nghệ thông tin và cách mạng công nghiệp 4.0, cụ thể là Internet of Things, mọi vật đều được kết nối qua internet. Vai trò của internet là cực kì quan trọng đối với con người. Một trong những lợi ích cơ bản nhất của internet là giúp con người truy cập thông tin một cách dễ dàng nhất. Hiện nay, nhu cầu của người dùng internet là có thể có được những thông tin về một vấn đề cần thiết hoặc kết nối với nhau một cách dễ dàng, thuận tiện thông qua những website hoặc ứng dụng di động.

Từ đó, những nhà phát triển phần mềm ứng dụng cần phải nắm bắt được xu thế và tạo ra những sản phẩm đúng với mong muốn của người dùng. Hiện nay, khi người đi du lịch có thể dễ dàng tìm kiếm địa chỉ khách sạn qua các website và ứng dụng của nhiều nhà cung cấp như traveloka, trivago, booking.com, tripadvisor… Những sản phẩm trên đều là những sản phẩm có chất lượng tốt và được sử dụng rộng rãi, nhưng các sản phẩm đều hướng đến người dùng có nhu cầu ở khách sạn. Đối với sinh viên hay những người có thu nhập trung bình thì việc thuê khách sạn để ở lại vài ngày là một việc khá xa xỉ, nên họ thường có xu hướng tìm thuê các phòng trọ ở nơi mình đặt chân tới. Nhưng không phải ai cũng may mắn tìm được nhà rẻ, đặc biệt với những người du lịch nhiều nơi một lúc, họ thường đi đến những địa điểm nổi tiếng mà chưa đặt phòng hoặc tìm chỗ thuê phòng trọ trước, nên lúc tới nơi khá vất vả trong việc tìm được 1 chỗ ở ưng ý.

Xuất phát từ yêu cầu đó, em và các bạn trong nhóm đã chọn đề tài "Xây dựng dịch vụ tìm nhà trọ" để giúp những người như vậy dễ dàng tìm được chỗ ở ưng ý trong thời gian du lịch. Kịch bản hoạt động Hình 1-1. Kịch bản hoạt động của hệ thống 1.1 Quy mô  Dữ liệu nhà trọ: Dữ liệu nhà trọ được lấy từ trang trivago  Người dùng có thể xem tin cho thuê nhà trọ và đăng tin thuê nhà.  Phạm vi địa lý: Quốc gia Việt Nam.

 Thanh toán: Có thể có.2 Người sử dụng  Người muốn thuê nhà trọ, khách sạn.  Người muốn cho thuê nhà trọ, khách sạn.3 Tìm kiếm  Tìm kiếm theo tên nhà trọ, khách sạn.  Tìm kiếm theo vị trí hiện tại.  Tìm kiếm theo tiêu chí lọc, sắp xếp: theo giá, theo điểm đánh giá … 14 | P a g e 1.

Phân công công việc Đồ án này được hoàn thành bởi một nhóm gồm 2 thành viên, trong đó có em, thành viên còn lại tên là Trần Quang Huy, lớp ĐTTT03 – k58. Sau đây là bảng phân công công việc của nhóm: Person ST Task group Task name In T Charge Lập nhóm, đề xuất ý tưởng và 1 Cả nhóm tổng hợp các đề tài 2 Đánh giá, lựa chọn đề tài Cả nhóm Lập kế 3 hoạch Xác định quy mô dự án Huy Xây dựng và tạo bảng kế 4 Tú hoạch 5 Phân công công việc Tú Phân tích các yêu cầu chức Cả nhóm 6 năng, phi chức năng Xây dựng kịch bản sử dụng 7 Tú (use case) 8 Đặc tả các use case Tú 9 Thiết kế CRC cards Huy Xây dựng biểu đồ lớp (Class 10 diagram) Tú Phân tích Xây dựng biểu đồ hoạt động 11 (Activity diagram) Huy 12 Xây dựng biểu đồ tuần tự Huy (Sequence diagram) Xây dựng mô hình thực thể 13 và liên kết (Entity Relationship Huy Model) Thiết kế sơ đồ khối của hệ 14 Huy thống Thiết kế 15 Thiết kế cơ sở dữ liệu Tú 16 Thiết kế giao diện người dùng Cả nhóm 17 Crawl dữ liệu Tú 18 Xây dựng website backend Tú Triển khai 19 Xây dựng webservice Tú 20 Xây dựng ứng dụng android Huy 15 | P a g e Tóm tắt chương: Chương này đã giới thiệu sơ qua về đề tài, quy mô của đề tài và phân công công việc giữa các thành viên trong nhóm. CƠ SỞ LÝ THUYẾT Sau đây là một số công nghệ, công cụ được sử dụng trong hệ thống. Hệ quản trị cơ sở dữ liệu MySQL Hình 2-1.

Hệ quản trị cơ sở dữ liệu MySQL Đa số các ứng dụng ngày nay đều phải thao tác tới cơ sở dữ liệu – nơi lưu trữ toàn bộ dữ liệu của hệ thống. Có nhiều cách lưu trữ dữ liệu khác nhau, trong đó có cách lưu theo dạng các bảng quan hệ. MySQL là một hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở lớn nhất trên thế giới, sử dụng ngôn ngữ truy vấn có cấu trúc (SQL). Lý do khiến MySQL rất phổ biến là bởi vì: tốc độ truy vấn nhanh, ổn định, dễ sử dụng, tính bảo mật cao, có tính khả chuyển, nhẹ, dễ dàng cài đặt, hoạt động trên nhiều hệ điều hành, được hỗ trợ bởi nhiều ngôn ngữ lập trình và cung cấp một hệ thống lớn các hàm tiện ích rất mạnh [1].

Spring Boot và Spring Security Hình 2-2. Framework Spring boot 17 | P a g e Spring là một framework mã nguồn mở rất phổ biến để xây dựng các ứng dụng doanh nghiệp viết bằng ngôn ngữ Java. Spring Framework là một tập hợp của nhiều dự án con, chẳng hạn như Spring MVC, Spring Boot, Spring Data, Spring Clound, Spring Security… Spring Boot là điểm bắt đầu để xây dựng các ứng dụng dựa trên Spring. Spring boot được thiết kế để giúp lập trình viên có thể xây dựng và chạy ứng dụng nhanh nhất có thể, với việc tối thiểu hóa các cấu hình [2].

Spring Security tập trung vào việc xác thực và ủy quyền trong các ứng dụng viết bằng ngôn ngữ Java. Spring Security giúp bảo vệ ứng dụng khỏi các tấn công như: session fixation, clickjacking, cross site request forgery… [3] 2. GraphQL Được Facebook giới thiệu cùng với Relay tại React.js Conf 2015, GraphQL là một ngôn ngữ truy vấn dữ liệu được tạo ra để miêu tả các phụ thuộc dữ liệu phức tạp, lồng nhau của các ứng dụng hiện đại [4]. GraphQL ra đời để thay thế cho RESTful API bởi sự hiệu quả, mạnh mẽ và linh hoạt hơn.

Trước đây, khi client muốn lấy dữ liệu từ phía server, cần phải thông qua một webservice. REST là một loại web service rất phổ biến, tuy nhiên việc trả dữ liệu về cho client lại quá 18 | P a g e cồng kềnh hoặc quá nhiều end-point, khiến cho việc thiết kế rất phức tạp. GraphQL ra đời để xóa bỏ nhược điểm này. Nếu như trước đây, client chỉ muốn lấy một vài giá trị của một đối tượng nào đó từ phía server, thì REST vẫn trả về tất cả các dữ liệu liên quan đến đối tượng đó cho client, và client chỉ lấy những thứ mình cần, còn lại thì bỏ đi! Như vậy việc truyền tải nhiều thông tin dư thừa như vậy rõ rảng không hiệu quả chút nào.

GraphQL thì khác phục nhược điểm này bằng cách chỉ trả về cho phía client đúng dữ liệu theo định dạng mà client đã gửi tới, giúp việc truyền tải nhanh hơn và không lãng phý. Sau đây là 1 số cú pháp viết câu lệnh truy vấn trong GraphQL: 2. Query Hoạt động truy vấn trong GraphQL có cú pháp như sau [5]: query { object (argument:”arg_val”) { parameter1 parameter2 } } Trong đó object là đối tượng cần lấy dữ liệu, các parameter là các tham số của nó, argument là một đối số, dữ liệu trả về dưới dạng JSON { “data”:{ “object”:{ “parameter1”:”value1” “parameter2”:”value2” } } } 19 | P a g e Truyền biến số vào hoạt động query: Biến số: { “variable”:”var_val” } Câu lệnh query như sau: query OporationName($variable: Variable) { Object(argument: $variable) { parameter } } 2. Mutation Những thay đổi dữ liệu bên server sẽ được thực hiện qua mutation.

Câu lệnh mutation như sau [6]: Câu lệnh khai báo biến số: { “parameter1”: ”val1”, “parameter2”: { “parameter3”:”val2” “parameter4”:”val3” } } Câu lệnh mutation như sau: mutation CreateParameterForObject( $variable1: Variable1!, $variable2: Variable2!){ createNew(parameter1: $variable1, parameter2: $ variable2) { parameter3 parameter4 20 | P a g e } } Kết quả trả về: { “data”: { “createNew”: { “parameter3”:”val2” “parameter4”:”val3” } } } 2. Schema và Type  Type: Type là đối tượng của GraphQL, mô tả đối tượng JSON trả về. Cấu trúc 1 type cơ bản như sau: Type Type { field1: object1! field2: [object2]! } Type là kiểu đối tượng GraphQL, là kiểu với một số trường. Đa số các trường là kiểu đối tượng.

field1, field2 là các trường thuộc kiểu Type. Câu lệnh query trên kiểu Type chỉ có thể xuất hiện các trường này. Object1! Là đối tượng, dấu chấm than là quy định trường không được có giá trị null. [Object2]! Là mảng các đối tượng.

 Kiểu query và mutation Một schema luôn có kiểu query, có hoặc không có kiểu mutation. schema { 21 | P a g e query: Query mutation: Mutation } Với một câu lệnh query cần một kiểu Query tương ứng. Google map API 2. Giới thiệu về google map Google Maps là một ứng dụng bản đồ trực tuyến trên web được cung cấp miễn phí bởi Google.

Nó có thể dùng để nhúng vào các trang web của bên thứ ba thông qua Google Maps API. Nó cung cấp rất nhiều những tiện ích nâng cao giúp người dùng tìm kiếm đường đi,các địa điểm, các địa danh. Google phát triển Google Maps API dành cho 4 mảng chính đó là:  Các ứng dụng trên Android  Các ứng dụng trên IOS  Các ứng dụng web  Các ứng dụng webservice Hàng triệu trang web và ứng dụng sử dụng Google Maps API để cung cấp kinh nghiệm tìm kiếm vị trí cho người dùng của họ.Ngoài ra google map API còn hoạt động tốt trên các thiết bị di động như IOS, Android. Giới thiệu về google map API Người dùng có thêm thêm bản đồ dựa trên dữ liệu Google Maps vào ứng dụng của mình.

API tự động xử lý truy cập đến Google Maps servers, dữ liệu tải,dữ liệu hiển thị, và phản hồi những thay đổi của bản đồ. Người dùng cũng có thể dùng API để thêm điểm đánh dấu, hình vẽ cho một bản đồ cơ bản, thay đổi góc nhìn bản đồ của một khu vực cụ thể. Những đối tượng này cung cấp thêm thông tin cho bản đồ, đồng thời cho phép người dùng tương tác với bản đồ [7]. Giới thiệu về google place API Google place API cho phép truy vấn và tìm các thông tin trên bản đồ theo nhiều thể loại như: tìm nhà hàng, khách sạn, trường học, các địa điểm du lịch… Với google place API ta có thể tìm các địa điểm bằng những từ khóa thân thiện và gần gũi.

Kết quả trả về của quá trình tìm kiếm là 1 chỉ dẫn và giới thiệu ngắn gọn về địa điểm và chi tiết về địa điểm đó [8]. Một số tính năng quan trọng của place API:  Place picker: người dùng có thể chọn địa điểm trên bản đồ.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Thiết kế hệ thống tìm kiếm khách sạn và nhà trọ hiệu quả" cung cấp cái nhìn sâu sắc về cách xây dựng một hệ thống tìm kiếm tối ưu cho ngành du lịch, đặc biệt là trong việc tìm kiếm và đặt phòng khách sạn. Tác giả nhấn mạnh tầm quan trọng của việc tối ưu hóa trải nghiệm người dùng, từ giao diện thân thiện đến khả năng tìm kiếm nhanh chóng và chính xác. Bài viết cũng đề cập đến các công nghệ và phương pháp hiện đại có thể áp dụng để nâng cao hiệu quả của hệ thống, giúp người dùng dễ dàng tìm thấy nơi lưu trú phù hợp với nhu cầu của họ.

Để mở rộng thêm kiến thức về thiết kế giao diện và phát triển ứng dụng, bạn có thể tham khảo bài viết Bài cuối kì môn thiết kế giao diện người dùng ui ux báo cáo giai đoạn 3 ứng dụng ngân hàng bidv, nơi cung cấp thông tin chi tiết về thiết kế giao diện người dùng. Ngoài ra, bài viết Phát triển ứng dụng đặt phòng dịch vụ du lịch homestay trên nền tảng android luận văn thạc sĩ sẽ giúp bạn hiểu rõ hơn về việc phát triển ứng dụng trong lĩnh vực du lịch. Cuối cùng, bạn có thể tìm hiểu thêm về Luận văn thạc sĩ hcmute xây dựng giao diện thân thiện điều khiển ô tô từ xa, một ví dụ khác về thiết kế giao diện thân thiện và hiệu quả. Những tài liệu này sẽ giúp bạn có cái nhìn toàn diện hơn về các khía cạnh liên quan đến thiết kế và phát triển hệ thống trong lĩnh vực công nghệ thông tin.