A modern real estate platform built with a microservices architecture that enables users to list, buy, and rent properties with an intuitive interface and secure authentication. The platform connects landlords and tenants, allowing them to interact via a built-in real-time chat system.
- User Authentication – Secure login and registration with JWT
- Property Listings – Users can add, edit, and delete property listings
- Search & Filters – Find properties based on location, price, size, and amenities
- Saved Listings – Users can save properties for future reference
- Real-time Chat – Instant messaging between property owners and potential buyers/tenants
- Interactive Maps – Property location visualization using Leaflet
- Rich Text Editor – Property descriptions with image support using TipTap
- Responsive Design – Mobile-friendly interface with Tailwind CSS
- Node.js - JavaScript runtime
- Express.js - Web framework
- Prisma ORM - Database toolkit
- MongoDB - NoSQL database
- Socket.IO - Real-time communication
- JWT - Authentication
- bcrypt - Password hashing
- React 19 - UI library
- Vite - Build tool
- React Router v7 - Client-side routing
- Tailwind CSS - Utility-first CSS framework
- Zustand - State management
- Socket.IO Client - Real-time communication
- Leaflet - Interactive maps
- TipTap - Rich text editor
- ESLint - Code linting
- Nodemon - Development server
- Vite - Frontend development server
/api
├─ controllers/ # Business logic handlers
├─ routes/ # API route definitions
├─ lib/ # Utility functions
├─ middleware/ # Authentication and error handling
├─ prisma/ # Database schema and migrations
└─ app.js # Main backend server
/client
├─ src/ # Source code
├─ public/ # Static assets
├─ node_modules/ # Dependencies
└─ vite.config.js # Vite configuration
/socket
├─ app.js # Socket.IO server
└─ node_modules/ # Dependencies
- Node.js (v18 or higher)
- MongoDB
- npm or yarn
git clone https://github.com/blitzbugg/propease.git
cd propeasecd api
npm installcd client
npm installcd socket
npm installCreate a .env file in the api directory:
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
PORT=5000cd api
npm run watchcd socket
npm run watchcd client
npm run devPOST /api/auth/register- Register a new userPOST /api/auth/login- Login and get JWT token
GET /api/properties- Get all propertiesPOST /api/properties- Create a new propertyGET /api/properties/:id- Get property detailsPUT /api/properties/:id- Update propertyDELETE /api/properties/:id- Delete property
GET /api/chat- Get chat historyPOST /api/chat- Start new chatGET /api/chat/:id- Get specific chat
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License.