Premium Full-Stack Travel Marketplace & Lodging Platform
Discover unique stays โข Explore destinations โข Host unforgettable experiences
ย
ย
Experience the complete Wonderland platform, including secure authentication, property management, interactive maps, image uploads, reviews, favorites, and responsive design.
https://wonderland-8sm7.onrender.com
| Username | Password |
|---|---|
| admin | admin123 |
Note: Use this account to explore landlord features such as creating, editing, and deleting property listings.
Wonderland is a production-inspired full-stack travel marketplace that allows users to discover unique accommodations, create and manage listings, upload property images, explore locations using interactive maps, save favorite destinations, and share reviews through an elegant and responsive interface.
Built using the MVC architecture, the application integrates MongoDB Atlas, Cloudinary, and Mapbox to simulate the workflow of a modern property marketplace while emphasizing clean code organization, secure authentication, RESTful design, and production-ready deployment practices.
- ๐ Secure authentication using Passport.js
- ๐ค Role-Based Authorization (RBAC)
- ๐ Complete CRUD operations for property listings
- ๐บ๏ธ Interactive Mapbox maps with location markers
- โ๏ธ Cloudinary image upload and management
- โค๏ธ AJAX-powered favorites system
- โญ Reviews and rating functionality
- ๐ Dynamic property search
- ๐ฑ Fully responsive Bootstrap interface
- ๐๏ธ MongoDB Atlas cloud database
- ๐ Deployed on Render
- ๐ก๏ธ Secure environment variable management
- ๐ About
- โญ Project Highlights
- ๐ธ Project Showcase
- ๐ฅ Demo GIF
- ๐ฌ Demo Video
- โจ Features
- ๐ ๏ธ Technology Stack
- ๐๏ธ Architecture
- ๐ Project Structure
- โ๏ธ Installation
- ๐ Environment Variables
- ๐ Deployment
- ๐ฎ Future Improvements
- ๐จโ๐ป Author
A glimpse of the key workflows and user experience offered by Wonderland.
A quick walkthrough of Wonderland, showcasing the complete user journeyโfrom exploring properties to managing listings and interacting with key platform features.
Watch the complete walkthrough of Wonderland, covering the application's architecture, user workflow, authentication, listing management, favorites, reviews, interactive maps, and responsive design.
- Browse premium travel accommodations across multiple categories.
- Search properties by title or location.
- View detailed property pages with amenities and pricing.
- Explore destinations through interactive Mapbox maps.
- Bookmark favorite listings with an AJAX-powered favorites system.
- Leave ratings and reviews for listed properties.
- Enjoy a responsive experience across desktop and mobile devices.
- Create new property listings.
- Upload listing images directly to Cloudinary.
- Edit property details, pricing, and categories.
- Delete listings with automatic media cleanup.
- Automatic location geocoding using Mapbox.
- Passport.js authentication.
- Role-Based Authorization (RBAC).
- Session management.
- Protected routes.
- Secure environment variables.
- Input validation and centralized error handling.
| Category | Technologies |
|---|---|
| Frontend | EJS, HTML5, CSS3, Bootstrap 5, JavaScript (ES6) |
| Backend | Node.js, Express.js |
| Database | MongoDB Atlas, Mongoose |
| Authentication | Passport.js, Express Session |
| Cloud Storage | Cloudinary |
| Maps & Geocoding | Mapbox GL JS |
| Deployment | Render |
Wonderland follows the MVC (Model-View-Controller) architecture to maintain a clean and modular codebase.
Client Browser
โ
Express.js Server
โโโโโโโโโโโโโโผโโโโโโโโโโโโโ
โ โ โ
MongoDB Atlas Cloudinary Mapbox API
- MVC Project Structure
- RESTful Routing
- Modular Controllers
- Secure Authentication
- Cloud Image Storage
- Interactive Maps
Wonderland/
โ
โโโ controllers/
โ โโโ listings.js
โ โโโ reviews.js
โ โโโ users.js
โ
โโโ init/
โ
โโโ models/
โ
โโโ public/
โ โโโ css/
โ โโโ js/
โ โโโ images/
โ
โโโ routes/
โ
โโโ utility/
โ
โโโ views/
โ โโโ includes/
โ โโโ layouts/
โ โโโ listings/
โ โโโ reviews/
โ โโโ users/
โ
โโโ app.js
โโโ middleware.js
โโโ cloudConfig.js
โโโ schema.js
โโโ package.json
โโโ README.md
| Method | Endpoint | Description |
|---|---|---|
| GET | /listings |
Fetch all listings |
| GET | /listings/new |
New listing page |
| POST | /listings |
Create listing |
| GET | /listings/:id |
View listing |
| GET | /listings/:id/edit |
Edit listing page |
| PUT | /listings/:id |
Update listing |
| DELETE | /listings/:id |
Delete listing |
| Method | Endpoint | Description |
|---|---|---|
| POST | /listings/:id/reviews |
Add review |
| GET | /reviews/:id/edit |
Edit review page |
| PUT | /reviews/:id |
Update review |
| DELETE | /reviews/:id |
Delete review |
| Method | Endpoint | Description |
|---|---|---|
| GET | /signup |
Registration page |
| POST | /signup |
Register user |
| GET | /login |
Login page |
| POST | /login |
Authenticate user |
| GET | /logout |
Logout user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /favorites |
View favorites |
| POST | /favorites/:id |
Add favorite |
| DELETE | /favorites/:id |
Remove favorite |
Clone the repository
git clone https://github.com/mihirgupta665/Wonderland-Project.gitNavigate into the project
cd Wonderland-ProjectInstall dependencies
npm installSeed the database
node init/index.jsStart the development server
npm startOpen
http://localhost:8080
Create a .env file in the project root.
ATLAS_DBURL=your_mongodb_connection_string
SECRET=your_session_secret
MAP_TOKEN=your_mapbox_public_token
CLOUD_NAME=your_cloudinary_cloud_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_api_secret
NODE_ENV=development| Service | Purpose |
|---|---|
| Render | Web Application Hosting |
| MongoDB Atlas | Cloud Database |
| Cloudinary | Media Storage |
| Mapbox | Maps & Geocoding |
- MVC Architecture
- RESTful API Design
- Passport.js Authentication
- Role-Based Authorization (RBAC)
- MongoDB Atlas Integration
- Cloudinary Media Management
- Mapbox Location Services
- AJAX Favorites
- Responsive Bootstrap UI
- Environment-based Configuration
- Production Deployment
The following enhancements are planned for future releases:
- ๐ Property booking and reservation system
- ๐ณ Secure online payments
- ๐ Email and in-app notifications
- ๐ Google OAuth authentication
- โค๏ธ Wishlist synchronization across devices
- ๐ Availability calendar for hosts
- ๐ค AI-powered property recommendations
- ๐ Multi-language support
Contributions are welcome!
If you'd like to improve Wonderland:
- Fork the repository
- Create a new feature branch
- Commit your changes
- Push to your branch
- Open a Pull Request
Please ensure your code follows the existing project structure and coding style.
This project is made only for exploring and learning purpose.
You are free to use, modify, and distribute this project for educational and personal purposes.
B.Tech Computer Science Engineering (AI & ML)
Passionate Full-Stack & AI Developer focused on building scalable, user-centric web applications.
- ๐ GitHub: https://github.com/mihirgupta665
- ๐ผ LinkedIn: https://www.linkedin.com/in/mihir-gupta-980173299/
Special thanks to the open-source technologies that made this project possible.
- Node.js
- Express.js
- MongoDB Atlas
- Bootstrap
- Passport.js
- Cloudinary
- Mapbox
- Render
If you found this project helpful, consider giving it a โญ on GitHub.
Your support motivates me to continue building high-quality open-source projects and sharing them with the developer community.
Happy Exploring โข Happy Coding โค๏ธ












