A modern full-stack travel accommodation booking platform built with the MEN Stack.
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.
- 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
- Secure user registration
- User login & logout
- Passport.js authentication
- Session-based authentication
- Protected routes
- Authorization middleware
- Browse available accommodations
- View listing details
- Create new listings
- Edit listings
- Delete listings
- Upload listing images
- Cloudinary image storage
- Manage personal listings
- Search listings by title
- Search listings by destination
- Dynamic category filtering
- Instant search results
- Airbnb-inspired browsing experience
- Interactive maps using Leaflet.js
- OpenStreetMap integration
- Automatic geocoding using MapTiler API
- Property location markers
- Interactive popup information
- Zoom & navigation controls
- Secure accommodation booking
- Razorpay payment gateway integration
- Booking confirmation
- Booking history
- Booking cancellation
- Booking status management
- Add reviews
- Delete reviews
- Star rating system
- Review validation
- Google Gemini AI integration
- Personalized destination recommendations
- Intelligent travel assistance
- Passport.js authentication
- Session management
- Route protection
- Joi validation
- Server-side validation
- Flash messages
- MongoDB injection protection
- Centralized error handling
- Mobile-friendly
- Tablet optimized
- Desktop responsive
| 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 |
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
git clone https://github.com/yourusername/travax.gitcd travaxnpm installCreate 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_keynpm startor
nodemon app.js
- โ 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
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
- Google OAuth Authentication
- Wishlist / Favorites
- Email Notifications
- Real-time Availability Calendar
- Production Razorpay Integration
- Dark Mode
- Multi-language Support
Contributions are welcome!
- Fork the repository.
- Create a new branch.
git checkout -b feature-name- Commit your changes.
git commit -m "Add new feature"- Push your changes.
git push origin feature-name- Open a Pull Request.
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.
