Giter VIP home page Giter VIP logo

real-estate-rental-and-tenant-management-system's Introduction

Real Estate Rental and Tenant Management System - Property Plus

Property Plus is a real estate rental and tenant management system. It is a web application that allows two types of users to use the application. The two types of users are the owner and the tenant. The owner can post a property for rent, manage tenants, register rent payment, and create a property contract. The tenant can search and filter properties, view property details, send an email to the owner of the property, and use the built-in chat application for communication between the owner and the tenant.

Live Site - Property Plus

Features

  • Post a property for rent
  • Search and filter properties
  • View property details
  • Built-in Chat Application for communication between owner and tenant
  • Secure JWT authentication using access and refresh tokens
  • Send emails between owner and tenant
  • Create Property Contract
  • Manage tenants
  • Register Rent Payment

Configuration and Installation Instructions

Prerequisites

  1. Clone the repository:
$ git clone https://github.com/SonamRinzinGurung/Real-Estate-Rental-and-Tenant-Management-System.git
  1. Install the required packages for the backend:
$ cd server
$ npm install
  1. Open a new terminal session and install the required packages for the frontend:
$ cd client
$ npm install
  1. Configure the environment variables inside the server folder:
- create a .env file and add the following variables:
- generate secret keys for jwt tokens using online tools

MONGO_URI= <your_mongo_uri>
ACCESS_TOKEN_SECRET_OWNER= <your_access_token_secret_owner>
ACCESS_TOKEN_SECRET_TENANT= <your_access_token_secret_tenant>
REFRESH_TOKEN_SECRET_OWNER= <your_refresh_token_secret_owner>
REFRESH_TOKEN_SECRET_TENANT= <your_refresh_token_secret_tenant>
ACCESS_LIFETIME=15m
REFRESH_LIFETIME=7d
CLOUDINARY_API_KEY= <your_cloudinary_api_key>
CLOUDINARY_API_SECRET= <your_cloudinary_api_secret>
RESET_PASSWORD_KEY= <your_reset_password_key>
EMAIL_VERIFICATION_KEY= <your_email_verification_key>
CLIENT_URL=http://localhost:3000
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER= <your_gmail_address>
EMAIL_PASS= <your_gmail_pass> or <your_gmail_app_password>
  1. Configure the environment variables inside the client folder:
- create a .env.local file and add the following variables:

VITE_APP_BASE_URL=http://localhost:3000
VITE_APP_API_URL=http://localhost:5000/api
VITE_APP_API_HOST=http://localhost:5000
  1. Run the application:
$ cd server
$ npm run dev

Author

Sonam Rinzin Gurung

Repository

Property Plus

real-estate-rental-and-tenant-management-system's People

Contributors

sonamrinzingurung avatar

Stargazers

KelvinHawks avatar Muhammad Abdullah avatar Eliú Díaz avatar  avatar  avatar  avatar Tareq Alsaleh avatar ShivalingeshSB avatar Ginsky avatar Nathan Whye avatar David Nyangi Gibuni avatar Siddhant Chaudhary avatar  avatar Umar Farooq avatar Barış Akgül avatar ShaikhMdHaris avatar John Koen avatar BLK LUV [org] avatar alikalanad avatar  avatar

Watchers

 avatar

real-estate-rental-and-tenant-management-system's Issues

User Login

Create a simple API for user login using email and password

Encrypt password before saving into the database.

Password should be encrypted before being saved and it should not be returned by the response after registration.

const register = async (req, res) => {
console.log(req.body);
const { role } = req.body;
if (role === "owner") {
const owner = await OwnerUser.create(req.body);
res.status(201).json({ owner });
} else if (role === "tenant") {
const tenant = await TenantUser.create(req.body);
res.status(201).json({ tenant });
} else {
res.status(400).json({ message: "Invalid role" });
}
};

View All Contact UI

Create the UI to access the All Contact API and view all the contacts of the Owner User.

Create Contract Page UI

Create the Page where the contract should be made using the Create Contract API which will create the contract and send it to the tenant through email.

Add to Contact UI

Create the UI to use the Add Contact API to create feature through the frontend.

Backend Error Handling

Handle all the async errors and response error to avoid server crash. Create a systematic process to handle future error as well. Provide proper error message and error code for all the errors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.