PHẦN MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI Du lịch là một trong những lĩnh vực đang trải qua sự biến đổi mạnh mẽ do sự tiến bộ của công nghệ. Ứng dụng công nghệ thông tin vào lĩnh vực đặt homestay mang lại nhiều cơ hội và lợi ích mới, giúp cải thiện trải nghiệm của người dùng. Hiện nay, việc đặt homestay trực tuyến đã trở thành một xu hướng phổ biến và không thể phủ nhận.
Để đáp ứng nhu cầu ngày càng tăng về du lịch và lưu trú, chúng tôi quyết định tập trung vào đề tài "Phát triển ứng dụng đặt homestay trực tuyến - OYO". Các ưu điểm của việc sử dụng ứng dụng đặt homestay trực tuyến bao gồm tiện lợi và linh hoạt, tiết kiệm thời gian và nỗ lực, lựa chọn rộng rãi, tính năng yêu thích, thông tin chi tiết và đánh giá, cũng như khuyến mãi và ưu đãi hấp dẫn. Tính cấp thiết của đề tài OYO hiển thị qua sự thay đổi trong thói quen của người tiêu dùng, từ việc đặt homestay truyền thống sang việc sử dụng ứng dụng đặt homestay trực tuyến để tận hưởng trải nghiệm du lịch thuận lợi và linh hoạt hơn. Đây là xu hướng đang phát triển mạnh mẽ và đáp ứng một nhu cầu ngày càng cao từ phía người tiêu dùng.
MỤC TIÊU CỦA ĐỀ TÀI Mục tiêu của đề tài “XÂY DỰNG WEBSITE OYO CHUYÊN CUNG CẤP DỊCH VỤ ĐẶT CHỖ NGHỈ TRỰC TUYẾN” bao gồm : - Nhóm sinh viên thực hiện dự án cần có chuyên môn nghiên cứu kết quả, khả năng ứng dụng của Spring Boot và ReactJS và sử dụng các công nghệ, kỹ thuật, thư viện áp dụng vào quy trình phát triển phần mềm để phát triển website. - Xây dựng trang web cung cấp dịch vụ đặt chỗ nghỉ với các tính năng giúp người sử dụng thuận tiện trong việc tìm kiếm homestay phù hợp trong chuyến du lịch. - Ngoài việc hoàn thiện các chức năng của hệ thống, hệ thống còn phải đáp ứng các yêu cầu về tính bảo mật như xác thực, phân quyền giữa phía khách và máy chủ, mã hóa các thông tin nhạy cảm và có khả năng mở rộng cũng như đảm bảo về hiệu suất ứng dụng khi có nguồn dữ liệu lớn. P a g e | 15 - Sản phẩm yêu cầu giao diện thân thiện người dùng, dễ sử dụng, màu sắc, bố cục hài hòa, hợp lý, cung cấp đầy đủ các thông tin cần thiết và đặc biệt cần đảm bảo thông tin của khách hàng.
NỘI DUNG NGHIÊN CỨU 3. Đối tượng nghiên cứu Trong phạm vi của đề tài, chúng tôi sẽ tập trung nghiên cứu các khía cạnh quan trọng liên quan đến trang web đặt homestay OYO. Cụ thể, các điểm chính bao gồm: • Nghiên cứu và đánh giá các hình thức đặt chỗ và các dạng homestay trực tuyến để hiểu rõ nhu cầu và mong muốn của người dùng. • Tìm hiểu và ứng dụng các công nghệ chính như ReactJS, Spring Boot và API để xây dựng một trang web hiệu quả và linh hoạt.
• Nghiên cứu về hệ thống quản lý cơ sở dữ liệu SQL, chẳng hạn như MySQL, để lưu trữ và truy xuất thông tin homestay một cách nhanh chóng và linh hoạt. • Sử dụng Redux Persist và Redux Toolkit để quản lý trạng thái của ứng dụng web. • Nghiên cứu về bảo mật hệ thống, trong đó có việc sử dụng JWT (Json Web Token) để cung cấp mã thông báo an toàn và đảm bảo tính bảo mật của dữ liệu người dùng. Phạm vi nghiên cứu Phạm vi của đề tài được xác định chủ yếu trong lĩnh vực đặt homestay và quản lý homestay trực tuyến.
Cụ thể, chúng tôi sẽ tập trung vào các nhiệm vụ chính như đăng ký, đăng nhập, quản lý thông tin cá nhân, đặt phòng, quản lý đơn đặt phòng, và thống kê dữ liệu để đảm bảo hiệu suất và trải nghiệm người dùng tốt nhất. Phương pháp nghiên cứu Để đảm bảo hiệu suất và chất lượng dịch vụ, hệ thống OYO sẽ tích hợp nhiều tính năng quan trọng đối với người dùng và đối tác: • Giao diện quản lý dành cho đối tác được thiết kế để đơn giản và linh hoạt, giúp họ dễ dàng thêm, sửa và xóa thông tin về homestay và các dịch vụ đi kèm. Nó cung cấp khả năng cập nhật ảnh và mô tả chi tiết để thông tin hiển thị chính xác và thu hút người dùng. P a g e | 16 • Ngoài ra, tính năng quản lý đặt chỗ và xác nhận đặt phòng sẽ giúp đối tác theo dõi và kiểm soát tình trạng đặt chỗ một cách hiệu quả.
Họ có thể xem thông tin chi tiết về các đặt chỗ, thậm chí xác nhận đặt phòng một cách nhanh chóng và thuận tiện. • Để tối ưu hóa trải nghiệm của đối tác, hệ thống sẽ hỗ trợ thanh toán trực tuyến, giúp họ tiếp cận dễ dàng đến các giao dịch tài chính và theo dõi lịch sử thanh toán một cách thuận tiện. Tất cả những tính năng trên sẽ được tích hợp một cách hài hòa và thông minh, giúp đối tác của OYO quản lý homestay của mình một cách linh hoạt và hiệu quả. KẾT QUẢ KÌ VỌNG ĐẠT ĐƯỢC Về kiến thức - Hiểu biết thêm về chuẩn giao thức Restful API, cách tổ chức dự án backend Spring Boot và ReactJS.
- Có thêm kiến thức về JSON Web Token trong việc xác thực và phân quyền, tăng tính bảo mật trong hệ thống. - Rèn luyện khả năng phân tích yêu cầu, nghiệp vụ, thiết kế cơ sở dữ liệu trong các bài toán về đặt phòng, du lịch, tính thẩm mỹ trong việc thiết kế giao diện UX – UI. Về sản phẩm - Người dùng: đăng nhập, đăng kí, đăng nhập qua google, các chức năng như xem đề xuất homestay, xem chi tiết homestay, đặt phòng, xem lịch sử, hủy phòng, đánh giá,… - Chủ nhà: đăng homestay cho thuê, xem danh sách homestay của mình, chỉnh sửa chi tiết homestay, điều chỉnh giá linh hoạt, thống kê theo các năm,… - Quản trị viên: quản lý người dùng, quản lý homestay, quản lý loại hình cho thuê, phê duyệt đăng homestay, thống kê,… 5. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN Đề tài "Xây dựng website OYO chuyên cung cấp dịch vụ đặt chỗ nghỉ trực tuyến" có ý nghĩa khoa học quan trọng trong bối cảnh công nghệ thông tin và truyền thông phát triển mạnh mẽ.
Thứ nhất, nghiên cứu này góp phần vào việc phát triển các thuật toán và giao diện người dùng tối ưu, nhằm cải thiện trải nghiệm người dùng khi thực hiện các P a g e | 17 giao dịch trực tuyến. Thứ hai, đề tài này là cơ hội để áp dụng các công nghệ tiên tiến như trí tuệ nhân tạo và học máy trong việc gợi ý và cá nhân hóa dịch vụ, từ đó nâng cao hiệu quả và độ chính xác của hệ thống. Ngoài ra, việc phân tích dữ liệu lớn thu thập từ người dùng sẽ giúp khám phá ra những xu hướng và hành vi tiêu dùng mới, góp phần bổ sung kiến thức khoa học về thị trường du lịch trực tuyến. Về mặt thực tiễn, việc xây dựng website OYO chuyên cung cấp dịch vụ đặt chỗ nghỉ trực tuyến mang lại nhiều lợi ích thiết thực.
Đầu tiên, hệ thống này giúp người dùng dễ dàng tìm kiếm và đặt phòng nghỉ phù hợp với nhu cầu và ngân sách của mình chỉ với vài cú nhấp chuột, tiết kiệm thời gian và công sức so với phương pháp truyền thống. Thứ hai, các chủ khách sạn và nhà nghỉ có thể quản lý và quảng bá dịch vụ của mình hiệu quả hơn, từ đó tối ưu hóa việc sử dụng phòng và tăng doanh thu. Thêm vào đó, với sự phát triển của du lịch trực tuyến, website OYO còn góp phần thúc đẩy ngành du lịch của địa phương, tạo cơ hội việc làm và nâng cao chất lượng dịch vụ du lịch. Hệ thống đặt chỗ nghỉ trực tuyến còn đóng vai trò quan trọng trong bối cảnh đại dịch COVID-19, khi mà việc tiếp xúc trực tiếp cần được hạn chế, giúp người dùng an tâm và thuận tiện hơn trong việc lập kế hoạch du lịch.
P a g e | 18 PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. CÁC CÔNG NGHỆ SỬ DỤNG Ở FRONTEND 1. ReactJS Giới thiệu - khái niệm React là một thư viện UI phát triển tại Facebook để hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được. React được sử dụng tại Facebook trong production, và www.com được viết hoàn toàn trên React.
Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau. React so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM. Công nghệ DOM ảo giúp tăng hiệu năng cho ứng dụng. Việc chỉ node gốc mới có trạng thái và khi nó thay đổi sẽ tái cấu trúc lại toàn bộ, đồng nghĩa với việc DOM tree cũng sẽ phải thay đổi một phần, điều này sẽ ảnh hưởng đến tốc độ xử lý.
React JS sử dụng Virtual DOM (DOM ảo) để cải thiện vấn đề này. Virtual DOM của ReactJS P a g e | 19 Virtual DOM là một object Javascript, mỗi object chứa đầy đủ thông tin cần thiết để tạo ra một DOM, khi dữ liệu thay đổi nó sẽ tính toán sự thay đổi giữa object và tree thật, điều này sẽ giúp tối ưu hoá việc re-render DOM tree thật. React sử dụng cơ chế one-way data binding – luồng dữ liệu 1 chiều. Dữ liệu được truyền từ parent đến child thông qua props.
Luồng dữ liệu đơn giản giúp chúng ta dễ dàng kiểm soát cũng như sửa lỗi. Với các đặc điểm ở trên, React dùng để xây dựng các ứng dụng lớn mà dữ liệu của chúng thay đổi liên tục theo thời gian. Dữ liệu thay đổi thì hầu hết kèm theo sự thay đổi về giao diện. Ví dụ như Facebook: trên Newsfeed của bạn cùng lúc sẽ có các status khác nhau và mỗi status lại có số like, share, comment liên tục thay đổi.
Khi đó React sẽ rất hữu ích để sử dụng. Đặc điểm quan trọng của ReactJS Những đặc điểm quan trọng cần nắm vững khi lập trình ReactJS bao gồm: ▪ Components (thành phần): React cho phép bạn tạo ra các thành phần độc lập, dễ dàng quản lý và có thể tái sử dụng. Mỗi component có thể chứa mã HTML, CSS và JavaScript riêng biệt. Có 2 loại component chính là Class component và Function component.
▪ Virtual DOM (DOM ảo): React tạo ra một bản sao ảo của DOM và so sánh với trạng thái trong component của DOM thực (real DOM), sau đó cập nhật những phần khác biệt, thay vì phải cập nhật toàn bộ DOM thực mỗi khi có thay đổi.