EstateFlow is a full-stack Real Estate Management System built using the MERN Stack (MongoDB, Express.js, React.js, Node.js).
The platform allows buyers, agents, and administrators to interact in a secure environment where users can browse properties, agents can manage listings, and administrators can oversee the entire platform.
This project demonstrates industry-level architecture, authentication, CRUD operations, image uploads, role-based authorization, responsive UI, and scalable backend APIs.
- User Registration
- Secure Login
- JWT Authentication
- Password Hashing using bcrypt
- Forgot Password
- Reset Password
- Protected Routes
- Browse Properties
- Search Properties
- Filter by Location
- Filter by Price
- Filter by Category
- View Property Details
- Add Property
- Update Property
- Delete Property
- Upload Multiple Property Images
- Agent Dashboard
- Manage Own Listings
- Add New Properties
- Edit Existing Listings
- Delete Listings
- Track Published Properties
- Admin Dashboard
- Manage Users
- Manage Agents
- Manage Properties
- Delete Any Listing
- Platform Analytics
- Browse Available Properties
- Search Properties
- Save Favorite Properties
- View Detailed Property Information
- Contact Property Agent
- Mobile Friendly
- Tablet Responsive
- Desktop Optimized
- React.js
- React Router DOM
- Axios
- Tailwind CSS
- React Icons
- Node.js
- Express.js
- JWT Authentication
- bcrypt.js
- Cloudinary
- MongoDB
- Cloudinary (Image Upload)
- Brevo SMTP (Email Service)
EstateFlow/
│
├── backend/
│ ├── config/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── utils/
│ ├── server.js
│ └── package.json
│
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── context/
│ │ └── App.jsx
│ └── package.json
│
└── README.md
git clone https://github.com/jeshika311/EstateFlow.git
cd EstateFlowcd backend
npm installCreate a .env file inside the backend folder.
Example:
MONGO_URI=your_mongodb_connection_string
PORT=5000
JWT_SECRET=your_jwt_secret
BREVO_API_KEY=your_brevo_api_key
EMAIL_USER=your_email@gmail.com
CLOUD_NAME=your_cloudinary_cloud_name
CLOUD_KEY=your_cloudinary_api_key
CLOUD_SECRET=your_cloudinary_api_secretRun backend:
npm run devcd frontend
npm install
npm run dev| Variable | Description |
|---|---|
| MONGO_URI | MongoDB Atlas Connection |
| PORT | Backend Server Port |
| JWT_SECRET | JWT Secret Key |
| BREVO_API_KEY | Brevo Email API Key |
| EMAIL_USER | Sender Email |
| CLOUD_NAME | Cloudinary Cloud Name |
| CLOUD_KEY | Cloudinary API Key |
| CLOUD_SECRET | Cloudinary API Secret |
Contributions are always welcome.
-
Fork the repository
-
Create your feature branch
git checkout -b feature/NewFeature- Commit your changes
git commit -m "Added new feature"- Push
git push origin feature/NewFeature- Open a Pull Request
⭐ If you found this project useful, don't forget to star the repository!