Skip to content

Repository files navigation

🌍 Wonderlust

AI-Powered Full-Stack Hotel Booking Platform

A scalable, production-ready MERN stack application featuring secure authentication, property management, and an integrated AI Smart Travel Assistant.

🌐 Live Demo · 💻 Source Code


✨ Overview

Wonderlust goes beyond a traditional hotel booking site by integrating a Smart AI Travel Assistant. Users can explore, manage hotel listings, and seamlessly generate personalized travel itineraries using Google Gemini AI.

Built with modern web development practices, it showcases a robust backend architecture, RESTful API design, secure authentication, and a responsive frontend. This project is designed to be recruiter-friendly, highlighting clean code organization and real-world application workflows.


🚀 Key Features

🤖 Smart AI Travel Assistant (NEW!)

  • Personalized Itineraries: Generate day-wise trip plans powered by Google Gemini AI.
  • Budget-Aware & Type-Specific: Get recommendations tailored to your budget and travel style.
  • Local Insights: Discover nearby attractions, local food recommendations, and travel tips.
  • Export & Share: Download itineraries as PDFs or copy them to the clipboard effortlessly.
  • Beautiful Responsive UI: Built to give a smooth AI conversation experience.

🏨 Comprehensive Hotel Listings

  • Property Management: Full CRUD operations for listings (Create, Edit, Delete).
  • Interactive Maps: Real-time location integration using Mapbox API.
  • Cloud Storage: Optimized image uploading and management via Cloudinary.
  • Smart Filtering: Destination search and category-based dynamic filtering.

🔐 Security & Authentication

  • Secure Access: Session-based authentication using Passport.js.
  • Data Protection: Secure password hashing and route authorization.
  • Validation: Robust server-side input validation using Joi.

⭐ User Engagement

  • Review System: Users can leave ratings and reviews on properties.
  • Authorization: Only authorized users can edit their listings or delete their reviews.

🛠 Tech Stack

Frontend:
HTML5 CSS3 JavaScript Bootstrap EJS

Backend:
NodeJS Express.js

Database & Cloud:
MongoDB Cloudinary

APIs:
Google Gemini AI Mapbox


💻 Getting Started

Follow these steps to run the project locally.

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB (Local or Atlas)
  • Cloudinary Account
  • Mapbox Account
  • Google Gemini API Key

Installation

  1. Clone the repository:

    git clone https://github.com/Shweta-rani05/wonderlust-mern.git
    cd wonderlust-mern
  2. Install dependencies:

    npm install
  3. Set up Environment Variables: Create a .env file in the root directory and add your credentials:

    ATLASDB_URL=<your-mongodb-connection-string>
    SECRET=<your-session-secret>
    CLOUDINARY_CLOUD_NAME=<your-cloudinary-cloud-name>
    CLOUDINARY_KEY=<your-cloudinary-api-key>
    CLOUDINARY_SECRET=<your-cloudinary-api-secret>
    MAP_TOKEN=<your-mapbox-api-key>
    GEMINI_API_KEY=<your-google-gemini-api-key>
  4. Run the application:

    # Development mode (with nodemon)
    npm run dev
    
    # Or standard execution
    npm start
  5. Access the app: Open http://localhost:8080 in your browser.


📂 Architecture & Design

The application follows the MVC (Model-View-Controller) pattern to ensure clean separation of concerns:

  • Models: Mongoose schemas defining MongoDB collections.
  • Views: EJS templates for dynamic frontend rendering.
  • Controllers: Business logic handling data flow between Models and Views.
  • Routes: RESTful endpoints logically grouped by feature.
  • Middlewares: Reusable logic for authentication, validation, and error handling.
  • Services: Dedicated modules for external API integrations (e.g., Gemini AI).

🔮 Future Enhancements

  • Fully-functional Booking & Payment Gateway (Stripe/Razorpay)
  • Date Availability Calendar
  • User Wishlists
  • Real-time Email & In-App Notifications

👩‍💻 Author

Shweta Rani


⭐ Support

If you found this project helpful or interesting, please consider giving it a ⭐ on GitHub!

About

Wonderlust is a full-stack MERN hotel booking platform that allows users to explore, create, edit, and manage property listings. It includes secure authentication, image uploads with Cloudinary, reviews and ratings, category-based filtering, search functionality, and a responsive user interface

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages