Wanderlust is a full-stack room and property booking web application built using MERN stack (MongoDB, Express.js, Node.js) with a server-rendered frontend using HTML & CSS.
The application focuses on secure authentication, authorization, and clean backend architecture.
- User registration and login
- Browse available rooms and properties
- View detailed property information
- Secure session-based authentication
- Create new property listings
- Edit only their own listed properties
- Delete only properties created by them
- Protected routes using role-based authorization
- Role-based authentication system
- Property ownership verification before edit/delete
- Session handling with Passport.js
- Server-side authorization middleware
- HTML5
- CSS3
- EJS (Server-Side Rendering)
- Bootstrap (if used)
- Node.js
- Express.js
- MongoDB
- Mongoose
- Passport.js
- Express-Session
- bcrypt
- dotenv
Wanderlust/
│
├── init/ # MongoDB connection
├── models/ # MongoDB schemas
├── public/ # CSS & static assets
├── routes/ # Express routes
├── views/ # EJS templates (HTML rendering)
├── app.js
├── ExpressError.js
├── middleware.js # Auth & role-based checks
├── package.json
└── README.md
- Each property is associated with its creator (owner)
- Only the owner of a property can:
- Edit the listing
- Delete the listing
- Other authenticated users cannot modify listings they do not own
- Authorization is enforced using custom middleware
- Implemented secure role-based authorization
- Prevented unauthorized property modification
- Clean MVC-based backend structure
- Focused on backend security & data integrity






