A full-featured, modern, end-to-end-tested, full-stack web application where users can intuitively search, browse, and book hotels and places to stay while traveling. Users can also list their properties for customers to book and earn profit.
π¨ Clean UI and Simple UX
- π§ Built from scratch with modern technology using React and ShadCn components.
- π Features a clean, modern, and compact design using Tailwind CSS.
- β‘οΈ Fast and responsive with smooth transitions and dynamic skeleton loaders between pages.
π§π»βπ» User Capabilities
- Browse through Hotels and check out interested places to stay without needing to be authenticated.
- Sign up to create an account to confirm booking.
- Intuitively search, filter, and sort for different hotels.
- Authenticated users can:
- Confirm the booking and payment of their hotel.
- Add/Update a hotel for other customers.
- Check out their bookings and hotels.
- Contact hotel owners in realtime chat and get more details.
π Authentication and Security
- Secure stateless JWT authentication using secure HTTP-only cookies for safe browsing.
- Secure transactions powered by Stripe.
- Secure websocket connection using http-cookie for realtime chat.
π» Tech Stack and Features
- π₯ Fully written in React, following best coding practices for maintainability and scalability.
- π Utilizes React Hook Form for strict form input validation and error handling.
- π€ End-to-end type safety on the backend and frontend using Typescript for scalability and maintainability.
- π Seamless integration of data-fetching and mutation API services using Tanstack React Query.
- π Paginated displays of hotels on the search results page with previous/next navigation.
- π Efficient cache management and cache invalidation using Tanstack React Query.
- πΌοΈ Media management and storage using multer and Cloudinary services.
- π Realtime chat feature using Socket.io.
- π¦₯ Lazy loading of images for fast and responsive rendering of bulk images using React Lazy Load.
- π Simple global Auth, Error, Success, and Search query state management using React Context.
- π₯ Beautiful handling of success and error messages using Custom Toast Component.
- π API input validation using express-validator.
- π Route protection from unauthenticated requests.
- π¬ Fully end-to-end tested using Playwright tests.
- πͺ΅ Custom logger for monitoring requests in the development terminal.
- 𦦠Schema and queries built with Mongoose and MongoDB.
π Additional Features
- π Highly customizable and extendable, with more features planned for future updates.
- π± Fully responsive design for both mobile and desktop devices.