A modern full-stack real estate application built with React, Node.js, and Prisma. This application allows users to browse, search, and manage real estate listings with a beautiful and intuitive user interface.
Check out the live version of the project deployed on Vercel:
π https://real-estate-website-five-green.vercel.app/
- Modern and responsive UI built with React and Material-UI
- Interactive map integration using Leaflet
- Advanced search and filtering capabilities
- User authentication with Auth0
- Real-time property updates
- Property listing management
- Image gallery with Swiper
- Form validation with Formik and Yup
- RESTful API with Express.js
- Database management with Prisma
- React 18
- Vite
- Material-UI
- Mantine UI
- React Router DOM
- React Query
- Leaflet & React Leaflet
- Formik & Yup
- Framer Motion
- React Toastify
- Swiper
- Node.js
- Express.js
- Prisma ORM
- Auth0
- Cookie Parser
- CORS
- Clone the repository:
git clone [your-repository-url]
cd real-estate-project- Install dependencies for both client and server:
# Install client dependencies
cd client
npm install
# Install server dependencies
cd ../server
npm install- Set up environment variables:
Create a .env file in the server directory with the following variables:
DATABASE_URL="your-database-url"
AUTH0_AUDIENCE="your-auth0-audience"
AUTH0_ISSUER_BASE_URL="your-auth0-issuer-url"Create a .env file in the client directory with:
VITE_AUTH0_DOMAIN="your-auth0-domain"
VITE_AUTH0_CLIENT_ID="your-auth0-client-id"
VITE_API_URL="http://localhost:5000"- Start the backend server:
cd server
npm start- Start the frontend development server:
cd client
npm run devThe application will be available at http://localhost:5173
The API endpoints are available at http://localhost:5000/api. Key endpoints include:
- GET /api/properties- Get all properties
- GET /api/properties/:id- Get property by ID
- POST /api/properties- Create new property
- PUT /api/properties/:id- Update property
- DELETE /api/properties/:id- Delete property
- Fork the repository
- 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
This project is licensed under the MIT License - see the LICENSE file for details.