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.
- Host: GitHub
- URL: https://github.com/aayush412/real-estate-website
- Owner: AAYUSH412
- License: mit
- Created: 2025-01-07T05:56:54.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-04-24T06:57:36.000Z (21 days ago)
- Last Synced: 2025-04-24T07:37:34.974Z (21 days ago)
- Topics: authentication, authentication-backend, crud, crud-api, crud-application, house-rental-system, mern, real-estate, real-estate-management, real-estate-platform, real-estate-website
- Language: JavaScript
- Homepage: https://buildestate.vercel.app
- Size: 15.3 MB
- Stars: 8
- Watchers: 1
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
![]()
> ### Premium Real Estate Platform with AI-Powered Insights
[](https://reactjs.org/)
[](https://nodejs.org/)
[](https://www.mongodb.com/)
[](https://tailwindcss.com/)
[](https://www.framer.com/motion/)
![]()
![]()
![]()
![]()
![]()
![]()
## ✨ 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

🤖 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

👩💼 Admin Dashboard
- Comprehensive analytics and reporting
- Property management with bulk operations
- Appointment tracking and management
- User activity monitoring
- Content management system
- Sales performance metrics

🎭 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






### Backend





### AI Services




### DevOps & Deployment



## 📋 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
### 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

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
## 🏆 Project Activity
## 🤝 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
[](https://reactjs.org/)
[](https://expressjs.com/)
[](https://www.mongodb.com/)
[](https://tailwindcss.com/)
[](https://www.framer.com/motion/)
[](https://lucide.dev/)
Special thanks to all contributors and the open source community.
## 📧 Contact & Support

Built with ❤️ by Aayush Vaghela
© 2025 BuildEstate. All Rights Reserved.