Hommz is a comprehensive full stack web application designed to seamlessly connect landlords with potential tenants, serving as a modern solution akin to an Airbnb clone. The platform simplifies the rental process by offering an intuitive interface for landlords to list their properties and for tenants to search and book accommodations.
Hommz aims to enhance the rental experience for both parties. Whether you're a landlord looking to fill vacancies or a tenant in search of your next home, Hommz bridges the gap, making the rental process efficient and hassle-free.
- Responsive design
- User authentication
- User authorization
- Property Listings
- Booking and Reservations
- Dynamic Pricing
Client: React, Node, JavaScript
Server: Node, Express, JavaScript, MongoDB, Cloudinary, Multer
Deployment: Netlify, Render
Clone the repository
git clone https://github.com/Saddickq/Hommz.git
Navigate into the project directory
cd Hommz
Install backend dependencies
cd server
npm install
Install frontend dependencies
cd ../client
npm install
Start the backend server
cd ../server
npm start
Start the frontend development server
cd ../client
npm start
To run this project, you will need to add the following environment variables to your .env file
DB_URL
SECRET
PORT
NODE_ENV
cloud_name
api_key
api_secret
POST /auth/register
Parameter | Type | Description |
---|---|---|
email |
string |
Required. Your email |
name |
string |
Required. Your name |
password |
string |
Required. Your password |
GET /auth/login
Parameter | Type | Description |
---|---|---|
email |
string |
Required. Your email |
password |
string |
Required. Your password |
GET /auth/logout
POST /new_place
Parameter | Type | Description |
---|---|---|
title |
string |
Required. Title of the place |
description |
string |
Required. Description of the place |
address |
string |
Required. Address of the place |
price |
number |
Required. Price per night |
photos |
[string] |
Required. Array of photo URLs |
owner |
string |
Required. User ID of the owner |
extraInfo |
string |
Optional. Additional information about the place |
GET /user_places
GET /places
GET /places/:id
Parameter | Type | Description |
---|---|---|
id |
string |
Required. Id of place to fetch |
PUT /places/:id
Parameter | Type | Description |
---|---|---|
title |
string |
Required. Title of the place |
description |
string |
Required. Description of the place |
address |
string |
Required. Address of the place |
price |
number |
Required. Price per night |
photos |
[string] |
Required. Array of photo URLs |
extraInfo |
string |
Optional. Additional information about the place |
DELETE /places/:id
Parameter | Type | Description |
---|---|---|
id |
string |
Required. Id of place to fetch |
POST /bookings
Parameter | Type | Description |
---|---|---|
checkIn |
string |
Required. Time to check In |
checkOut |
string |
Required. Time to check Out |
name |
string |
Required. Name of person booking |
price |
number |
Required. Price per night |
phone |
string |
Required. phone number of the person booking |
place |
string |
Required. Id of the place being booked |
user |
string |
Required. Owner of the place |
GET /bookings
DELETE /bookings/:id