Vagabond is a community-driven accommodation marketplace.It allows users to monetize their properties (hotels, houses, distinct stays) by hosting travelers, while enabling guests to discover and book unique accommodations around the world.
- User Authentication: Secure Login and Signup functionality using Passport.js.
- CRUD Functionality: Users can Create, Read, Update, and Delete their own property listings.
- Smart Search: Search bar functionality allows users to filter properties by location or title instantly.
- Review System: Guests can leave star ratings and comments on properties they have visited.
- Image Uploads: Seamless image uploading for property listings.
- Map Integration: Interactive maps using Mapbox to show the exact location of properties.
- Direct Booking Inquiries: "Contact Owner" feature allows users to send direct booking emails to hosts via their default mail client.
- User Profiles: Dedicated user dashboards to manage user listings and reviews.
Frontend: HTML5, CSS3, Bootstrap 5 , EJS
Backend: Node.js, Express.js
Database: MongoDB, Mongoose
Tools & APIs:
- Mapbox GL JS (Maps)
- Cloudinary (Image Storage)
- Joi (Server-side validation)
- Passport.js (Authentication & Authorization)
Follow these steps to run the project locally on your machine.
- Node.js installed
- MongoDB installed and running locally (or a MongoDB Atlas URI)
-
Clone the repository
-
Install dependencies
npm install
-
Set up Environment Variables Create a
.envfile in the root directory and add the following:PORT_NUMBER=8080 CLOUD_NAME=your_cloudinary_name CLOUD_API=your_cloudinary_api_key CLOUD_SECRET=your_cloudinary_api_secret MAP_TOKEN=your_mapbox_token ATLASDB_URL=your_mongodb_connection_string SECRETCODE=your_session_secret
-
Run the application
node app.js # OR if you have nodemon installed npm run dev -
Access the app Open your browser and navigate to
http://localhost:8080.
