This project is a full-stack MERN (MongoDB, Express, React, Node.js) real estate application featuring secure authentication, user-managed listings, and advanced search and filtering. It is designed to replicate core functionality found in modern real estate platforms.
The application allows users to sign up, manage their profiles, create and edit real estate listings, and search properties using multiple filters and sorting options. Authentication is handled using JWT and Google OAuth, with protected routes for sensitive pages such as user profiles.
- Email and password login using JSON Web Tokens (JWT)
- Google OAuth integration for signup and login
- Client-side route protection for authenticated pages (e.g., profile)
- Update user information (username, email, password)
- Upload and change profile picture
- Persistent user data stored in MongoDB
- Create, edit, and delete property listings from the user profile
- Image slider for listing photos
- Contact option for potential buyers
- Search by listing title
- Sidebar filters for price, type, amenities, and other attributes
- Sorting options for results (e.g., price, newest)
- Deployed on Render
- Frontend: React, Vite
- Backend: Node.js, Express
- Database: MongoDB
- Authentication: JWT, Google OAuth
- Deployment: Render
-
Clone the repository.
-
Open two terminals and navigate to:
/api/client
-
In both directories, install dependencies and start development servers:
npm install npm run dev
-
Add your local IP address to MongoDB Atlas network access.
-
Configure environment variables for MongoDB URI, JWT secret, and Google OAuth credentials.
This project is intended as a full-stack practice application demonstrating authentication flows, CRUD operations, protected routes, and search functionality in a MERN architecture.