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.gitNavigate into the project directory
cd HommzInstall backend dependencies
cd server
npm installInstall frontend dependencies
cd ../client
npm installStart the backend server
cd ../server
npm startStart the frontend development server
cd ../client
npm startTo 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
