Skip to content

Anmol-2109/RealEstateWithFrontend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏠 RealEstate Management Platform

A full-stack Real Estate Management System developed as a Database Management Systems (DBMS) Project and Backend Engineering Showcase. The platform enables users to buy, sell, rent, and manage properties while supporting multiple organizational roles including Users, Agents, Offices, and Administrators.

The primary goal of this project was to demonstrate strong understanding of:

  • Database Design & Management
  • Spring Boot Backend Development
  • REST API Design
  • Authentication & Authorization
  • Role-Based Access Control (RBAC)
  • Enterprise Application Architecture
  • Design Patterns & Clean Code Principles
  • Full-Stack Integration with React

πŸš€ Project Overview

RealEstate is a property marketplace platform where users can:

  • Buy properties
  • Sell properties
  • Rent properties
  • List properties
  • Manage property transactions
  • Track property ownership
  • View analytics and performance metrics

The system supports multiple user roles with different access privileges, implemented using Spring Security and JWT Authentication.

This project was designed with a strong focus on database modeling, backend architecture, and secure role-based access control, making it suitable as a DBMS and Backend Engineering portfolio project.


✨ Core Features

πŸ” Authentication & Security

  • JWT Authentication
  • Access Token & Refresh Token Mechanism
  • Spring Security Integration
  • Password Encryption using BCrypt
  • Role-Based Authorization (RBAC)
  • Secure API Access Control
  • Protected Routes
  • User Profile Management
  • Refresh Token Storage & Validation

πŸ‘₯ Multi-Role System

The platform supports four major roles:

User

  • Browse properties
  • Buy properties
  • Sell properties
  • Rent properties
  • Track transactions
  • Manage profile

Agent

  • Manage assigned properties
  • Create property listings
  • Track performance metrics
  • Monitor sales and rentals
  • Access agent dashboard

Office

  • Manage agents
  • Manage office properties
  • Monitor office performance
  • Track revenue and transactions
  • Office dashboard access

Admin

  • Complete system control
  • User management
  • Property management
  • Office management
  • Analytics dashboard
  • Revenue monitoring
  • System-wide reporting

🏑 Property Management

  • Property Creation
  • Property Updates
  • Property Deletion
  • Property Tracking
  • Property Ownership Management
  • Property Search & Filtering
  • Property Status Management
  • Buy/Sell/Rent Operations
  • Property Image Support

πŸ“‹ Listing Management

The platform separates:

Properties

Actual real estate assets.

Listings

Market-facing entries created for properties.

Features include:

  • Create Listings
  • Update Listings
  • Listing Tokens
  • Listing Ownership Validation
  • Listing Visibility Control
  • Listing Access Strategy System

πŸ’° Transaction Management

  • Property Purchase Transactions
  • Property Rental Transactions
  • Transaction History
  • Revenue Tracking
  • Transaction Analytics
  • Transaction Access Control
  • Role-Specific Transaction Views

πŸ“Š Analytics Dashboard

The platform provides role-specific dashboards:

Admin Dashboard

  • Total Users
  • Total Properties
  • Total Transactions
  • Revenue Analytics
  • System Performance

Agent Dashboard

  • Listings Performance
  • Property Performance
  • Revenue Metrics
  • Agent Productivity

Office Dashboard

  • Office Revenue
  • Office Transactions
  • Agent Performance
  • Property Statistics

πŸ“’ Notification System

  • User Notifications
  • System Notifications
  • Role-Specific Notifications
  • Notification Tracking

🎯 Design Patterns Used

Strategy Pattern

Implemented extensively for role-specific access management.

Property Strategies

  • AdminPropertyStrategy
  • AgentPropertyStrategy
  • OfficePropertyStrategy
  • UserPropertyStrategy

Listing Strategies

  • AdminListingStrategy
  • AgentListingStrategy
  • OfficeListingStrategy
  • UserListingStrategy

Transaction Strategies

  • AdminTransactionStrategy
  • AgentTransactionStrategy
  • OfficeTransactionStrategy
  • UserTransactionStrategy

Revenue Strategies

  • AdminRevenueStrategy
  • AgentRevenueStrategy
  • OfficeRevenueStrategy

Factory Pattern

Used to dynamically select strategies based on user roles.

Examples:

  • PropertyStrategyFactory
  • ListingStrategyFactory
  • TransactionStrategyFactory
  • RevenueStrategyFactory

πŸ—„οΈ Database Design

This project was heavily focused on DBMS concepts.

Major Entities

  • User
  • UserProfile
  • Agent
  • Office
  • Property
  • ListingToken
  • Transaction
  • Notification
  • Images
  • Performance
  • RefreshToken
  • EmailOtp

