StaySphere is a full-stack web application for booking and listing properties, inspired by platforms like Airbnb. It allows users to create, manage, and book listings with features such as user authentication, dynamic maps, and review management.
- Frontend: EJS (Embedded JavaScript), Bootstrap 5
- Backend: Node.js, Express.js
- Database: MongoDB with Mongoose ORM
- Authentication: Passport.js
- Deployment: Render
- Other Tools: MapTiler, Leaflet.js, Cloudinary (for image hosting)
- Follows the MVC (Model-View-Controller) design pattern
- User authentication (login, registration, and sessions)
- CRUD operations for property listings and reviews
- Interactive maps displayed on every listing page
- Image upload and management using Cloudinary
- Responsive design with Bootstrap
- Check out the live application at https://staysphere-8epx.onrender.com/listings
Ensure you have the following installed:
- Node.js (v16+)
- MongoDB (local or Atlas)
- Git
git clone <repository-url>
cd stayspherenpm installCreate a .env file in the root directory with the following:
MAP_KEY=<Your_MapTiler_API_Key>
CLOUD_NAME=<Your_Cloudinary_Cloud_Name>
CLOUD_API_SECRET=<Your_Cloudinary_API_Secret>
CLOUD_API_KEY=<Your_Cloudinary_API_KEY>
SECRET=<Your_Session_Secret>
ATLASDB_URL=<YOUR_ATLAS-URI>
node app.jsThe app will be available at: http://localhost:8080/listings
- Push your code to a GitHub repository.
- Create a new Web Service on Render.
- Connect your GitHub repository.
- Set environment variables on Render matching your
.envfile. - Deploy and monitor the logs.
- Bootstrap not loading? Ensure correct paths to static files and proper CDN links.
- Database connection error? Double-check your MongoDB URI.
Feel free to fork and submit pull requests to enhance StaySphere!
This project is licensed under the MIT License.