Đồ án 2: Phát triển website đặt phòng khách sạn tích hợp hệ khuyến nghị

Tham khảo đồ án phát triển website đặt phòng khách sạn. Tích hợp hệ thống khuyến nghị phòng thông minh, sử dụng microservices và công nghệ hiện đại.

2024

100
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tổng quan về đồ án website đặt phòng khách sạn

Đồ án website đặt phòng khách sạn tích hợp khuyến nghị phòng là một dự án phát triển ứng dụng web hiện đại được thực hiện tại Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM. Dự án này nhằm xây dựng nền tảng nền tảng đặt phòng trực tuyến toàn diện, kết hợp công nghệ hệ khuyến nghị thông minh để cung cấp trải nghiệm người dùng tối ưu. Đề tài được hướng dẫn bởi ThS. Trần Thị Hồng Yến, tập trung vào việc áp dụng các công nghệ backend và frontend hiện đại. Hệ thống được thiết kế theo kiến trúc microservices, cho phép quản lý các dịch vụ độc lập và đảm bảo khả năng mở rộng cao.

1.1. Lý do chọn đề tài và ý nghĩa

Ngành du lịch và khách sạn phát triển nhanh chóng, đòi hỏi các giải pháp công nghệ tiên tiến. Website đặt phòng khách sạn cần hỗ trợ người dùng tìm kiếm và đặt phòng một cách dễ dàng. Tích hợp hệ thống khuyến nghị phòng dựa trên dữ liệu và hành vi người dùng giúp tăng tỷ lệ chuyển đổi và sự hài lòng khách. Đây là cơ hội thực hành kỹ năng phát triển phần mềm trong môi trường thực tế.

1.2. Mục tiêu chính của dự án

Mục tiêu là phát triển ứng dụng web đặt phòng hoàn chỉnh với các tính năng: quản lý thông tin khách sạn, tìm kiếm phòng, đặt phòng, thanh toán và đánh giá phòng. Hệ thống khuyến nghị phòng thông minh sử dụng thuật toán machine learning để gợi ý phòng phù hợp dựa trên sở thích và lịch sử đặt phòng. Ứng dụng hỗ trợ nhiều người dùng, quản trị viên khách sạn và đáp ứng các tiêu chuẩn bảo mật và hiệu năng cao.

II. Công nghệ và kiến trúc hệ thống

Dự án sử dụng kiến trúc microservices với các dịch vụ độc lập như Hotel Service, Booking Service, Review Service và Payment Service. Backend được phát triển bằng Spring Boot, hỗ trợ việc xây dựng các API RESTful hiệu quả. Frontend sử dụng công nghệ web hiện đại để tạo giao diện thân thiện. Hệ thống tích hợp Apache Kafka để xử lý sự kiện thời gian thực, Prometheus và Grafana cho giám sát hiệu năng. Discovery Server (Eureka) quản lý đăng ký dịch vụ, API Gateway định tuyến các yêu cầu. Cơ sở dữ liệu được thiết kế với MongoDBSQL databases để lưu trữ dữ liệu phòng, đặt phòng và đánh giá.

2.1. Stack công nghệ backend và frontend

Backend sử dụng Spring Boot framework, Spring Cloud cho service discoveryload balancing. Frontend được xây dựng với HTML5, CSS3, JavaScript hiện đại hoặc framework JS tiên tiến. Database kết hợp MongoDB cho dữ liệu unstructured và SQL cho dữ liệu có cấu trúc. Zipkin được tích hợp để truy vết phân tán (distributed tracing) giúp tối ưu hiệu năng hệ thống microservices.

2.2. Hệ thống khuyến nghị và thuật toán áp dụng

Hệ thống khuyến nghị phòng sử dụng các thuật toán machine learning như collaborative filteringcontent-based filtering. Hệ thống phân tích hành vi người dùng, lịch sử đặt phòngđánh giá phòng để gợi ý các phòng phù hợp. Dữ liệu được xử lý bởi Apache Kafka để đảm bảo xử lý real-time. Các mô hình machine learning được huấn luyện để không ngừng cải thiện độ chính xác khuyến nghị.

III. Phân tích yêu cầu và thiết kế hệ thống

