Skip to content

A full-featured MERN stack house rental website with user authentication, property listings, CRUD operations, and image management.

License

Notifications You must be signed in to change notification settings

AAYUSH412/Real-Estate-Website

BuildEstate Logo

🏠 BuildEstate

Typing SVG

License Node.js React MongoDB

TypeScript TailwindCSS Docker AI Powered

Live Demo API Docs Admin Panel Setup Guide

GitHub Stars GitHub Forks GitHub Issues License

πŸ€– ⚑ πŸ”’ πŸ“±
AI-Powered Lightning Fast Secure Responsive
Smart property analysis Vite + React 18 JWT Authentication Mobile-first design

🌟 Overview

BuildEstate is a cutting-edge, full-stack real estate platform that transforms property discovery and management through AI-powered insights, seamless user experience, and comprehensive administrative tools.

🎯 Key Features

πŸ” Smart Property Search

  • AI-enhanced search algorithms
  • Intelligent filtering & recommendations
  • Predictive property matching
  • Real-time market insights

πŸ€– AI Integration

  • Property valuation analysis
  • Market trend predictions
  • Investment opportunity scoring
  • Automated property descriptions

πŸ” Security & Authentication

  • JWT-based secure authentication
  • Role-based access control
  • Multi-factor authentication ready
  • Data encryption & privacy

πŸ“± Modern User Experience

  • Responsive design across all devices
  • Progressive Web App (PWA) ready
  • Dark/Light mode switching
  • Smooth animations & transitions

πŸ“Š Analytics Dashboard

  • Real-time property analytics
  • User engagement metrics
  • Revenue tracking & reporting
  • Interactive data visualizations

πŸ“§ Communication System

  • Automated email notifications
  • In-app messaging system
  • Appointment scheduling
  • Lead management tools

πŸ—οΈ System Architecture

graph TB
    subgraph "🌐 Frontend Layer"
        A[User Portal<br/>React 18 + Vite<br/>Port: 5173]
        B[Admin Dashboard<br/>React 18 + Chart.js<br/>Port: 5174]
    end
    
    subgraph "βš™οΈ Backend Layer"
        C[API Server<br/>Express.js + Node.js<br/>Port: 4000]
        D[AI Services<br/>Azure AI + OpenAI]
        E[Email Service<br/>Nodemailer + SMTP]
    end
    
    subgraph "πŸ’Ύ Data Layer"
        F[(MongoDB Atlas<br/>Database)]
        G[ImageKit CDN<br/>Media Storage]
    end
    
    A --> C
    B --> C
    C --> D
    C --> E
    C --> F
    C --> G
    
    style A fill:#61DAFB,stroke:#333,stroke-width:2px,color:#000
    style B fill:#FF6B6B,stroke:#333,stroke-width:2px,color:#000
    style C fill:#339933,stroke:#333,stroke-width:2px,color:#fff
    style D fill:#FF9500,stroke:#333,stroke-width:2px,color:#000
    style E fill:#EA4335,stroke:#333,stroke-width:2px,color:#fff
    style F fill:#47A248,stroke:#333,stroke-width:2px,color:#fff
    style G fill:#0066CC,stroke:#333,stroke-width:2px,color:#fff
Loading

πŸ”§ Technology Stack

🏷️ Category ⚑ Technologies 🎯 Purpose πŸ“Š Status
Frontend React Vite Tailwind User-facing property portal 🟒 Production Ready
Admin Panel React Chart.js Tailwind Management dashboard 🟒 Production Ready
Backend Node.js Express JWT API server & business logic 🟒 Production Ready
Database MongoDB Mongoose Data persistence & modeling 🟒 Production Ready
AI Services Azure OpenAI HuggingFace Property analysis & insights 🟑 Beta
DevOps Docker Vercel GitHub Actions Deployment & CI/CD 🟒 Active

πŸš€ Quick Start

⚑ One-Command Setup

Setup Time

πŸ“‹ Prerequisites Checklist

🎯 Lightning Fast Setup

# πŸ”₯ Clone the repository
git clone https://github.com/AAYUSH412/Real-Estate-Website.git
cd Real-Estate-Website

# ⚑ Install all dependencies and start development servers
npm run setup && npm run dev

πŸŽ‰ That's it! Your development environment is ready!

Frontend
localhost:5173
Admin
localhost:5174
API
localhost:4000

πŸ”§ Manual Setup (Advanced)

# Backend setup
cd backend
npm install
cp .env.example .env.local
# Configure your .env.local file (see configuration section)
npm run dev

# Frontend setup (new terminal)
cd frontend
npm install
npm run dev

# Admin panel setup (new terminal)
cd admin
npm install
npm run dev

πŸ”§ Configuration

Easy Configuration

