A modern, full-stack(MERN) real estate application that allows users to browse, search, and manage property listings. Built with modern web technologies to provide a seamless experience for both property seekers and real estate professionals.
Deployed Application: https://ubanto-realstate.onrender.com/signin
- User Authentication: Secure sign-in/sign-up functionality
- Property Listings: Browse and search through available properties
- Advanced Search: Filter properties by location, price, type, and features
- Property Details: Comprehensive property information with images
- User Dashboard: Manage saved properties and user preferences
- Responsive Design: Optimized for desktop and mobile devices
- Modern UI: Clean, intuitive interface for better user experience
- React.js
- Tailwind Css
- Redux Toolkit
- JavaScript (ES6+)
- Responsive Design
- Node.js
- Express.js
- RESTful API architecture
- MongoDB
- Render.com
- Node.js (v14 or higher)
- npm or yarn
- MongoDB (local or cloud instance)
git clone https://github.com/hamzanazir27/real-state-project.git
cd real-state-project
# Navigate to backend directory (if separate)
cd backend
npm install
# Navigate to frontend directory (if separate)
cd frontend
npm install
Create a .env file in the root directory and add the following:
# Database
MONGODB_URI=your_mongodb_connection_string
# JWT
JWT_SECRET=your_jwt_secret_key
# Server
PORT=5000
# Other API keys (if applicable)
CLOUDINARY_CLOUD_NAME=your_cloudinary_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
# Start backend server
npm run server
# Start frontend (in a new terminal)
npm run client
# Or run both concurrently
npm run dev
npm start
The application will be available at http://localhost:3000
real-state-project/
├── client/ # Frontend React application
│ ├── public/
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── services/ # API services
│ │ ├── utils/ # Utility functions
│ │ └── styles/ # CSS/SCSS files
│ └── package.json
├── server/ # Backend Node.js application
│ ├── controllers/ # Route controllers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ └── package.json
├── .env # Environment variables
├── .gitignore
└── README.md
POST /api/auth/register- User registrationPOST /api/auth/login- User loginGET /api/auth/profile- Get user profile
GET /api/properties- Get all propertiesGET /api/properties/:id- Get property by IDPOST /api/properties- Create new property (authenticated)PUT /api/properties/:id- Update property (authenticated)DELETE /api/properties/:id- Delete property (authenticated)
GET /api/properties/search- Search properties with filters
- Secure JWT-based authentication
- Password hashing with bcrypt
- Protected routes for authenticated users
- CRUD operations for properties
- Image upload and management
- Advanced search and filtering capabilities
- Responsive design for all devices
- Fast loading times
- Intuitive navigation and search
This project is deployed on Render.com. To deploy your own instance:
- Fork this repository
- Connect your GitHub account to Render
- Create a new web service
- Set environment variables in Render dashboard
- Deploy!
Make sure to set the following environment variables in your deployment platform:
MONGODB_URIJWT_SECRETNODE_ENV=production
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Hamza Nazir
- GitHub: @hamzanazir27
- LinkedIn: [https://www.linkedin.com/in/hamzanazir1/]