Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

90 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Wonderland Hero Banner

๐ŸŽช WONDERLAND

Premium Full-Stack Travel Marketplace & Lodging Platform

Discover unique stays โ€ข Explore destinations โ€ข Host unforgettable experiences

ย 

ย 

Node.js Express.js MongoDB Bootstrap Cloudinary Mapbox


๐ŸŒ Live Demo

Experience the complete Wonderland platform, including secure authentication, property management, interactive maps, image uploads, reviews, favorites, and responsive design.

๐Ÿš€ Live Application

Live Demo

https://wonderland-8sm7.onrender.com

๐Ÿ”‘ Demo Account

Username Password
admin admin123

Note: Use this account to explore landlord features such as creating, editing, and deleting property listings.


๐Ÿ“– About Wonderland

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.


โญ Project Highlights

  • ๐Ÿ” 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

๐Ÿ“‘ Table of Contents

  • ๐Ÿ“– About
  • โญ Project Highlights
  • ๐Ÿ“ธ Project Showcase
  • ๐ŸŽฅ Demo GIF
  • ๐ŸŽฌ Demo Video
  • โœจ Features
  • ๐Ÿ› ๏ธ Technology Stack
  • ๐Ÿ—๏ธ Architecture
  • ๐Ÿ“ Project Structure
  • โš™๏ธ Installation
  • ๐Ÿ” Environment Variables
  • ๐Ÿš€ Deployment
  • ๐Ÿ”ฎ Future Improvements
  • ๐Ÿ‘จโ€๐Ÿ’ป Author

๐Ÿ“ธ Project Showcase

A glimpse of the key workflows and user experience offered by Wonderland.


๐Ÿ  Core Experience

Home Page


Explore Listings


Reviews & Comments


Interactive Map


โค๏ธ User Experience

Smart Search


Favorites


๐Ÿก Host Experience

Create Listing


Edit Listing


User Registration


๐Ÿ“ฑ Responsive Design

Mobile Home


Mobile Property Details


๐ŸŽฅ Project Demonstration

A quick walkthrough of Wonderland, showcasing the complete user journeyโ€”from exploring properties to managing listings and interacting with key platform features.

Wonderland Project Demo


๐ŸŽฌ Project Walkthrough

Watch the complete walkthrough of Wonderland, covering the application's architecture, user workflow, authentication, listing management, favorites, reviews, interactive maps, and responsive design.

Watch Wonderland Demo


โœจ Features

๐Ÿ‘ค User Features

  • 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.

๐Ÿ  Landlord Features

  • 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.

๐Ÿ” Security Features

  • Passport.js authentication.
  • Role-Based Authorization (RBAC).
  • Session management.
  • Protected routes.
  • Secure environment variables.
  • Input validation and centralized error handling.

๐Ÿ› ๏ธ Technology Stack

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

๐Ÿ—๏ธ System Architecture

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

Architecture Highlights

  • MVC Project Structure
  • RESTful Routing
  • Modular Controllers
  • Secure Authentication
  • Cloud Image Storage
  • Interactive Maps

๐Ÿ“ Project Structure

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

๐Ÿ”Œ REST API Overview

Listings

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

Reviews

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

Authentication

Method Endpoint Description
GET /signup Registration page
POST /signup Register user
GET /login Login page
POST /login Authenticate user
GET /logout Logout user

Favorites

Method Endpoint Description
GET /favorites View favorites
POST /favorites/:id Add favorite
DELETE /favorites/:id Remove favorite

โš™๏ธ Installation

Clone the repository

git clone https://github.com/mihirgupta665/Wonderland-Project.git

Navigate into the project

cd Wonderland-Project

Install dependencies

npm install

Seed the database

node init/index.js

Start the development server

npm start

Open

http://localhost:8080

๐Ÿ” Environment Variables

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

๐Ÿš€ Deployment

Service Purpose
Render Web Application Hosting
MongoDB Atlas Cloud Database
Cloudinary Media Storage
Mapbox Maps & Geocoding

๐Ÿ“ˆ Engineering Highlights

  • 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

๐Ÿ”ฎ Future Improvements

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

๐Ÿค Contributing

Contributions are welcome!

If you'd like to improve Wonderland:

  1. Fork the repository
  2. Create a new feature branch
  3. Commit your changes
  4. Push to your branch
  5. Open a Pull Request

Please ensure your code follows the existing project structure and coding style.


๐Ÿ“„ License

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.


๐Ÿ‘จโ€๐Ÿ’ป Author

Mihir Gupta

B.Tech Computer Science Engineering (AI & ML)

Passionate Full-Stack & AI Developer focused on building scalable, user-centric web applications.

Connect With Me


๐Ÿ™ Acknowledgements

Special thanks to the open-source technologies that made this project possible.

  • Node.js
  • Express.js
  • MongoDB Atlas
  • Bootstrap
  • Passport.js
  • Cloudinary
  • Mapbox
  • Render

โญ Support

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.


๐ŸŽช Thank you for visiting Wonderland!

Happy Exploring โ€ข Happy Coding โค๏ธ

Releases

Packages

Contributors

Languages