Phần phân tích yêu cầu xác định rõ yêu cầu chức năng như đăng ký, đăng nhập, tìm kiếm phòng, đặt phòng, thanh toán, đánh giá. Yêu cầu phi chức năng bao gồm hiệu năng cao, bảo mật dữ liệu, khả năng mở rộngđộ tin cậy. Lược đồ Use Case mô tả các tương tác giữa người dùng, quản trị viên khách sạn và hệ thống. Sơ đồ kiến trúc hệ thống thể hiện các dịch vụ microservices, API Gateway, Discovery Servermessage queue. Thiết kế cơ sở dữ liệu sử dụng diagram ERD rõ ràng. Thiết kế giao diện người dùng bao gồm các wireframescreen flow cho các chức năng chính.

3.1. Yêu cầu chức năng và phi chức năng

Yêu cầu chức năng bao gồm: xem danh sách khách sạn, tìm kiếm nâng cao, đặt phòng trực tuyến, thanh toán an toàn, viết đánh giá, nhận khuyến nghị phòng cá nhân hóa. Yêu cầu phi chức năng: thời gian tải trang dưới 2 giây, hỗ trợ 10,000 người dùng đồng thời, mã hóa SSL/TLS, khả năng sao lưu dữ liệu tự động, tương thích với các trình duyệt hiện đại.

3.2. Mô hình hóa và thiết kế kiến trúc

Mô hình Use Case xác định tương tác giữa các actor: người dùng thông thường, quản trị viên khách sạn, hệ thống thanh toán. Sơ đồ kiến trúc hiển thị các microservices độc lập, API Gateway trung tâm, Discovery Server quản lý dịch vụ. Thiết kế database sử dụng normalization để tối ưu. Giao diện được thiết kế theo UX/UI best practices với responsive design.

IV. Cài đặt kiểm thử và kết quả

Quá trình xây dựng website bao gồm thiết lập môi trường phát triển, cấu hình Discovery Server, API Gateway, Zipkin trong Docker. Kiểm thử thủ công được thực hiện để xác minh các tính năng chính. Kiểm thử tự động sử dụng JUnitTestContainers để đảm bảo chất lượng code. Kiểm thử API được thực hiện bằng Postman, kiểm tra các endpoint RESTful. Hệ thống đạt được hiệu năng tối ưu với thời gian phản hồi nhanh. Khuyến nghị phòng hoạt động chính xác, tăng tỷ lệ chuyển đổi người dùng đáng kể. Dự án mở rộng với hỗ trợ mobile app, tích hợp AI chatbot, và phân tích dữ liệu nâng cao.

4.1. Môi trường cài đặt và công cụ phát triển

IDE: IntelliJ IDEA, Ngôn ngữ lập trình: Java, JavaScript. Framework: Spring Boot, Database: MongoDB, PostgreSQL. Containerization: Docker, Docker Compose. Monitoring: Prometheus, Grafana. Distributed Tracing: Zipkin. Message Broker: Apache Kafka. Version Control: Git. Testing: JUnit, Postman. Build Tool: Maven. Dự án hỗ trợ local developmentdeployment dễ dàng.

4.2. Ưu điểm hạn chế và hướng phát triển

Ưu điểm: kiến trúc microservices linh hoạt, hệ thống khuyến nghị cải thiện UX, bảo mật cao, scalability tốt. Hạn chế: độ phức tạp triển khai cao, cần giám sát liên tục. Hướng phát triển: ứng dụng mobile, AI chatbot support, phân tích dữ liệu real-time, tích hợp thanh toán đa nền tảng, hệ thống recommendation sử dụng deep learning nâng cao.

28/12/2025

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

