Stazy is a full-stack web application designed to connect homeowners who want to rent out their properties with people seeking accommodations. The project follows the MVC (Model-View-Controller) design pattern.
## Table of Contents- Features
- Tech Stack
- Usage
- Live Demo
- 🤝 How to Contribute
- 🛠️ How to Set Up the Project Locally
- 📬 Contact
- User Authentication and Registration: Secure login and registration system with Passport.
- Property Listing and Management: Users can list, manage, and update their properties.
- User Reviews and Ratings: Users can leave reviews and rate properties.
- Responsive Design: The application is fully responsive, providing a seamless experience across all devices.
- Tax Display: Shows Price and Taxes.
- AI ChatBot: dedicated AI chatbot to help in hotel booking.
- Map Integration: Integrated with maps to show property locations.
- And More: Additional features to enhance user experience.
- Frontend: CSS, Bootstrap/Tailwind
- Backend: Node.js, Express.js,javaScript
- Database: MongoDB
- Authentication: NPM package Passport
- Deployment: Render.com
Register or log in to your account. View different properties from different places. List your property by providing necessary details.
## Live DemoCheck out the live demo of the project: Stazy Live https://wonderlust-lpjk.onrender.com/
## 🤝 How to ContributeWe welcome contributions to help improve Stazy! 🚀 Here’s how you can get involved:
-
Fork the Repository 🍴
- Navigate to the Stazy GitHub page. 🌐
- Click on the Fork button in the top-right corner of the page to create a copy of the repository in your GitHub account. ➕
-
Clone Your Forked Repository 🔄
- After forking, clone the repository to your local machine:
git clone https://github.com/your-username/Stazy.git
- Navigate to the project directory:
cd Stazy
- After forking, clone the repository to your local machine:
-
Create a New Branch for Your Changes 🌿
- Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name
- Create a new branch for your feature or fix:
-
Make Your Changes ✏️
- Add your desired features, fix bugs, or improve documentation. 🛠️
-
Add Your Changes to the Staging Area 📦
- Stage the files you modified or created:
git add .
- Stage the files you modified or created:
-
Commit Your Changes 📝
- Commit your changes with a descriptive message:
git commit -m "Add [feature/fix] - description"
- Commit your changes with a descriptive message:
-
Push Your Changes ⬆️
- Push the changes to your forked repository:
git push origin feature/your-feature-name
- Push the changes to your forked repository:
-
Clone the Repository 🔍
- Clone the repository to your local machine:
git clone https://github.com/your-username/Stazy.git
- Clone the repository to your local machine:
-
Navigate to the Project Directory 📂
- Change to the directory where the project is located:
cd Stazy
- Change to the directory where the project is located:
-
Set Up Your Mapbox Account 🌐
- Go to Mapbox and sign up for a free account. 🆓
- After logging in, navigate to the Tokens section under your account settings. 🔑
- Create a new Access Token and copy it. You will need this for the
.envfile. 📄
-
Set Up Your Cloudinary Account ☁️
- Go to Cloudinary and sign up for a free account. 🆓
- After logging in, navigate to your Dashboard. 📊
- Copy your Cloud Name, API Key, and API Secret. You will need these for the
.envfile. 🔐
-
Ensure
.envandnode_modules/Are in.gitignore🛡️- Before proceeding, ensure that both
.envandnode_modules/are added to your.gitignorefile to prevent sensitive information and large files from being uploaded to GitHub. 🚫 - If they are not already there, add them:
echo .env >> .gitignore echo node_modules/ >> .gitignore
- Before proceeding, ensure that both
-
Create a
.envFile 🗃️- In the root directory of the project, create a
.envfile and add the following variables:map_acess=your-mapbox-access-token dburl=your-mongodb-connection-uri # mongodb://127.0.0.1:27017/Stazy for running mongodb server locally secret=your-secret-key fileNameE=your-cloudinary-cloud-name api_key=your-cloudinary-api-key api_secret=your-cloudinary-api-secret PORT=8080 # Default port for the server NODE_ENV=production demoUSer=user-who-will-be-onwer-of-all-demo-user(give objectId)
- In the root directory of the project, create a
-
Install Dependencies ⚙️
- Install the required Node.js dependencies:
npm install
- Install the required Node.js dependencies:
-
Start the Server 🚀
- You have two options to start the server:
- Using
nodemon app.jsfor auto-restarting:nodemon app.js
- Or using
node app.jsto start the server manually:node app.js
- Using
- You have two options to start the server:
-
Environment Setup 🔒
- Ensure that the
.envfile is not uploaded to GitHub by checking that.gitignoreincludes.env. 📜 The following code snippet prevents.envfrom being deployed if you're running in development mode:if (process.env.NODE_ENV !== 'production') { require('dotenv').config(); }
- Ensure that the
We're excited to have you on board! Whether you're a seasoned developer or just starting out, your skills and ideas can make a significant impact on Stazy. Here’s how you can get involved:
- Share Your Ideas 💡: Have a feature in mind? Let us know!
- Fix Bugs 🐛: Help us improve the project by identifying and fixing issues.
- Enhance Documentation 📚: Clear documentation helps everyone. Your contributions can make it even better!
Every contribution, big or small, is valued and appreciated. Together, we can create an amazing platform for travel enthusiasts! 🌍✨
For questions or feedback, feel free to reach out via GitHub issues or contact the project maintainers. ✉️

