Skip to content

Travel booking website built with Node.js, Express, MongoDB, and EJS — featuring Cloudinary, Multer, Mapbox, and Passport.js.

Notifications You must be signed in to change notification settings

Dev-Dwuti-Das/Yatra.

Repository files navigation

🏡 Yatra

A full-stack Booking web application that allows users to create, browse, and book property listings. Built with Node.js, Express, MongoDB, and EJS, this project have key features including authentication, map integration, image uploads, and a booking system.


📸 Demo

Image Image

🚀 Live Demo

🌐 Hosted Link: Yatra (30sec)


⚡ Tech Stack

Backend

Frontend

  • EJS – Templating engine
  • Bootstrap 5 – UI framework
  • Vanilla JavaScript

Database & Cloud Services

Other Tools


✨ Features

  • 🔑 User Authentication & Authorization – Register, Login, Logout using Passport.js
  • 🏘️ Listings Management – Create, Read, Update, and Delete property listings
  • 🗺️ Map Integration – Interactive maps powered by Mapbox
  • 🔍 Search Functionality – Search listings by title, location, or keywords
  • 🖼️ Image Uploads – Upload and manage images with Cloudinary & Multer
  • 📅 Booking System – Date conflict validation for reservations
  • Review & Rating – Users can leave reviews and ratings for listings
  • 💻 Responsive UI – Clean and mobile-friendly design using Bootstrap 5
  • ☁️ MongoDB Atlas – Scalable cloud database for production

📂 Project Structure

Yatra/
├── models/ # Schemas (User, Listing, Review, etc.)
├── routes/ # App Routes
├── views/ # EJS templates
├── public/ # Static assets (CSS/JS)
├── utils/ # Middleware & validation helpers
├── app.js # Entry point
└── package.json # Project metadata

⚙️ Installation & Setup

Follow these steps to run the project locally:

  1. Clone the repository

    git clone https://github.com/Dev-Dwuti-Das/Yatra.git
    cd Yatra
  2. Install dependencies

    npm install
  3. Create a .env file in the project root and add the following:

# MongoDB Atlas
MONGO_URI=your_new_mongodb_atlas_connection_string

# Cloudinary
CLOUDINARY_CLOUD_NAME=your_new_cloud_name
CLOUDINARY_KEY=your_new_cloud_api_key
CLOUDINARY_SECRET=your_new_cloud_api_secret

# Mapbox
MAPBOX_TOKEN=your_new_mapbox_token

# Express Session
SESSION_SECRET=your_random_session_secret
  1. Run the development server

    npm start
  2. Open your browser and navigate to:

    http://localhost:3000
    

🛠️ Future Enhancements

  • ✅ Wishlist functionality
  • ✅ AI based suggestion
  • ✅ AI based listing

🤝 Contributing

Contributions, issues, and feature requests are welcome!
Feel free to fork this repo and submit a pull request.


📜 License

This project is licensed under the MIT License – you’re free to use, modify, and distribute it.


💡 Developer

Made with ❤️ by Dev Dwuti Das

About

Travel booking website built with Node.js, Express, MongoDB, and EJS — featuring Cloudinary, Multer, Mapbox, and Passport.js.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published