Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ Travax

Discover โ€ข Book โ€ข Explore

A modern full-stack travel accommodation booking platform built with the MEN Stack.


๐Ÿ“– About

Travax is a full-stack travel accommodation booking platform built using MongoDB Atlas, Express.js, Node.js, EJS, and Bootstrap. It enables users to discover destinations, explore unique accommodations, list their own properties, book stays securely, and receive AI-powered travel recommendationsโ€”all through a clean, responsive, and intuitive interface.

Unlike many booking platforms that separate Hosts and Guests, Travax follows a unified user model. Every registered user can seamlessly switch between being a host and a traveler using the same account. Users can publish their own accommodations while also booking properties listed by other users, creating a flexible and community-driven travel experience.

To provide a real-world booking experience, Travax integrates secure authentication, cloud-based image storage, interactive maps, geocoding services, online payments, booking management, reviews, and AI-powered travel recommendations into a single application.


๐Ÿš€ Features

๐Ÿ‘ฅ Unified User Experience

  • Single account for hosting and booking
  • List your own accommodations
  • Book accommodations listed by other users
  • Manage listings through My Listings
  • Manage reservations through My Bookings

๐Ÿ” Authentication & Authorization

  • Secure user registration
  • User login & logout
  • Passport.js authentication
  • Session-based authentication
  • Protected routes
  • Authorization middleware

๐Ÿก Listing Management

  • Browse available accommodations
  • View listing details
  • Create new listings
  • Edit listings
  • Delete listings
  • Upload listing images
  • Cloudinary image storage
  • Manage personal listings

๐Ÿ” Search & Categories

  • Search listings by title
  • Search listings by destination
  • Dynamic category filtering
  • Instant search results
  • Airbnb-inspired browsing experience

๐Ÿ—บ๏ธ Maps & Geolocation

  • Interactive maps using Leaflet.js
  • OpenStreetMap integration
  • Automatic geocoding using MapTiler API
  • Property location markers
  • Interactive popup information
  • Zoom & navigation controls

๐Ÿ“… Booking System

  • Secure accommodation booking
  • Razorpay payment gateway integration
  • Booking confirmation
  • Booking history
  • Booking cancellation
  • Booking status management

โญ Reviews & Ratings

  • Add reviews
  • Delete reviews
  • Star rating system
  • Review validation

๐Ÿค– AI Travel Recommendations

  • Google Gemini AI integration
  • Personalized destination recommendations
  • Intelligent travel assistance

๐Ÿ›ก๏ธ Security

  • Passport.js authentication
  • Session management
  • Route protection
  • Joi validation
  • Server-side validation
  • Flash messages
  • MongoDB injection protection
  • Centralized error handling

๐Ÿ“ฑ Responsive Design

  • Mobile-friendly
  • Tablet optimized
  • Desktop responsive

๐Ÿ› ๏ธ Tech Stack

Category Technologies
Frontend HTML5, CSS3, Bootstrap 5, JavaScript, EJS
Backend Node.js, Express.js
Database MongoDB Atlas, Mongoose
Authentication Passport.js, Passport Local, Express Session
Cloud Storage Cloudinary, Multer
Maps & Geolocation Leaflet.js, OpenStreetMap, MapTiler SDK, MapTiler Geocoding API
Payments Razorpay
AI Google Gemini API
Deployment Render

๐Ÿ“‚ Project Structure

Travax/
โ”‚
โ”œโ”€โ”€ init/
โ”‚
โ”œโ”€โ”€ models/
โ”‚
โ”œโ”€โ”€ public/
โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ”œโ”€โ”€ js/
โ”‚   โ””โ”€โ”€ video/
โ”‚
โ”œโ”€โ”€ routes/
โ”‚
โ”œโ”€โ”€ utils/
โ”‚
โ”œโ”€โ”€ views/
โ”‚
โ”œโ”€โ”€ .env
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ app.js
โ”œโ”€โ”€ cloudConfig.js
โ”œโ”€โ”€ middleware.js
โ”œโ”€โ”€ schema.js
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ package-lock.json
โ””โ”€โ”€ README.md

โš™๏ธ Installation

Clone the Repository

git clone https://github.com/yourusername/travax.git
cd travax

Install Dependencies

npm install

Configure Environment Variables

Create a .env file in the project root.

ATLASDB_URL=your_mongodb_atlas_connection_string

SECRET=your_session_secret

CLOUD_NAME=your_cloudinary_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_api_secret


RAZORPAY_KEY_ID=your_razorpay_key
RAZORPAY_KEY_SECRET=your_razorpay_secret

GEMINI_API_KEY=your_gemini_api_key

Run the Application

npm start

or

nodemon app.js

๐Ÿ“ธ Screenshots

Add screenshots of: Home Page

Login Page Page 1 Screenshot 2026-07-07 102917 Screenshot 2026-07-07 102932

๐Ÿš€ Project Highlights

  • โœ… Full-Stack MEN Application
  • โœ… Unified Host & Traveler Account
  • โœ… Secure Authentication & Authorization
  • โœ… Property Listing Management
  • โœ… Smart Search & Category Filtering
  • โœ… Interactive Maps with Leaflet.js
  • โœ… OpenStreetMap Integration
  • โœ… MapTiler Geocoding API
  • โœ… Cloudinary Image Uploads
  • โœ… Razorpay Payment Integration
  • โœ… Booking History
  • โœ… Booking Cancellation
  • โœ… Reviews & Ratings
  • โœ… Gemini AI Travel Recommendations
  • โœ… Responsive User Interface
  • โœ… Server-side Validation
  • โœ… Comprehensive Error Handling

๐Ÿ“š Learning Outcomes

Building Travax helped me gain hands-on experience with:

  • Full-Stack Web Development
  • RESTful API Design
  • Authentication & Authorization
  • MongoDB Atlas & Mongoose
  • Session Management
  • Cloudinary Integration
  • Interactive Maps & Geocoding
  • Payment Gateway Integration
  • AI API Integration
  • Responsive UI Design
  • Input Validation
  • Error Handling
  • Full-Stack Deployment

๐Ÿ”ฎ Future Enhancements

  • Google OAuth Authentication
  • Wishlist / Favorites
  • Email Notifications
  • Real-time Availability Calendar
  • Production Razorpay Integration
  • Dark Mode
  • Multi-language Support

๐Ÿค Contributing

Contributions are welcome!

  1. Fork the repository.
  2. Create a new branch.
git checkout -b feature-name
  1. Commit your changes.
git commit -m "Add new feature"
  1. Push your changes.
git push origin feature-name
  1. Open a Pull Request.

โญ Support

If you found this project useful, consider giving it a โญ on GitHub.

Your support motivates me to continue building impactful full-stack applications and contributing to open source.


About

Travax is a full-stack travel accommodation marketplace built with the MEN stack (MongoDB, Express.js, Node.js) and EJS. Users can discover, book, and list accommodations, make secure payments with Razorpay, explore locations using MapTiler, and get AI-powered travel recommendations using a Gemini-powered RAG system.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages