A modern, hybrid platform bridging traditional real estate rental with the security and transparency of Blockchain technology.
The Real Estate Rental Platform is a cutting-edge solution designed to revolutionize the property rental market. By combining a robust Microservices architecture with Blockchain smart contracts, we offer a hybrid ecosystem that ensures transparency, security, and efficiency.
Note
Scope: This repository contains the Frontend application built with Angular and Nx. It interacts with a Java Spring Boot backend (Microservices) for off-chain data and Ethereum Smart Contracts for on-chain transactions.
- Transparency: All rental agreements and transactions are immutable and verifiable on the blockchain.
- Security: Smart contracts automate payments and dispute resolutions, reducing fraud.
- Efficiency: A seamless user experience for listing, searching, and renting properties.
This project serves as a comprehensive demonstration of a Web3-enabled Enterprise Application, showcasing best practices in modern frontend development and blockchain integration.
Experience a modern, responsive interface designed for both desktop and mobile users.
The main dashboard provides easy access to property listings, user profiles, and rental management.
- Interactive Listings: Browse properties with rich details and images.
- Map Search: Location-based search using Leaflet maps.
- Owner Dashboard: Create, edit, and manage property listings easily.
- Smart Rental Agreements: Automatically generate and sign contracts on the Ethereum blockchain.
- Crypto Payments: Secure rent payments using Ether (ETH).
- Decentralized Identity: Wallet-based authentication and verification.
- Responsive Design: Fully optimized for desktop and mobile devices.
- Real-time Notifications: Instant updates on booking status and contract changes.
- User Profiles: Comprehensive dashboard for tenants and owners.
The project follows a Hybrid Architecture leveraging the best of Web2 and Web3:
graph TD
User[User Browser] -->|HTTPS| Frontend[Angular Nx Frontend]
Frontend -->|REST API| Gateway[API Gateway]
Gateway -->|HTTP| Microservices[Spring Boot Microservices]
Frontend -->|JSON RPC| Blockchain[Ethereum Blockchain]
Blockchain -->|Events| Frontend
- Frontend: Built with Angular 20 within an Nx Monorepo, ensuring modularity and scalability.
- Backend: A suite of Java Spring Boot microservices handling off-chain data (user profiles, property metadata).
- Blockchain: Solidity smart contracts on Ethereum for critical logic (agreements, payments).
- Framework: Angular 20
- Build System: Nx & Vite
- Language: TypeScript 5.9
- Library: Ethers.js v6
- Contracts: Solidity (ABI integration)
- Styling: SCSS (Modular & Global)
- Maps: Leaflet
- Icons: FontAwesome / Material Icons
- Unit Testing: Vitest
- Linting: ESLint + Prettier
Ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- MetaMask browser extension (for blockchain features)
-
Clone the repository:
git clone https://github.com/your-username/real-estate-rental.git cd real-estate-rental -
Install dependencies:
npm install
-
Configure Environment: Create a
.envfile or updatesrc/environments/environment.tswith your API endpoints and Blockchain contract addresses.
Start the Development Server:
npx nx serve public-appNavigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
Build for Production:
npx nx build public-appThe build artifacts will be stored in the dist/ directory.
The project uses an Nx Monorepo structure:
frontend/
├── apps/
│ └── public-app/ # Main Angular Application
│ ├── src/
│ │ ├── app/
│ │ │ ├── core/ # Singleton services, guards, interceptors
│ │ │ ├── features/# Feature modules (Auth, Properties, Rentals)
│ │ │ ├── shared/ # Reusable components and pipes
│ │ │ └── contracts/# ABI and Contract Addresses
│ │ └── environments/# Environment configuration
├── packages/
│ └── ui/ # Shared UI Library
├── tools/ # Nx tools and generators
└── nx.json # Nx Configuration
We welcome contributions! Please follow these steps:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'Add some amazing feature'). - Push to the branch (
git push origin feature/amazing-feature). - Open a Pull Request.
- Commits: Follow Conventional Commits.
- Style: Prettier and ESLint are enforced. Run
npx nx lint public-appbefore pushing.
- Mobile Application: React Native or Ionic integration.
- Advanced Governance: DAO for platform dispute resolution.
- Multi-chain Support: Expansion to Polygon or Arbitrum for lower fees.
- AI Integration: Price prediction and personalized recommendations.
Made with ❤️ by the Real Estate Rental Team