This project is a Real Estate Web Application that allows users to buy, sell, and rent properties. The application includes features such as user authentication, real-time chat, notifications, and property management.
- User Authentication (Register, Login, Logout)
- Real-time Chat using Socket.io
- Notifications using Zustand
- Property Management (Create, Read, Update, Delete)
- Search and Filter Properties
- Responsive Design
- Frontend: React, Zustand, React Router, Axios, Leaflet, Sass
- Backend: Node.js, Express, Prisma, MongoDB, JWT, Bcrypt
- Real-time Communication: Socket.io
- Deployment: render
- Node.js
- MongoDB
-
Clone the repository:
git clone https://github.com/heysaiyad/EstateLink.git cd EstateLink -
Install server dependencies:
npm install
-
Install client dependencies:
cd client npm install cd ..
-
Set up environment variables: Create a .env file in the root directory and add the following:
DATABASE_URL=<your_mongodb_connection_string> JWT_SECRET_KEY=<your_jwt_secret_key>
-
Run Prisma migrations:
npx prisma db push
-
Start the server:
npm start
-
Start the client:
cd client npm run dev
- Open your browser and navigate to
http://localhost:5173to access the application. - Register a new account or log in with an existing account.
- Explore properties, use the search and filter features, and manage your profile.
- Use the chat feature to communicate with other users in real-time.
- client: Contains the frontend code.
- controllers: Contains the backend controllers.
- middleware: Contains the middleware functions.
- routes: Contains the backend routes.
- lib: Contains the Prisma client setup.