Skip to content

OmkarAKadam/EStateFlow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

51 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ EstateFlow โ€” Full Stack Property Management Platform

EstateFlow is a full-stack web application designed to simplify property discovery, listing management, and user communication within a unified platform.

Built as part of an internship project, this system demonstrates a production-oriented architecture using Spring Boot (backend) and React + Vite (frontend), with secure authentication and role-based access control.


๐Ÿง  Overview

EstateFlow enables:

  • Property owners to list and manage properties
  • Tenants to explore listings and connect with owners
  • Secure communication through an internal messaging system
  • Personalized experience via favorites and role-based features

This project reflects real-world system design principles including:

  • RESTful API architecture
  • JWT-based authentication
  • Modular frontend structure
  • Scalable backend design

๐Ÿ—๏ธ Project Structure

EstateFlow/
โ”‚
โ”œโ”€โ”€ backend/        # Spring Boot REST API
โ”œโ”€โ”€ frontend/       # React + Vite application
โ”œโ”€โ”€ docs/           # Architecture & planning
โ”œโ”€โ”€ postman/        # API testing collection
โ””โ”€โ”€ README.md

โš™๏ธ Tech Stack

Backend

  • Java
  • Spring Boot
  • Spring Security
  • JWT Authentication
  • Spring Data JPA
  • MySQL
  • Lombok

Frontend

  • React
  • Vite
  • JavaScript
  • Tailwind CSS
  • Axios
  • React Router

Tools

  • Git
  • Postman
  • Docker (planned)

๐Ÿ” Authentication & Security

  • JWT-based authentication
  • Stateless session management
  • BCrypt password hashing
  • Role-based authorization (OWNER / TENANT)
  • Protected API endpoints via Spring Security

Authentication Flow

  1. User logs in โ†’ /api/auth/login
  2. Server returns JWT token
  3. Token stored on client
  4. Token attached in requests:
Authorization: Bearer <token>
  1. Backend validates token and sets user context

๐Ÿ‘ฅ User Roles

Guest

  • Browse properties
  • Register / Login

Tenant

  • Search properties
  • Add to favorites
  • Send messages

Owner

  • Create listings
  • Manage properties
  • Receive messages

๐Ÿงฉ Core Features

๐Ÿ‘ค User Module

  • Registration & login
  • JWT authentication
  • Profile management
  • Input validation

๐Ÿ  Property Module

  • Create / update / delete listings
  • Pagination support
  • Owner-specific property management
  • Search filters (location, price, type)

โค๏ธ Favorites Module

  • Add/remove favorites
  • Personalized property list

๐Ÿ’ฌ Messaging Module

  • Send messages to property owners
  • Inbox & sent messages
  • Conversation threads
  • Read/unread status

๐Ÿ–ผ๏ธ Image Upload

  • Upload property images
  • File validation (type + size)
  • Static file serving

๐ŸŽจ Frontend Architecture

src/
โ”‚
โ”œโ”€โ”€ api/            # Axios config
โ”œโ”€โ”€ services/       # API service layer
โ”œโ”€โ”€ context/        # Auth state management
โ”œโ”€โ”€ hooks/          # Custom hooks
โ”œโ”€โ”€ components/     # Reusable UI
โ”œโ”€โ”€ pages/          # Application views
โ”œโ”€โ”€ routes/         # Routing config
โ”‚
โ”œโ”€โ”€ App.jsx
โ””โ”€โ”€ main.jsx

Key Patterns

  • Centralized API handling via Axios
  • Context-based authentication state
  • Protected routes with role validation
  • Component-driven UI structure

๐Ÿ” Property Search

Supported filters:

  • Location
  • Price range
  • Property type

Endpoints:

GET /api/properties/search/location
GET /api/properties/search/price
GET /api/properties/search/type

๐Ÿš€ Running the Project

Backend Setup

git clone <repository-url>
cd backend

Configure MySQL

CREATE DATABASE estateflow;

Update credentials in application.properties

Run Backend

mvn spring-boot:run

Server:

http://localhost:8080

Frontend Setup

cd frontend
npm install
npm run dev

Frontend:

http://localhost:5173

๐Ÿงช API Testing

Postman collection included:

postman/estateflow-api.postman_collection.json

Suggested Testing Flow

  1. Register user
  2. Login user
  3. Create property
  4. Fetch properties
  5. Add favorite
  6. Send message

๐Ÿ“ฆ Current Capabilities

  • JWT Authentication
  • Role-based access control
  • Property listing & management
  • Image uploads
  • Messaging system
  • Favorites system
  • Pagination & filtering
  • Protected frontend routes

This project functions as a complete full-stack MVP for a property marketplace.


๐Ÿ”ฎ Future Improvements

  • Real-time chat (WebSocket)
  • Notification system
  • Advanced filtering (combined queries)
  • Admin dashboard
  • Cloud storage for images (S3 / Cloudinary)
  • Dockerized deployment

๐Ÿ‘จโ€๐Ÿ’ป Author

Omkar Kadam BCA Student โ€” MSU Vadodara Aspiring Full Stack Developer


About

Full-stack city-focused property listing platform for rentals and property sales, built with Spring Boot, React, and MySQL. Includes JWT authentication, role-based access control, property management, messaging, and deployable production architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors