- Overview
- Features
- Tech Stack
- Project Structure
- Prerequisites
- Setup and Installation
- Usage
- API Endpoints
- Deployment
- Contributing
- License
- Contact
ZA Real Estate is a cutting-edge, full-stack real estate application built by Zakariae Azarkan using the MERN stack (MongoDB, Express.js, React.js, Node.js) with Prisma as the ORM. This platform revolutionizes the way users interact with real estate listings, offering a seamless experience for property browsing, agent communication, and preference management.
- User Authentication: Secure sign-up and login functionality
- Property Listings: Comprehensive database of real estate offerings
- Advanced Search: Filter properties by location, price, amenities, and more
- Real-time Chat: Instant communication between users and agents
- User Profiles: Customizable profiles for personalized experiences
- Favorites and Saved Searches: Save and track preferred properties
- Responsive Design: Optimized for both mobile and desktop viewing
- Admin Dashboard: Efficient management of listings and user data
- Interactive Maps: Visualize property locations and nearby amenities
- Frontend: React.js, SASS
- Backend: Node.js, Express.js
- Database: MongoDB with Prisma ORM
- Authentication: JSON Web Tokens (JWT)
- Real-time Communication: Socket.io
- Maps Integration: Leaflet
- Cloud Services: Cloudinary
- Deployment: vercel, onrender
za-real-estate/
├── server/
│ ├── controllers/
│ ├── routes/
│ ├── middleware/
│ ├── models/
│ ├── services/
│ └── utils/
├── client/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── context/
│ │ ├── hooks/
│ │ ├── styles/
│ │ └── utils/
│ ├── public/
│ └── ...
├── prisma/
├── .gitignore
├── docker-compose.yml
├── package.json
├── README.md
└── ...
- Node.js (v14 or later)
- MongoDB
- npm or yarn
- Docker (optional, for containerization)
-
Clone the repository:
git clone https://github.com/zachary013/real-estate-app-mern cd za-real-estate
-
Install dependencies:
npm install cd client && npm install
-
Set up environment variables: Create a
.env
file in the root directory and add necessary variables:DATABASE_URL="your_mongodb_connection_string" JWT_SECRET="your_jwt_secret" MAPBOX_API_KEY="your_mapbox_api_key" AWS_S3_BUCKET="your_s3_bucket_name"
-
Set up the database:
npx prisma generate npx prisma db push
-
Start the development servers:
# In the root directory npm run dev # In a new terminal, navigate to the client directory cd client && npm start
After starting the development servers, you can access:
- The API at
http://localhost:8800
- The React frontend at
http://localhost:5173
To use the application:
- Sign up for an account or log in
- Browse property listings or use the search feature
- Save favorite properties and communicate with agents
- Manage your profile and preferences
/api/auth
- Authentication routes (login, register, logout)/api/users
- User management (profile, preferences)/api/list
- Property listings (CRUD operations)/api/messages
- Chat functionality/api/search
- Advanced search options
For detailed API documentation, refer to our API Docs.
-
Build the React frontend:
cd client && npm run build
-
Use Docker for easy deployment:
docker-compose up --build
-
Deploy to your preferred cloud platform (AWS, Heroku, DigitalOcean, etc.)
We welcome contributions to ZA Real Estate! Please follow these steps:
- Fork the repository
- Create a new branch:
git checkout -b feature-branch-name
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature-branch-name
- Submit a pull request
This project is licensed under the MIT License. See the LICENSE file for details.
Zakariae Azarkan - [email protected]
Project Link: https://github.com/zachary013/real-estate-app-mern
© 2024 Riviera Estate. All rights reserved.