Chương 1 – Giới thiệu đề tài: Trình bày lý do chọn đề tài, mục tiêu, phạm vi, đối tượng sử dụng, phương pháp thực hiện, công nghệ sử dụng và kết quả mong đợi.  Chương 2 – Cơ sở lý thuyết: Trình bày một số vấn đề mà các nghiên cứu trong và ngoài nước đưa ra, từ đó đưa ra giải pháp. Đồng thời trình bày về các kiến thức nền tảng sử dụng để phục vụ cho đồ án.  Chương 3 – Phân tích và thiết kế hệ thống: Đặc tả và mô hình hóa các yêu cầu phần mềm; trình bày các bản thiết kế của đồ án, bao gồm thiết kế hệ thống, thiết kế đối tượng, thiết kế dữ liệu và thiết kế giao diện.

 Chương 4 – Xây dựng Website: Trình bày quy trình cài đặt, kiểm thử và triển khai sản phẩm.  Chương 5 – Kết luận: Kết luận lại những vấn đề đã giải quyết và trình bày ở các phần trước và nêu ra hướng phát triển cho sản phẩm trong tương lai. GIỚI THIỆU ĐỀ TÀI 1. Lý do chọn đề tài Lĩnh vực du lịch và khách sạn luôn là chủ điểm trong việc nâng cao chất lượng ngành dịch vụ và thúc đẩy nền kinh tế trong nước.

Xu hướng du lịch và lưu trú mới của du khách Việt cũng thay đổi2 theo từng thời kì phát triển của xã hội, mang đến sự chuyển biến tích cực trong thị hiếu của con người hiện đại. Đề tài “Phát triển website đặt phòng khách sạn tích hợp khuyến nghị phòng” hứa hẹn sẽ tiếp tục phát triển website đặt phòng khách sạn với những cải thiện mới để phù hợp với nhu cầu của người dùng trong tương lai. Cũng có thể thấy, tiềm năng phát triển của hệ thống cũng là động cơ lớn thúc đẩy lợi ích về việc cạnh tranh và tiếp cận với những nhóm đối tác và khách hàng mới. Việc phát triển và bổ sung các tính năng mới phần nào đem lại sự tương tác đa dụng cho người dùng, mang lợi ích cao về trải nghiệm và thời lượng sử dụng ứng dụng.

Mục tiêu đề tài Xây dựng hệ khuyến nghị phù hợp với ngữ cảnh để đưa ra những sự gợi ý đa dạng và phong phú, giúp người dùng linh hoạt trong sự lựa chọn phòng, khuyến khích đẩy nhanh quá trình đưa ra quyết định đặt phòng. Nhờ đó thúc đẩy doanh thu và cũng giúp tiếp cận với nhiều tệp khách hàng hơn. Trải nghiệm về giao tiếp giữa khách hàng đặt phòng và phía khách sạn sẽ được nâng cao nhờ tính năng trò chuyện trực tuyến, giúp người dùng được hỗ trợ kịp thời các vấn đề hiện hữu trong quá trình sử dụng, thay thế những phương thức liên lạc có đôi phần bất tiện như gửi email hoặc gọi điện trực tiếp. 2 Tường Bách, “Xu hướng du lịch và lưu trú mới của du khách Việt”, Nhịp sống kinh tế Việt Nam & Thế giới, https://vneconomy.vn/xu-huong-du-lich-va-luu-tru-moi-cua-du-khach-viet.

