Skip to content

A platform that allows users to buy and sell their properties. It aims to bridge the gap between property owners and tenants.

Notifications You must be signed in to change notification settings

vivekanand-vr/Rentify

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Project Banner

react tailwindcss springboot mysql

Overview

Rentify is a web application designed to simplify the rental process for both property owners and tenants.
In the post-pandemic world, the demand for real estate has surged, especially in cities with high populations and IT offices. RENTIFY aims to bridge the gap between property owners and tenants by providing a platform where they can easily connect based on their requirements.

Technologies Used

  • Frontend : Vite, Redux Toolkit, React JS, Tailwind CSS
  • Backend : Java, Maven, Spring Boot, REST-APIs, MySQL Database
  • Additional Packages : Axios, Animate.CSS, Yup, Formik, Toastify, Skeleton, Swiper, Cloudinary

Web View Snapshots

Web Image 1 Web Image 2
Web Image 7 Web Image 8
Web Image 3 Web Image 4
Web Image 6 Web Image 5

Project Structure

Frontend Pages

  • Home: Landing page which gives overview about the company, milestones, awards and testimonials.
  • About : About us page displays company details and services.
  • PropertyList: Shows a list of available properties.
  • PropertyDetails: Displays additional information of a property.
  • MyProfile: Displays user's profile information, also allows users to edit details.
  • MyPropertyList: Lists properties added by the user.
  • Error: 404 Error page for invalid paths.

Forms

  • LoginPage: User login form.
  • Sign In: User Sign in form.
  • AddProperty: Form to add a new property.
  • UpdateProperty: Form to update the property details.

Backend Layers

  • Controller Layer: Handles HTTP requests and responses.
  • Service Layer: Contains business logic.
  • Repository Layer: Interacts with the database.
  • Configuration: Contains Spring Boot configuration and Cors Configuration.

Features

User Authentication

  • Sign in: Users can sign in with their details.
  • Login: Users can log in to the application.
  • Logout: Users can log out from the application.
  • Edit Details: Users can edit their details (name, city).

Property Management

  • Add Property: Logged-in users can add a new property.
  • Search Properties: Allows user to search property by name, city, state or country.
  • View Properties: All users can view the list of available properties.
  • View Property Details: Logged-in users can view detailed information about a property.
  • My Properties: Logged-in users can view, update, and delete their properties.
  • Pagination: Properties are fetched all at once and displayed in a paginated view, ensuring efficient navigation through large lists of properties.

API Endpoints

User APIs

  • GET : /user/id: Get user details by userId.
  • POST: /user/check-email : Check user already exists.
  • POST : /user/signin: Sign in a user.
  • POST : /user/login: Log in a user.
  • PUT : /user: Update user details.

Property APIs

  • POST : /properties: Add a new property.
  • GET : /properties/latest-properties: Get recent listing by date
  • GET : /properties: Get all properties.
  • GET : /properties/{pid}: Get property details.
  • GET : /properties/{id}: Get propeties of user.
  • PUT : /properties: Update property details.
  • DELETE : /properties/{id}: Delete a property.

Mobile View Snapshots

Image 1 Image 2 Image 3 Image 4
Image 5 Image 6 Image 7 Image 8

Frontend (Client) Directory Structure

RentifyClient
          ├─── public
          ├─── src
          │       ├── Assets
          │       ├── Components
          │       │         ├── Footer.jsx
          │       │         ├── ImageUploader.jsx
          │       │         ├── Navbar.jsx
          │       │         ├── Pagination.jsx
          │       │         ├── PropertyCard.jsx
          │       │         ├── PropertyCard2.jsx
          │       │         ├── PropertySearch.jsx
          │       │         ├── ShimmerCard.jsx
          │       │         ├── PropertyDetailsShimmer.jsx
          │       │         ├── Testimonials.jsx
          │       ├── Pages
          │       │         ├── Forms
          │       │                 ├── LoginUser.jsx
          │       │                 ├── SignIn.jsx
          │       │                 ├── AddProperty.jsx
          │       │                 ├── UpdateProperty.jsx
          │       │         ├── About.jsx
          │       │         ├── Home.jsx
          │       │         ├── Error.jsx
          │       │         ├── MyProertyList.jsx
          │       │         ├── MyProfile.jsx
          │       │         ├── PropertyDetails.jsx
          │       │         ├── PropertyList.jsx
          │       │         
          │       ├── Redux
          │       |         ├── Reducers
          │       |         │         ├── uerSlice.jsx
          |       |         ├── redux-store.jsx
          │       ├── Services
          │       |         ├── Constants.jsx
          │       |         ├── DeleteAsset.jsx
          │       |         ├── Endpoints.jsx
          │       |         ├── Icons.jsx
          │       ├── custom.css
          │       ├── index.css
          │       ├── index.jsx
          │       ├── Main.jsx
          │
          ├─── .env
          ├─── .gitignore
          ├─── index.html
          ├─── package.json
          ├─── package-lock.json
          ├─── postcss.config.js
          ├─── tailwind.config.js
          ├─── vite.config.js

Setting up the Rentify-Client

  1. Navigate to the frontend directory
  2. Install dependencies
  3. Run the frontend

Execute these commands one by one :

cd RentifyClient
npm install
npm start

Backend (Server) Directory Structure

RentifyServer
        ├── src
        │     ├── main
        │     │     ├── java
        │     │     │     ├── in
        │     │     │     │     ├── rentify
        │     │     │     │     │     ├── RentifyServerApplication.java
        │     │     │     │     │     ├── ServletInitializer.java
        │     │     │     │     │     ├── config
        │     │     │     │     │     │       ├── CorsConfig.java
        │     │     │     │     │     │       ├── SecurityConfig.java
        │     │     │     │     │     ├── controller
        │     │     │     │     │     │       ├── PropertyController.java
        │     │     │     │     │     │       ├── UserController.java
        │     │     │     │     │     ├── dao
        │     │     │     │     │     │       ├── AdditionalDetailsRepository.java
        │     │     │     │     │     │       ├── PropertyRepository.java
        │     │     │     │     │     │       ├── UserRepository.java
        │     │     │     │     │     ├── dto
        │     │     │     │     │     │       ├── LoginDetails.java
        │     │     │     │     │     │       ├── UserDTO.java
        │     │     │     │     │     ├── model
        │     │     │     │     │     │       ├── AdditionalDetails.java
        │     │     │     │     │     │       ├── Property.java
        │     │     │     │     │     │       ├── User.java
        │     │     │     │     │     ├── service
        │     │     │     │     │             ├── PropertyService.java
        │     │     │     │     │             ├── UserService.java
        │     │     ├── resources
        │     │     │     ├── application.properties
        │     │     │     ├── static
        │     │     │     ├── templates
        │     │     ├── webapp
        │     ├── test
        │     │     ├── java
        │     │     ├── resources

Setting up the Rentify-Server

  1. Clone the repository
git clone https://github.com/your-repo/rentify.git
cd RentifyServer
  1. Set up the database: Create a MySQL database named rentify.
  2. Update the database configuration in application.properties file.
  3. Build and run the backend
mvn clean install
mvn spring-boot:run

Contribution

Contributions are welcome! If you have any suggestions, improvements, or would like to contribute to any of the projects, feel free to open an issue or submit a pull request.

About

A platform that allows users to buy and sell their properties. It aims to bridge the gap between property owners and tenants.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published