An open API service indexing awesome lists of open source software.

https://github.com/aayush412/real-estate-website

A full-featured MERN stack house rental website with user authentication, property listings, CRUD operations, and image management.
https://github.com/aayush412/real-estate-website

authentication authentication-backend crud crud-api crud-application house-rental-system mern real-estate real-estate-management real-estate-platform real-estate-website

Last synced: 8 days ago
JSON representation

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

Awesome Lists containing this project

README

        



BuildEstate Logo





Typing SVG



> ### Premium Real Estate Platform with AI-Powered Insights

[![React](https://img.shields.io/badge/React-18-61DAFB?style=for-the-badge&logo=react&logoColor=white&labelColor=20232A)](https://reactjs.org/)
[![Node.js](https://img.shields.io/badge/Node.js-16+-339933?style=for-the-badge&logo=nodedotjs&logoColor=white&labelColor=20232A)](https://nodejs.org/)
[![MongoDB](https://img.shields.io/badge/MongoDB-4.4+-47A248?style=for-the-badge&logo=mongodb&logoColor=white&labelColor=20232A)](https://www.mongodb.com/)
[![TailwindCSS](https://img.shields.io/badge/TailwindCSS-3-06B6D4?style=for-the-badge&logo=tailwindcss&logoColor=white&labelColor=20232A)](https://tailwindcss.com/)
[![Framer Motion](https://img.shields.io/badge/Framer_Motion-0055FF?style=for-the-badge&logo=framer&logoColor=white&labelColor=20232A)](https://www.framer.com/motion/)

Live Demo
Installation Guide
Report Bug
Contribute


BuildEstate Demo




## ✨ Key Features



🏠 User Experience



  • Advanced property search with multiple filters

  • Virtual property tours with image galleries

  • Secure user authentication system

  • Interactive appointment scheduling

  • Favorites system with smart lists

  • Fully responsive across all devices




User Experience




🤖 AI-Powered Analysis



  • Smart property recommendations engine

  • Real-time market trend analysis

  • Investment insights with ROI predictions

  • Property valuation and comparison tools

  • Location-based appreciation forecasts

  • Dynamic visualization of property data




AI Analysis




👩‍💼 Admin Dashboard



  • Comprehensive analytics and reporting

  • Property management with bulk operations

  • Appointment tracking and management

  • User activity monitoring

  • Content management system

  • Sales performance metrics




Admin Dashboard

🎭 Interactive Animations



BuildEstate features expertly crafted animations that enhance the user experience:



  • Page Transitions: Smooth fade and slide transitions between routes


  • UI Micro-interactions: Subtle feedback animations for all user actions


  • Content Reveal: Staggered animations for list items and content sections


  • Data Visualization: Progressive chart animations with interactive tooltips


  • Image Galleries: Fluid carousels with zoom capabilities


  • Loading States: Attractive loading skeletons and transitions

All animations are performance-optimized using Framer Motion's best practices for smooth experiences on all devices.

## 🛠️ Technology Stack

### Frontend
![React 18](https://img.shields.io/badge/React-18-61DAFB?style=flat-square&logo=react)
![TailwindCSS](https://img.shields.io/badge/TailwindCSS-3-06B6D4?style=flat-square&logo=tailwindcss)
![Framer Motion](https://img.shields.io/badge/Framer_Motion-black?style=flat-square&logo=framer)
![React Router](https://img.shields.io/badge/React_Router-CA4245?style=flat-square&logo=reactrouter)
![Axios](https://img.shields.io/badge/Axios-5A29E4?style=flat-square&logo=axios)
![Context API](https://img.shields.io/badge/Context_API-61DAFB?style=flat-square&logo=react)

### Backend
![Node.js](https://img.shields.io/badge/Node.js-339933?style=flat-square&logo=nodedotjs)
![Express](https://img.shields.io/badge/Express-000000?style=flat-square&logo=express)
![MongoDB](https://img.shields.io/badge/MongoDB-47A248?style=flat-square&logo=mongodb)
![JWT](https://img.shields.io/badge/JWT-000000?style=flat-square&logo=jsonwebtokens)
![Nodemailer](https://img.shields.io/badge/Nodemailer-30B980?style=flat-square&logo=nodemailer)

### AI Services
![Azure AI](https://img.shields.io/badge/Azure_AI-0078D4?style=flat-square&logo=microsoftazure)
![Firebase](https://img.shields.io/badge/FirecrawlJS-FFA500?style=flat-square&logo=firebase)
![OpenAI](https://img.shields.io/badge/OpenAI-412991?style=flat-square&logo=openai)
![HuggingFace](https://img.shields.io/badge/HuggingFace-FF9A00?style=flat-square&logo=huggingface)

### DevOps & Deployment
![Docker](https://img.shields.io/badge/Docker-2496ED?style=flat-square&logo=docker)
![Vercel](https://img.shields.io/badge/Vercel-000000?style=flat-square&logo=vercel)
![GitHubActions](https://img.shields.io/badge/GitHub_Actions-2088FF?style=flat-square&logo=github-actions)

## 📋 Project Overview

BuildEstate is a modern real estate platform that combines traditional property listing features with cutting-edge AI technology. The platform helps users find their ideal properties while providing valuable investment insights through machine learning algorithms.

The application consists of three main parts:
- **Frontend:** User-facing website with property listings and AI analysis tools
- **Admin Dashboard:** Comprehensive management interface for properties and users
- **Backend API:** Robust Express server with AI-powered data processing

Key differentiators include AI-powered property recommendations, real-time market analysis, and investment opportunity identification, all presented with fluid animations for an exceptional user experience.

## 🚀 Getting Started

### System Requirements

- **Node.js**: v16.0.0 or higher
- **npm** or **yarn**: Latest stable version
- **MongoDB**: v4.4 or higher (local or Atlas)
- **API Keys**: Azure AI, FirecrawlJS, OpenAI (optional)
- **Storage**: At least 500MB free disk space

### ⚙️ Installation

Step 1: Clone the repository

```bash
git clone https://github.com/AAYUSH412/Real-Estate-Website.git
cd Real-Estate-Website
```

Step 2: Environment configuration

Create the following environment files with these required variables:

**Backend (.env)**
```env
PORT=4000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
EMAIL=your_email_for_notifications
PASSWORD=your_email_password
AZURE_API_KEY=your_azure_ai_key
FIRECRAWL_API_KEY=your_firecrawl_api_key
NODE_ENV=development
IMAGEKIT_PUBLIC_KEY=your_imagekit_public_key
IMAGEKIT_PRIVATE_KEY=your_imagekit_private_key
IMAGEKIT_URL_ENDPOINT=your_imagekit_url
```

**Frontend (.env.local)**
```env
VITE_API_BASE_URL=http://localhost:4000
```

**Admin (.env.local)**
```env
VITE_BACKEND_URL=http://localhost:4000
```

> 💡 **Note:** For testing without AI services, you can set dummy API keys. The core functionality will work, but AI features will return mock data.

Step 3: Install dependencies

```bash
# Install all dependencies with a single command
npm run setup

# Or install each package separately
cd backend && npm install
cd ../frontend && npm install
cd ../admin && npm install
```

Step 4: Start development servers

```bash
# Start all services concurrently
npm run dev

# Or start each service separately
cd backend && npm run dev
cd frontend && npm run dev
cd admin && npm run dev
```

This will launch:
- 🌐 **Frontend**: http://localhost:5173
- 👩‍💼 **Admin Panel**: http://localhost:5174
- ⚙️ **Backend API**: http://localhost:4000

Step 5: Docker deployment (optional)

For containerized deployment:

```bash
# Build and start all containers
docker-compose up --build

# Or run just the backend
docker-compose up backend
```

Default ports will be mapped to host machine:
- Backend API: http://localhost:4000
- Frontend: http://localhost:3000
- Admin Panel: http://localhost:3001

💾 Database setup

The application will automatically set up the MongoDB collections on first run.

For local development with sample data:
```bash
# Import sample data (from project root)
cd backend
npm run seed
```

This will populate your database with sample properties, users, and appointments.

🔑 Default admin credentials

After running the seed script, you can log in to the admin panel with:

- **Email:** [email protected]
- **Password:** admin123

## 🧩 Application Structure

```
project/
├── admin/ # Admin dashboard React app
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── contexts/ # Auth and data contexts
│ │ ├── pages/ # Admin dashboard pages
│ │ └── services/ # API service layer
│ └── public/ # Static assets

├── backend/ # Express server and API
│ ├── config/ # Server configuration
│ ├── controller/ # Request handlers
│ ├── middleware/ # Express middleware
│ ├── models/ # Mongoose schemas
│ ├── routes/ # API routes
│ ├── services/ # External service integrations
│ └── utils/ # Helper utilities

└── frontend/ # User-facing React app
├── src/
│ ├── assets/ # Images and static resources
│ ├── components/ # UI components
│ ├── context/ # Application state management
│ ├── pages/ # Page components
│ ├── services/ # API client services
│ └── utils/ # Helper utilities
└── public/ # Static assets
```

## 📊 Feature Highlights




Properties
Active Users
Cities



### Property Search & Discovery

BuildEstate offers a sophisticated property search system with multiple filtering options:

- **Location-based search** with map integration
- **Price range filters** with dynamic market comparison
- **Property type categorization** (apartments, houses, villas, etc.)
- **Amenity-based filtering** with 15+ property features
- **Saved search preferences** for registered users

### AI-Powered Market Analysis


BuildEstate

The platform provides valuable insights using multiple AI models:

- **Price trend forecasting** for different neighborhoods
- **Rental yield calculations** based on historical data
- **Investment opportunity scoring** with ROI predictions
- **Neighborhood comparison** with multiple metrics
- **Personalized property recommendations**

All data visualizations feature smooth animations and interactive elements for better understanding.

### User Account Management

The platform offers comprehensive user account features:

- **Secure authentication** with JWT and refresh tokens
- **Profile customization** with saved preferences
- **Favorite properties** with smart categorization
- **Viewing appointment scheduling** and management
- **Email notifications** for account activities and property updates
- **Newsletter subscription** for market updates (opt-in)

## 💌 Newsletter Management

BuildEstate includes a newsletter system for property updates and market trends:

- **Subscription management** via user profile
- **Email preference center** for customizing update frequency
- **Market report delivery** with AI-generated insights
- **One-click unsubscribe** option in all emails
- **GDPR compliant** data storage and processing

> 💡 **Note about privacy:** All user data is stored securely and used only for the purposes explicitly stated in our privacy policy. Users can request data deletion at any time.

## 🛠️ Troubleshooting

Common Issues & Solutions

### Connection Issues
- **MongoDB Connection Fails**: Check your connection string in .env file and ensure your IP is whitelisted in MongoDB Atlas
- **API Endpoints Returning 404**: Verify the VITE_API_BASE_URL in frontend and admin .env files

### Authentication Problems
- **Admin Login Fails**: Try resetting the admin password using the backend utility:
```bash
cd backend
npm run reset-admin-password
```
- **JWT Token Errors**: Ensure the JWT_SECRET is identical on all deployment environments

### Image Upload Issues
- **Images Not Uploading**: Check ImageKit credentials and connectivity
- **File Size Errors**: Reduce image size to under 5MB

### AI Feature Limitations
- **AI Analysis Not Working**: Verify API keys for Azure and FirecrawlJS
- **Empty Recommendations**: The system needs at least 10 properties in database for meaningful recommendations

For additional help, [open an issue](https://github.com/AAYUSH412/Real-Estate-Website/issues/new) with detailed error information.

## 🖥️ Screenshots


Home Page
Property Listings


Property Details
AI Analysis

## 🏆 Project Activity



GitHub Streak



Contribution Snake Animation

## 🤝 Contributing

We welcome contributions to BuildEstate! Please follow these steps:

1. **Fork the repository**
2. **Create a feature branch:**
```bash
git checkout -b feature/amazing-feature
```
3. **Make your changes**
4. **Run tests:**
```bash
npm run test
```
5. **Commit your changes:**
```bash
git commit -m 'Add some amazing feature'
```
6. **Push to your branch:**
```bash
git push origin feature/amazing-feature
```
7. **Open a pull request**

Please read our [Contributing Guidelines](CONTRIBUTING.md) for more details.

### Code Style Standards

- We use ESLint and Prettier for code formatting
- Component-based architecture for UI elements
- Jest for unit testing
- Documentation required for all new features

## 📝 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## 🌟 Acknowledgements



[![React](https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB)](https://reactjs.org/)
[![Express](https://img.shields.io/badge/Express-000000?style=for-the-badge&logo=express&logoColor=white)](https://expressjs.com/)
[![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge&logo=mongodb&logoColor=white)](https://www.mongodb.com/)
[![TailwindCSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/)
[![Framer Motion](https://img.shields.io/badge/Framer_Motion-black?style=for-the-badge&logo=framer&logoColor=blue)](https://www.framer.com/motion/)
[![Lucide Icons](https://img.shields.io/badge/Lucide_Icons-43853D?style=for-the-badge)](https://lucide.dev/)

Special thanks to all contributors and the open source community.

## 📧 Contact & Support


GitHub
Email
Report Bug



BuildEstate Logo

Built with ❤️ by Aayush Vaghela


© 2025 BuildEstate. All Rights Reserved.