Database Concepts Demonstrated

Entity Relationship Modeling

  • One-to-One Relationships
  • One-to-Many Relationships
  • Foreign Key Constraints

Data Integrity

  • Primary Keys
  • Unique Constraints
  • Referential Integrity

Normalization

Database schema designed following normalization principles to minimize redundancy and improve consistency.

Transaction Management

Ensures consistency during:

  • Property purchases
  • Rentals
  • Ownership transfers
  • Listing updates

πŸ”’ Spring Security Implementation

Security is implemented using:

  • Spring Security
  • JWT Authentication
  • Custom Authentication Filter
  • Custom UserDetailsService
  • Refresh Token Management
  • Stateless Authentication

Security Components

AuthFilter
      β”‚
      β–Ό
AuthService
      β”‚
      β–Ό
AuthUtil
      β”‚
      β–Ό
Spring Security Context

πŸ–₯️ Frontend

Frontend is built using:

  • React.js
  • JavaScript
  • Axios
  • React Router
  • CSS

Frontend Features

  • Authentication Pages
  • Dashboard Pages
  • Property Management UI
  • Listing Management UI
  • Profile Management
  • Transaction Records
  • Notifications
  • Property Carousel
  • Protected Routes

πŸ›οΈ System Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   React Frontend    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚
           β”‚ REST APIs
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Spring Boot Backend β”‚
β”‚ Authentication      β”‚
β”‚ Properties          β”‚
β”‚ Listings            β”‚
β”‚ Transactions        β”‚
β”‚ Analytics           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
           β”‚
           β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚      MySQL DB       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ› οΈ Tech Stack

Category Technologies
Frontend React.js, JavaScript, CSS, Axios
Backend Spring Boot, Spring MVC
Security Spring Security, JWT
Database MySQL
ORM Spring Data JPA, Hibernate
Build Tool Maven
Authentication JWT + Refresh Tokens
API Style REST APIs
Version Control Git, GitHub

πŸ“‚ Backend Structure

src/main/java/com/RealState/Project

β”œβ”€β”€ Config
β”œβ”€β”€ Controller
β”œβ”€β”€ DTO
β”œβ”€β”€ Entity
β”œβ”€β”€ Exception
β”œβ”€β”€ Mapper
β”œβ”€β”€ Repository
β”œβ”€β”€ Security
β”œβ”€β”€ Service
β”œβ”€β”€ Strategy
β”‚   β”œβ”€β”€ Listing
β”‚   β”œβ”€β”€ Property
β”‚   β”œβ”€β”€ Revenue
β”‚   └── Transaction
β”œβ”€β”€ Utils
└── ProjectApplication

βš™οΈ Backend Setup

Prerequisites

  • Java 21+
  • Maven
  • MySQL 8+
  • Git

Clone Repository

git clone https://github.com/your-username/real-estate-platform.git

cd real-estate-platform

Configure Database

Update application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/realEstate
spring.datasource.username=root
spring.datasource.password=your_password

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

Run Backend

mvn spring-boot:run

Backend:

http://localhost:8080

πŸ’» Frontend Setup

cd Frontend

npm install

npm run dev

Frontend:

http://localhost:5173

πŸŽ“ Learning Outcomes

This project helped strengthen understanding of:

  • Database Design
  • ER Modeling
  • SQL & Relational Databases
  • Spring Boot Development
  • REST API Design
  • Authentication & Authorization
  • Spring Security
  • Hibernate & JPA
  • Design Patterns
  • Layered Architecture
  • Full-Stack Application Development

πŸ‘¨β€πŸ’» About The Developer

Anmol Kumar

B.Tech Computer Science & Engineering
Indian Institute of Information Technology Guwahati (IIIT Guwahati)

This project was developed as a DBMS and Backend Engineering showcase to demonstrate practical understanding of:

  • Database Design
  • Spring Boot Development
  • Secure Authentication Systems
  • Enterprise Backend Architecture
  • Role-Based Access Control
  • RESTful API Development

The focus of the project was not only to build a real estate platform, but also to apply software engineering principles, database concepts, and scalable backend design practices used in real-world applications.


⭐ Highlights

  • Full Stack Real Estate Platform
  • DBMS Focused Architecture
  • Spring Security + JWT
  • Role Based Access Control
  • Strategy & Factory Design Patterns
  • MySQL + Hibernate
  • React Frontend
  • Enterprise Style Backend Design
  • Portfolio-Level Project

About

This is a real estate website developed as a college project by a team of four, covering the complete stack from database design to backend and frontend implementation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages