Stayora is a full-stack Airbnb-inspired rental listing web application built with Node.js, Express.js, MongoDB Atlas, EJS, Passport.js, Mapbox, Cloudinary, and Bootstrap. It allows users to discover stays, search and filter listings, save favorites to a wishlist, book available dates, leave reviews, and manage their own property listings.
Stayora was built as a portfolio-ready full-stack project to demonstrate practical web development skills across authentication, CRUD operations, server-side rendering, database relationships, third-party API integration, image hosting, search and filter UX, wishlist handling, and booking validation. GitHub portfolio READMEs are strongest when they include a concise overview, a project demo, the main technologies used, and a clear explanation of the problem the project solves.
- Backend: Node.js, Express.js
- Database: MongoDB Atlas, Mongoose
- Frontend: EJS, Bootstrap, CSS
- Authentication: Passport.js, passport-local, passport-local-mongoose
- Maps & Geocoding: Mapbox GL JS, Mapbox SDK
- Image Hosting: Cloudinary, Multer, Multer-Storage-Cloudinary
- Session Store: connect-mongo
- Deployment: Render
Stayora/
│── controllers/
│── models/
│── routes/
│── views/
│── public/
│── utils/
│── app.js
│── cloudConfig.js
│── middleware.js
│── schema.js
│── package.json- Clone the repository:
git clone https://github.com/your-username/Stayora.git cd Stayora - Install dependencies:
npm install
- Create a
.envfile in the root directory and add:ATLASDB_URL=your_mongodb_connection_string SECRET=your_session_secret CLOUD_NAME=your_cloudinary_cloud_name CLOUD_API_KEY=your_cloudinary_api_key CLOUD_API_SECRET=your_cloudinary_api_secret MAP_TOKEN=your_mapbox_token
- Start the development server:
nodemon app.js
- Open the app in your browser:
http://localhost:8080
The project requires these environment variables:
ATLASDB_URL— MongoDB Atlas connection string.SECRET— Session secret.CLOUD_NAME— Cloudinary cloud name.CLOUD_API_KEY— Cloudinary API key.CLOUD_API_SECRET— Cloudinary API secret.MAP_TOKEN— Mapbox access token.
Developed by Akshat Trivedi.