Phạm vi môi trường Triển khai sản phẩm đề tài trên môi trường web. Phạm vi chức năng Nhóm chức năng Tên chức năng Ghi chú  Đăng ký  Đăng nhập Xác thực tài khoản Đã hoàn thành  Đăng xuất  Quên mật khẩu  Tìm kiếm khách sạn  Sắp xếp danh sách Đã hoàn thành khách sạn (nhưng cần cải thiện Duyệt phòng khách  Lọc danh sách khách và bổ sung tiêu chí sạn sạn tìm kiếm, sắp xếp và  Xem thông tin khách lọc cho đúng và phù sạn hợp hơn)  Xem thông tin phòng  Đặt phòng  Hủy đặt phòng Đặt phòng khách sạn Đã hoàn thành  Xem lịch sử đặt phòng  Thanh toán trực Thanh toán Đã hoàn thành tuyến  Đánh giá/Bình luận Đánh giá phòng Đã hoàn thành phòng  Sửa thông tin tài Tùy chỉnh tài khoản khoản Đã hoàn thành  Đổi mật khẩu 4  Thêm phòng Chưa hoàn thành, Quản lý khách sạn (*)  Xóa phòng cần bổ sung  Sửa thông tin phòng  Bổ sung thêm chức năng Trò chuyện trực tuyến và Gợi ý sản phẩm (sử dụng hệ khuyến nghị).  Nhóm chức năng (*) bổ sung các chức năng đã nêu ở bảng và thêm các chức năng sau: Cập nhật tình trạng phòng, Xem tình trạng phòng, Cập nhật tìm trạng thanh toán, Xem Đánh giá/Bình luận. Đối tượng sử dụng  Nhóm người dùng quản trị của Hotelligence.

 Nhóm người dùng đối tác của Hotelligence. (VD: Chủ khách sạn, Quản lý khách sạn, Nhân viên khách sạn, v.)  Nhóm người dùng phổ thông. Phương pháp thực hiện  Tìm hiểu công nghệ xây dựng website gồm: Figma, NextJs, MongoDB, Java, v.  Tìm hiểu các kiến thức về mô hình doanh nghiệp, xây dựng chức năng trò chuyện trực tuyến, hệ khuyến nghị.

 Xác định và bổ sung các yêu cầu mới từ phía khách hàng.  Phân tích, thiết kế, bổ sung và chỉnh sửa các yêu cầu phần mềm.  Cài đặt, kiểm thử, triển khai và hoàn thiện sản phẩm. Công nghệ sử dụng  Công cụ thiết kế UI/UX: Figma.

 Ngôn ngữ sử dụng: Javascript, Java.  Xây dựng website: HTML, CSS.  Thư viện/Framework sử dụng chính: 5 o Front-end: ReactJS. o Back-end: Spring Boot.

 Source Control: GitHub.  Các công cụ hỗ trợ khác (có thể có): Postman, Docker, Kubernetes, v. Kết quả mong đợi  Phát triển ứng dụng phù hợp cho từng giai đoạn yêu cầu phần mềm.  Ứng dụng thuần thục những kiến thức và kĩ năng cần thiết tối thiểu cho một sản phẩm phần mềm chất lượng và hiện đại.

 Hoàn thành các mục tiêu đề ra. Nghiên cứu lý thuyết 2. Hệ khuyến nghị 2. Khái niệm Hệ khuyến nghị (Recommendation System hay Recommender System) là một hệ thống tự động gợi ý các sản phẩm, dịch vụ hoặc nội dung mà người dùng có thể quan tâm, dựa trên dữ liệu từ hành vi người dùng hoặc từ các nguồn thông tin khác.

Hệ khuyến nghị được sử dụng phổ biến trong các nền tảng như thương mại điện tử (Amazon, Lazada), dịch vụ streaming (Netflix, Spotify), và mạng xã hội (Facebook, Instagram). Các loại hệ khuyến nghị Có 3 loại hệ khuyến nghị phổ biến: Hệ khuyến Hệ khuyến nghị Hệ khuyến nghị lai nghị dựa trên dựa trên cộng (Hybrid nội dung tác Recommender (Content- (Collaborative System) based Filtering) Filtering) Phương pháp Gợi ý dựa trên Gợi ý dựa trên Kết hợp giữa 2 hoạt động thuộc tính sản hành vi của phương pháp nội phẩm và sở người dùng hoặc dung và cộng tác thích của sản phẩm tương người dùng tự Dữ liệu yêu Dữ liệu sản Dữ liệu người Kết hợp cả dữ liệu cầu phẩm và người dùng hoặc sản sản phẩm và hành vi dùng phẩm (lượt mua, người dùng đánh giá, tương tác) 7 Ưu điểm - Cá nhân hóa - Sử dụng kinh Kết hợp cả dữ liệu tốt nghiệm từ người sản phẩm và hành vi - Dễ triển khai dùng khác người dùng - Đưa ra gợi ý chính xác dựa trên hành vi chung Nhược điểm - Giới hạn bởi - Vấn đề với - Phức tạp trong thông tin sản người dùng mới triển khai và tính phẩm hoặc sản phẩm toán - Khó mở rộng mới (cold start - Yêu cầu tài khi có nhiều problem) nguyên xử lý lớn loại sản phẩm - Cần lượng dữ khác nhau liệu lớn Khả năng mở Tương đối tốt, Yêu cầu dữ liệu Tốt hơn do kết hợp rộng nhưng phụ lớn và có thể bị nhiều phương pháp thuộc vào hàn chế với quy nhưng cần tối ưu thuộc tính sản mô lớn hóa phẩm Khả năng Khó, do thiếu Khó, do cần Giải quyết tốt hơn giải quyết thông tin từ nhiều dữ liệu từ nhờ kết hợp cả 2 vấn đề “Cold người dùng người dùng hoặc phương pháp Start” mới sản phẩm mới Ví dụ Netflix gợi ý Amazon gợi ý Spotify kết hợp gợi phim dựa trên sản phẩm dựa ý dựa trên bài hát đã thể loại mà trên những nghe và xu hướng người dùng đã người dùng có của người khác xem hành vi mua sắm tương tự 8 2. Công nghệ áp dụng 2. Các công nghệ nền tảng Về cơ bản, website đã giải quyết các vấn đề về mặt kiến trúc và các logic nghiệp vụ lẫn giao diện người dùng.

