Skip to content

πŸ› οΈ Decentralized real estate platform built on Ethereum blockchain

License

Notifications You must be signed in to change notification settings

sbdh11/EstateChain

EstateChain - Next-Gen Real Estate Platform 🏠

License: MIT TypeScript React Solidity

EstateChain is a cutting-edge decentralized real estate platform built on Ethereum blockchain. It revolutionizes property transactions through smart contracts, NFTs, and advanced features for a seamless real estate experience. This is just a basic generic idea I wanted to create, it isn't fully perfect yet but I wanted to implement it anyway

🌟 Features

Core Features

  • NFT-based Property Ownership: Each property is represented as a unique NFT with detailed metadata
  • Property Tokenization: Fractional ownership of real estate properties
  • Property Verification: On-chain property verification and documentation
  • Rental Management: Automated rental collection and management
  • Property Insurance: Integrated decentralized insurance options
  • Market Analytics: Real-time property market analytics and trends

πŸ› οΈ Technology Stack

Smart Contracts

  • Solidity ^0.8.20
  • OpenZeppelin Contracts
  • Hardhat Development Environment
  • TypeChain for TypeScript bindings

Frontend

  • React 18 with TypeScript
  • Chakra UI for modern design
  • Ethers.js v6 for blockchain interaction
  • React Query for server state management

Development Tools

  • ESLint & Prettier for code formatting
  • Jest & React Testing Library
  • Hardhat Network
  • TypeScript for type safety
  • Solidity Coverage for contract testing

πŸš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • MetaMask or similar Web3 wallet
  • Git

Installation

  1. Clone the repository:
git clone https://github.com/sbdh11/EstateChain.git
cd estate-chain
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.example .env
# Edit .env with your configuration

Development

  1. Start local blockchain:
npm run node
  1. Deploy contracts to local network:
npm run deploy:local
  1. Start development server:
npm start

Testing

Run smart contract tests:

npm run test:contracts

Run frontend tests:

npm test

Generate coverage report:

npm run coverage

Deployment

Deploy to testnet:

npm run deploy:testnet

Deploy to mainnet:

npm run deploy:mainnet

πŸ“ Project Structure

estate-chain/
β”œβ”€β”€ blockchain/                   
β”‚   β”œβ”€β”€ contracts/                 # Smart contracts
β”‚   β”‚   β”œβ”€β”€ tokens/                # Token contracts
β”‚   β”‚   β”‚   β”œβ”€β”€ PropertyToken.sol
β”‚   β”‚   β”‚   └── GovernanceToken.sol
β”‚   β”‚   β”œβ”€β”€ core/               
β”‚   β”‚   β”‚   β”œβ”€β”€ PropertyRegistry.sol
β”‚   β”‚   β”‚   β”œβ”€β”€ PropertyValuation.sol
β”‚   β”‚   β”‚   └── RentalManagement.sol
β”‚   β”‚   β”œβ”€β”€ governance/           # Governance contracts
β”‚   β”‚   β”‚   β”œβ”€β”€ DAO.sol
β”‚   β”‚   β”‚   └── Timelock.sol
β”‚   β”‚   └── interfaces/           # Contract interfaces
β”‚   β”œβ”€β”€ scripts/                  # Deployment scripts
β”‚   β”‚   β”œβ”€β”€ deploy/
β”‚   β”‚   └── verify/
β”‚   └── test/                     # Contract tests
β”‚       β”œβ”€β”€ unit/
β”‚       └── integration/
β”œβ”€β”€ frontend/                      # Frontend application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ assets/              
β”‚   β”‚   β”‚   β”œβ”€β”€ images/
β”‚   β”‚   β”‚   └── styles/
β”‚   β”‚   β”œβ”€β”€ components/           # React components
β”‚   β”‚   β”‚   β”œβ”€β”€ common/          
β”‚   β”‚   β”‚   β”œβ”€β”€ layout/           
β”‚   β”‚   β”‚   └── features/       
β”‚   β”‚   β”œβ”€β”€ config/            
β”‚   β”‚   β”œβ”€β”€ hooks/               
β”‚   β”‚   β”œβ”€β”€ pages/              
β”‚   β”‚   β”œβ”€β”€ services/           
β”‚   β”‚   β”œβ”€β”€ types/               
β”‚   β”‚   └── utils/             
β”‚   β”œβ”€β”€ public/                  
β”‚   └── test/                   
β”œβ”€β”€ packages/                    
β”‚   β”œβ”€β”€ types/                
β”‚   └── utils/                   
β”œβ”€β”€ docs/                      
β”‚   β”œβ”€β”€ api/                     
β”‚   β”œβ”€β”€ contracts/               
β”‚   └── guides/                  
└── tools/                       
    β”œβ”€β”€ scripts/                 
    └── config/                  

🀝 Contributing

We welcome contributions from the community! Please read our Contributing Guidelines and Code of Conduct before getting started.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

About

πŸ› οΈ Decentralized real estate platform built on Ethereum blockchain

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published