Project Overview
BuildEstate is an AI-powered real estate management system developed using the MERN Stack and Python Machine Learning. It provides a centralized platform for managing property listings, buyers, sellers, agents, appointments, inquiries, leads, and property valuations.
The application supports four user roles: Admin, Agent, Seller, and Buyer. It combines property management, interactive maps, machine learning-based price estimation, property recommendations, communication tools, analytics, and reporting in a responsive web interface.
Available Features
- Admin Dashboard: Manage users, create agent and administrator accounts, approve or reject property listings, monitor appointments and inquiries, review leads, analyze business statistics, and access administrative audit logs.
- Property Management: Create, edit, publish, and manage property listings. Upload up to 15 JPG, PNG, or WEBP images per listing, with a maximum size of 5 MB per image.
- Property Search and Filters: Filter properties by location, price, property type, area, bedrooms, and amenities. Explore grid and map views, save favorite properties and searches, view recently visited properties, and compare up to four properties.
- Interactive Property Maps: Select property locations using interactive maps powered by Leaflet and OpenStreetMap.
- Listing Approval: Manage property approval workflows and update listings to reflect sold or rented status.
- AI Property Valuation: Estimate property prices using a Python Machine Learning service with a Random Forest model trained on log-transformed price-per-square-foot values. Inputs include city, locality, property type, listing type, area, bedrooms, bathrooms, property age, and amenities.
- Valuation Insights: Display estimated prices, a 10th–90th percentile prediction range, a heuristic confidence indicator, and information about factors affecting the estimate.
- AI Property Descriptions: Generate property descriptions using an OpenAI-compatible API or a labelled template-based generator when an external AI endpoint is not configured.
- Market Analysis: Analyze platform listing trends, display labelled trend extrapolations, and identify potential investment opportunities when asking prices are at least 5% below model estimates.
- Property Recommendations: Recommend properties based on buyer preferences and browsing activity.
- Appointment Management: Book one-hour property visits, prevent scheduling conflicts, approve or reject requests, reschedule appointments, cancel bookings, and mark completed visits.
- Inquiry and Lead Management: Manage leads, reply to inquiries, record follow-up dates, and maintain notes for prospective buyers.
- In-App Chat and Notifications: Support polling-based conversations between buyers and staff, in-app notifications, configured email notifications, and scheduled appointment reminders.
- Analytics and Reports: Filter analytics by date, city, category, and agent. Export property, appointment, lead, and inquiry reports in CSV or PDF formats.
- Authentication and Security: Provide role-based access control, JWT authentication, password hashing, email verification, password-reset workflows, and email OTP-based multi-factor authentication when SMTP is configured.
- Additional Interface Features: Include dark and light themes, responsive layouts, pagination, upload restrictions, request rate limits, input validation, secure HTTP headers, and Progressive Web App support.
User Roles
Admin
Administrators manage users, create agent accounts, approve property listings, review audit logs, monitor business activities, and access analytics and reports.
Agent
Agents handle property-related inquiries, appointments, leads, and follow-up activities according to their assigned permissions.
Seller
Sellers submit and manage property listings, upload property images, maintain listing details, and use the available property description tools.
Buyer
Buyers explore properties, apply search filters, compare listings, save favorites and searches, receive recommendations, communicate with staff, and request property visits.
Technology Stack
- Frontend: React, Vite, Tailwind CSS, React Router, and Axios
- Backend: Node.js and Express.js
- Database: MongoDB with Mongoose
- Machine Learning Service: Python and FastAPI
- Machine Learning Libraries: scikit-learn, pandas, NumPy, and joblib
- Charts: Recharts
- Mapping: Leaflet and OpenStreetMap
- Authentication: JWT and bcrypt
- Email Services: Nodemailer
Software and Tools Required
- Node.js 18 or later, with Node.js 20 or 22 recommended
- Python 3.10 or later
- npm package manager
- MongoDB Community Server or MongoDB Atlas
- Visual Studio Code
- A modern web browser and terminal
The documented local addresses are http://localhost:8000 for the Machine Learning service, http://localhost:5000 for the backend, and http://localhost:5173 for the frontend.
Important Machine Learning Limitations
The supplied training workflow uses synthetic data for demonstration. Property price estimates are predictions rather than guaranteed market valuations. Platform listing comparisons and trend extrapolations should not be treated as verified sale prices. For practical valuation use, the model should be trained and validated using representative real-world property data.
Project Benefits
- Combines real estate workflows with a separate Python Machine Learning service.
- Centralizes property listings, inquiries, appointments, and lead management.
- Provides AI-based property valuation and description generation.
- Includes interactive maps, property comparison, and personalized recommendations.
- Offers database-backed analytics, CSV and PDF reports, and notifications.
- Demonstrates full-stack development using the MERN Stack and Python Machine Learning.
More Details and Full Documentation
For complete project details, screenshots, installation instructions, usage guidance, and demonstration credentials, visit the original UPDATEGADH project page.
More Details and Full Documentation
- Install Node.js 18 or later, Python 3.10 or later, MongoDB, npm, and Visual Studio Code.
- Extract the project ZIP file and open the buildestate folder in Visual Studio Code.
- Start MongoDB locally on port 27017 or prepare a MongoDB Atlas connection.
- Open the first terminal and navigate to the Machine Learning service: cd ml-service
- Create a Python virtual environment: python -m venv .venv
- Activate the environment on Windows: .venv\Scripts\activate
- Install the Machine Learning dependencies: pip install -r requirements.txt
- Generate the synthetic training dataset: python generate_data.py
- Train the Random Forest model: python train.py
- Start the FastAPI Machine Learning service: uvicorn app:app --port 8000
- Open a second terminal from the project root and navigate to the backend: cd backend
- Install backend dependencies: npm install
- Create the backend environment file in PowerShell: Copy-Item .env.example .env
- Open backend/.env and configure the MongoDB URI and a strong JWT secret. Configure SMTP and AI description API settings if those features are required.
- Seed the demonstration data: npm run seed. Warning: this command resets the specified demonstration collections and inserts synthetic records.
- Start the backend: npm run dev
- Open a third terminal from the project root and navigate to the frontend: cd frontend
- Install frontend dependencies: npm install
- Start the frontend: npm run dev
- Open http://localhost:5173 in your browser.
- Keep the Machine Learning service, backend, and frontend running while using the application.
- After running the backend seed command, sign in using the relevant demo account: Admin: admin@buildestate.test; Agent: agent1@buildestate.test or agent2@buildestate.test; Seller: seller@buildestate.test; Buyer: buyer1@buildestate.test.
- The documented demo password for all seeded accounts is Password@123. These accounts use synthetic demonstration data and must not be used in production.
- To enable email verification, password resets, and email OTP-based MFA, configure the SMTP settings in backend/.env.
- To enable API-based AI property descriptions, configure AI_DESCRIPTION_API_URL, AI_DESCRIPTION_API_KEY, and AI_DESCRIPTION_MODEL. Without these settings, the application uses its template generator.
- For model training with platform closed listings, run npm run export:training from the backend directory, then run python train.py --data data/platform_closed_listings.csv from the ml-service directory.
Stuck while running it? Chat with us on WhatsApp for free installation help.
No reviews yet. Be the first to review this project.