Có thể kể đến như kiến trúc Microservice, NextJs, MongoDB, gRPC, Java Spring Boot, v. Xem thêm tại đây. Khái niệm Apache Kafka là một nền tảng truyền tải dữ liệu phân tán, được thiết kế để xử lý các luồng dữ liệu lớn với hiệu suất cao và độ tin cậy cao. Kafka được phát triển bởi LinkedIn và sau đó trở thành dự án mã nguồn mở thuộc Quỹ Apache.

Hình CƠ SỞ LÝ THUYẾT.1: Logo Apache Kafka 2. Các tính năng  Khả năng mở rộng cao: Kafka có thể xử lý hàng triệu thông điệp mỗi giây và dễ dàng mở rộng theo chiều ngang bằng cách thêm các broker mới.  Độ bền và tin cậy: Dữ liệu trong Kafka được lưu trữ dưới dạng log và có khả năng chịu lỗi cao thông qua việc sao lưu dữ liệu trên nhiều broker.  Xử lý thời gian thực: Kafka hỗ trợ xử lý và phân phối dữ liệu gần như ngay lập tức, phù hợp cho các ứng dụng yêu cầu phản hồi nhanh.

9  Hỗ trợ nhiều nguồn dữ liệu và hệ thống tiêu thụ: Kafka có thể tích hợp với nhiều hệ thống khác nhau như Hadoop, Spark, Flink, và nhiều hệ thống cơ sở dữ liệu. Ứng dụng trong hệ khuyến nghị  Thu thập và xử lý dữ liệu người dùng: Kafka có thể thu thập các sự kiện từ người dùng như lượt xem sản phẩm, lượt mua, đánh giá, và truyền tải chúng đến hệ thống xử lý dữ liệu để phân tích.  Streaming dữ liệu thời gian thực: Hệ khuyến nghị có thể sử dụng dữ liệu thời gian thực để cập nhật các mô hình đề xuất, đảm bảo rằng các gợi ý luôn phản ánh hành vi hiện tại của người dùng.  Tích hợp với các hệ thống khác: Kafka có thể kết nối với các hệ thống máy học và phân tích để triển khai các pipeline dữ liệu từ thu thập đến đề xuất.

Khái niệm Prometheus và Grafana là hai công cụ mạnh mẽ thường được sử dụng kết hợp để giám sát và trực quan hóa dữ liệu hệ thống, giúp dễ dàng theo dõi và truy vết các tín hiệu hoạt động Prometheus sẽ thu thập và lưu trữ các thông số của hệ thống dưới database của nó, các giá trị nó thu thập được sẽ được lưu trữ dưới Prometheus ở dạng time series. Bạn có thể xem Prometheus như là một time series database. Grafana là phần mềm open-source dùng để phân tích và hiển thị trực quan dữ liệu. Nó giúp việc xử lý hiển thị dữ liệu trên các dashboard với khả năng tùy biến hoàn hảo, hỗ trợ rất lớn cho việc theo dõi phân tích dữ liệu theo thời gian.

Nó lấy nguồn dữ liệu từ nguồn như Prometheus, Graphite hay ElasticSearch. 10 Hình CƠ SỞ LÝ THUYẾT.2: Logo Prometheus và Logo Grafana 2.

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