Git Product home page Git Product logo

dipeshkumarsah98 / property-management-system Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 7.29 MB

This PMS that is Property management system is the simple UI to discover the perfect Propert for your needs with our user-friendly tool that compares multiple Propert offerings. It is designed to allow users to compare between multiple properties from different places and find the right propert to get your household or businesses place.

JavaScript 37.94% Dockerfile 0.12% HTML 0.43% CSS 6.24% TypeScript 54.83% Shell 0.45%
express mern-stack react typescript

property-management-system's Introduction

PMS PROJECT

This PMS that is Property management system is the simple UI to discover the perfect Propert for your needs with our user-friendly tool that compares multiple Propert offerings. It is designed to allow users to compare between multiple properties from different places and find the right propert to get your household or businesses place. It is a comprehensive solution designed to streamline property management tasks. It provides a user-friendly interface for property managers to manage properties, tenants, leases, and more.

Getting Started

Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js and npm installed.
  • PostgreSQL database set up and running.

Installation

  1. Clone this repository.
  2. Navigate to the client directory and follow the instructions in the client README to set up the frontend.
  3. Navigate to the server directory and follow the instructions in the server README to set up the backend.

Usage

  1. Start the server by following the instructions in the server README.
  2. Start the client by following the instructions in the client README.
  3. Access the Property Management System through your web browser.

Technologies Used

  • Frontend: React, TypeScript
  • Backend: TypeScript, Express.js
  • Database: PostgreSQL

Folder Structure

  • client: Contains the frontend code.
  • server: Contains the backend code.

ER Diagram

dbms-assignment-er-diagram

License

This project is licensed under the MIT License.

Contact

For questions or feedback, please contact us at [email protected].

property-management-system's People

Contributors

dipeshkumarsah98 avatar

Stargazers

Sundim avatar

Watchers

 avatar

property-management-system's Issues

Send OTP While Creating User and Login

Objective:
Implement OTP generation and sending during user registration and login.

Tasks:

  1. Integrate the OTP service with the user registration process.
  2. Generate and send an OTP to users when they register.
  3. Add OTP validation during the login process to enhance security.
  4. Update the documentation to reflect the changes.

Acceptance Criteria:

  • Users receive an OTP when registering.
  • Users must validate the OTP during login.
  • The OTP service functions correctly during both registration and login processes.
  • Documentation is updated to include these changes.

Create Forget Password and Verify OTP Endpoint Service

Objective:
Create a service for users to reset their passwords using OTP.

Tasks:

  • Implement a "Forgot Password" feature that allows users to request a password reset.
  • Generate and send an OTP to the user's registered email for verification.
  • Create an endpoint for users to verify their OTP and reset their password.
  • Ensure security and validation measures are in place.
  • Update the project's documentation.

Acceptance Criteria:

  1. Users can initiate a password reset using the "Forgot Password" feature.
  2. OTPs are sent to the user's email for verification.
  3. Users can successfully verify the OTP and reset their password.
  4. Security measures are implemented to protect this process.
  5. Documentation is updated to include these changes.
  6. Please integrate these issues into your project, and feel free to modify them as needed. Good luck with your development!

Implement CRUD Service for Inquiry model

Objective:
The objective of this issue is to implement CRUD Service in inquiry table, which including create, update, and delete operations.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Implement CRUD Service for PropertyType model

Objective:
The objective of this issue is to implement CRUD Service in property_type table, which including create, update, and delete operations.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Set up OTP Sent Service

Objective:
Set up a service for sending one-time passwords (OTP) to users.

Tasks:

  1. Choose a suitable package for generating OTPs.
  2. Implement the OTP generation and sending logic.
  3. Integrate the OTP service with the existing Express and TypeScript project.
  4. Test the OTP service to ensure it functions correctly.

Acceptance Criteria:

  • The OTP service is successfully set up and integrated into the project.
  • OTPs can be generated and sent to users.
  • The OTP service is error-free and meets security standards.

Implement Auth Endpoint with JWT for Role-Based Authentication

Objective:
The objective of this issue is to create an authentication endpoint using JSON Web Tokens (JWT) to facilitate role-based authentication for users in the Property Management System.

Tasks:

  1. Create an authentication endpoint that accepts user credentials (e.g., username and password).
  2. Verify user credentials and generate a JWT token if authentication is successful.
  3. Include user role information in the JWT payload.
  4. Implement role-based access control based on the user's role.
  5. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Users should be able to authenticate and receive a JWT token upon successful login.
  • JWT tokens should contain user role information.
  • Access to certain functionalities should be restricted based on user roles.
  • The relevant parts of the documentation should reflect the changes made.

Implement CRUD service to Property model

Objective:
The objective of this issue is to implement CRUD Service in properties table, which including create, update, and delete operations.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Implement CRUD service for Review model

Objective:
The objective of this issue is to implement CRUD Service in review table, which including create, update, and delete operations.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Implement CRUD Service for Appointment model

Objective:
The objective of this issue is to implement CRUD Service in appointment table, which including create, update, and delete operations.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Implement Role-Based Middleware Guard for Role-Based Authentication

Objective:
The objective of this issue is to create middleware guards using the express framework that enforce role-based authentication for specific routes and functionalities in the Property Management System, which is built using JavaScript, Express, and TypeScript.

Tasks:

  1. Develop middleware guards that check the user's role based on the JWT token.
  2. Apply these middleware guards to routes that require role-based authentication.
  3. Ensure that unauthorized users are denied access to restricted routes.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Middleware guards should correctly check and enforce role-based authentication.
  • Unauthorized users should be denied access to routes requiring specific roles.
  • The relevant parts of the documentation should reflect the changes made.

Implement CRUD Service for FollowUp model

Objective:
The objective of this issue is to implement CRUD Service in follow_up table, which including create, update, and delete operations.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Implement CRUD service for Lead model

Objective:
The objective of this issue is to implement CRUD Service in lead table, which including create, update, and delete operations.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Implement Auth Guard in Different Endpoints (Create, Update, Delete) for Role-Based Authentication

Objective:
The objective of this issue is to implement authentication guards in various endpoints, including create, update, and delete operations, to enforce role-based authentication in the Property Management System, which is built using JavaScript, Express, and TypeScript.

Tasks:

  1. Identify the relevant endpoints for create, update, and delete operations.
  2. Apply the role-based authentication guard to these endpoints.
  3. Ensure that only authorized users with the appropriate roles can perform these actions.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • Authentication guards should be successfully applied to create, update, and delete endpoints.
  • Unauthorized users should be prevented from performing these actions.
  • The relevant parts of the documentation should reflect the changes made.

Implement Password Hashing with bcrypt for User Creation

Objective:
The objective of this issue is to enhance security by implementing password hashing using bcrypt when creating a new user in the Property Management System.

Tasks:

  1. Add the bcrypt library as a project dependency.
  2. Modify the user creation process to hash the user's password using bcrypt.
  3. Ensure that the hashed password is securely stored in the database.
  4. Update relevant documentation with the changes made.

Acceptance Criteria:

  • New users should have their passwords securely hashed using bcrypt during registration.
  • The application should successfully create users with hashed passwords.
  • The relevant parts of the documentation should reflect the changes made.

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.