🌍 Environment Variables

Each application requires environment configuration. Here's a quick reference:

πŸ”§ Backend (.env.local) 🌐 Frontend (.env.local) πŸ‘¨β€πŸ’Ό Admin (.env.local)
# πŸ—„οΈ Database
MONGO_URI=your_mongodb_connection

# πŸ” Security
JWT_SECRET=your_jwt_secret

# πŸ“§ Email Service
SMTP_USER=your_smtp_user
SMTP_PASS=your_smtp_password

# πŸ–ΌοΈ Image Storage
IMAGEKIT_PUBLIC_KEY=your_key
IMAGEKIT_PRIVATE_KEY=your_key
IMAGEKIT_URL_ENDPOINT=your_url

# πŸ€– AI Services (Optional)
HUGGINGFACE_API_KEY=your_key
OPENROUTER_API_KEY=your_key
FIRECRAWL_API_KEY=your_key
# 🌐 API Configuration
VITE_API_BASE_URL=http://localhost:4000

# 🏷️ App Settings
VITE_APP_NAME=BuildEstate

# 🎨 Customization
VITE_THEME_COLOR=#3B82F6
VITE_BRAND_NAME=BuildEstate
# πŸ”— Backend Connection
VITE_BACKEND_URL=http://localhost:4000

# πŸ‘¨β€πŸ’Ό Admin Settings
VITE_ADMIN_EMAIL=admin@buildestate.com
VITE_ADMIN_NAME=BuildEstate Admin

πŸ“– Need detailed configuration? Check our Complete Setup Guide for comprehensive environment setup with examples.

πŸ› οΈ Service Setup Guides

πŸ“± Applications Overview

Microservices

🌐 Frontend Portal

Frontend Port

Modern Property Discovery Platform

  • 🏠 Interactive property browsing
  • πŸ” AI-powered search & filtering
  • πŸ‘€ User authentication & profiles
  • πŸ“… Appointment booking system
  • 🎨 Progressive Web App (PWA)
  • πŸ“± Mobile-first responsive design
  • ⚑ SEO optimized with structured data
View Frontend

πŸ‘¨β€πŸ’Ό Admin Dashboard

Admin Port

Comprehensive Management Hub

  • πŸ“Š Real-time analytics dashboard
  • 🏠 Property management (CRUD)
  • πŸ‘₯ User & appointment management
  • πŸ“ˆ Interactive charts & reports
  • πŸ”§ System configuration tools
  • πŸ“€ Bulk operations & data export
  • 🎯 Role-based access control
View Admin

βš™οΈ API Server

Backend Port

Robust Backend Infrastructure

  • πŸš€ RESTful API with 50+ endpoints
  • πŸ” JWT authentication system
  • πŸ€– AI service integrations
  • πŸ“§ Email notification system
  • πŸ–ΌοΈ Image upload & processing
  • πŸ›‘οΈ Security & rate limiting
  • πŸ“Š Request logging & monitoring
View API

πŸ”§ Tech Stack Breakdown

🌐 Frontend Technologies

React 18          β†’ Modern component-based architecture
Vite             β†’ Lightning-fast build tool & dev server  
TailwindCSS      β†’ Utility-first CSS framework
Framer Motion    β†’ Smooth animations & transitions
React Router v7  β†’ Client-side navigation
Axios            β†’ HTTP client for API calls
React Context    β†’ Global state management
React Helmet     β†’ SEO meta tag management

πŸ‘¨β€πŸ’Ό Admin Panel Technologies

React 18         β†’ Component-based UI framework
Chart.js         β†’ Interactive data visualizations
TailwindCSS      β†’ Consistent design system
Flowbite React   β†’ UI component library
React Hot Toast  β†’ Notification system
Lucide React     β†’ Modern icon library
Framer Motion    β†’ Smooth page transitions

βš™οΈ Backend Technologies

Node.js 18+      β†’ JavaScript runtime environment
Express.js       β†’ Web application framework
MongoDB          β†’ NoSQL document database
Mongoose         β†’ ODM for MongoDB
JWT              β†’ JSON Web Token authentication
Bcrypt           β†’ Password hashing
Multer           β†’ File upload middleware
Nodemailer       β†’ Email delivery system
Helmet           β†’ Security headers
CORS             β†’ Cross-origin resource sharing

πŸ› οΈ Development

Developer Friendly

πŸš€ Available Scripts

πŸ”₯ Development πŸ—οΈ Building 🧹 Maintenance 🐳 Docker
# Start all services
npm run dev

# Individual services
npm run dev:backend
npm run dev:frontend  
npm run dev:admin

# Quick setup
npm run setup
# Build all apps
npm run build

# Individual builds
npm run build:backend
npm run build:frontend
npm run build:admin

# Production start
npm run start:prod
# Lint all code
npm run lint
npm run lint:fix

# Clean installs
npm run clean
npm run clean:build

# Health checks
npm run health
# Docker operations
npm run docker:build
npm run docker:up
npm run docker:down

# View logs
npm run docker:logs

🎯 Development Workflow

gitGraph
    commit id: "Initial Setup"
    branch feature/new-feature
    checkout feature/new-feature
    commit id: "Add Feature"
    commit id: "Write Tests"
    commit id: "Update Docs"
    checkout main
    merge feature/new-feature
    commit id: "Deploy to Production"
Loading

Step-by-step process:

  1. 🍴 Fork the repository
  2. 🌿 Create a feature branch (git checkout -b feature/amazing-feature)
  3. ✍️ Commit your changes (git commit -m 'Add amazing feature')
  4. πŸ“€ Push to the branch (git push origin feature/amazing-feature)
  5. πŸ”€ Open a Pull Request

πŸ“‹ Code Standards

ESLint
Code Quality
Prettier
Code Formatting
Conventional Commits
Commit Messages
TypeScript
Type Safety

Commit Message Format:

type(scope): description

Examples:
feat(frontend): add property search filters
fix(backend): resolve authentication issue
docs(readme): update installation guide

πŸ“š Documentation Hub

Documentation
Setup Guide
Complete Setup Guide
Comprehensive installation & configuration
Admin Guide
Admin Panel Guide
Dashboard usage & management features
API Docs
API Documentation
Complete API reference & testing
Backend Docs
Backend Documentation
Architecture & deployment guide

πŸ“‹ Quick Reference Guides

πŸš€ Deployment Options

Platform Frontend Admin Panel Backend Database
🟒 Recommended Vercel Vercel Railway/Render MongoDB Atlas
🟑 Alternative Netlify Netlify Heroku Local MongoDB
🐳 Docker Self-hosted with Docker Compose

Quick Deploy Commands:

# Frontend to Vercel
cd frontend && vercel --prod

# Admin Panel to Vercel  
cd admin && vercel --prod

# Backend to Railway
# Connect your GitHub repository to Railway

πŸ”§ Environment Setup Templates

Backend Environment Template:

# Core Configuration
NODE_ENV=production
PORT=4000
MONGO_URI=mongodb+srv://username:password@cluster.mongodb.net/buildestate

# Authentication
JWT_SECRET=your-super-secure-jwt-secret-key-minimum-32-characters

# Email Service (Brevo)
SMTP_USER=your-email@smtp-brevo.com
SMTP_PASS=your-smtp-password

# Image Storage (ImageKit)
IMAGEKIT_PUBLIC_KEY=public_your_key_here
IMAGEKIT_PRIVATE_KEY=private_your_key_here
IMAGEKIT_URL_ENDPOINT=https://ik.imagekit.io/your_id/

# AI Services (Optional)
HUGGINGFACE_API_KEY=hf_your_key_here
OPENROUTER_API_KEY=sk-or-v1-your_key_here

🀝 Contributing

Contributors Welcome First Timers Friendly

We love contributions! Please see our Contributing Guidelines for details.

🌟 Ways to Contribute

Bug Reports
Report Issues
Found a bug? Let us know!
Feature Requests
Suggest Features
Have an idea? Share it!
Documentation
Improve Docs
Help others understand
Code
Write Code
Build awesome features

πŸš€ Quick Contribution Guide

  1. 🍴 Fork the repository
  2. πŸ“‹ Create an issue (if one doesn't exist)
  3. 🌿 Create your feature branch:
    git checkout -b feature/amazing-feature
  4. ✍️ Commit your changes:
    git commit -m 'feat: add amazing feature'
  5. πŸ“€ Push to your branch:
    git push origin feature/amazing-feature
  6. πŸ”€ Submit a Pull Request

πŸ† Hall of Fame

Thanks to all contributors who have made BuildEstate better! πŸŽ‰

Contributors

Become a contributor and see your avatar here!


πŸ“„ License & Author

οΏ½ License

This project is licensed under the MIT License

MIT License

Feel free to use, modify, and distribute

πŸ‘¨β€πŸ’» Author

Aayush Vaghela

GitHub Email

πŸ™ Acknowledgments

Open Source
Open Source Community
For amazing tools & libraries
Contributors
All Contributors
For making this project better
Tech Stack
Modern Technologies
React, Node.js, MongoDB & more
Best Practices
Industry Standards
Security, performance & accessibility

⭐ If you find BuildEstate helpful, please give it a star! ⭐

GitHub Stars

Your support motivates us to keep building awesome features! πŸš€


Footer Message

About

A full-featured MERN stack house rental website with user authentication, property listings, CRUD operations, and image management.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages