ELLIURO PROPERTIES is a web platform inspired by Airbnb, allowing users to list, rent, or sell properties. Built with a microservices-based architecture, it focuses on scalability, complexity, and advanced backend features to solve real-world problems in property management.
- Customer: Search, filter, book properties, and leave reviews.
- Property Owner: List properties for rent/sale, manage availability, and respond to inquiries.
- Admin: Moderate listings, reviews, and manage platform settings.
- Support Agent: Resolve user issues and handle disputes.
- Property Listings: Add detailed property descriptions, photos, and availability.
- Search and Filters: Location-based search, pricing filters, and more.
- Booking System: Real-time availability and instant booking for rentals.
- Payment Integration: Secure payment handling via Stripe or PayPal.
- Dynamic Pricing: Adjust rental prices based on demand and market trends.
- Notifications: Email, SMS, and push notifications for updates.
- Ratings and Reviews: Customers can rate properties and provide feedback.
- Secure Payment Processing: Handle transactions securely with integrated payment gateways.
- User Verification: Enhance trust by verifying user identities and property ownership.
- Real-time Messaging: Enable direct communication between customers and property owners.
- Analytics Dashboard: Provide property owners with insights into listing performance.
- React.js: Responsive and dynamic UI.
- TypeScript: For type safety and better maintainability.
- TailwindCSS: For modern, responsive design.
- NestJS: Scalable, modular, and maintainable backend framework.
- REST API: Service-to-service communication.
- MySQL: Relational database for structured data.
- Redis: Caching for fast search results and session storage.
- Apache Kafka / RabbitMQ: Event-driven architecture.
- Docker & Kubernetes: For containerization and orchestration.
- Azure: Cloud hosting and deployment.
- NGINX: Load balancing and API gateway.
- Node.js: v16 or later
- Docker: Installed and running
- MySQL: Installed and configured
-
Clone the repository:
git clone https://github.com/shironzi/elliuro.git cd elliuro
-
Install dependencies:
cd frontend npm install cd ./backend npm install
-
Set up environment variables: Create a
.env
file in the root directory and add the following:DATABASE_URL=mysql://username:password@localhost:3306/elliuro REDIS_URL=redis://localhost:6379 STRIPE_SECRET_KEY=your-stripe-secret-key
-
Run database migrations:
npm run migrations
-
Run the development server:
npm run start:dev
-
Build and start the containers:
docker-compose up --build
-
Access the application at http://localhost:3000.
elliuro-properties/
├── backend/ # Microservices backend code
│ ├── user-service/ # Manages users and roles
│ ├── property-service/ # Handles property listings
│ ├── booking-service/ # Manages bookings
│ ├── payment-service/ # Handles payments
│ └── notification-service/ # Email/SMS notifications
├── frontend/ # React.js frontend
├── docker-compose.yml # Docker setup
├── README.md # Project documentation
└── .env # Environment variables
npm run start:dev
: Start the NestJS development server.npm run build
: Build the project for production.npm run test
: Run tests for the project.
- Microservices Architecture: Independent services for modularity.
- Event-Driven Design: Kafka/RabbitMQ for seamless communication.
- Database Partitioning: Schema design optimized for scalability.
- Load Balancing: NGINX distributes traffic efficiently.
We welcome contributions! Please follow the steps below:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Commit your changes and push to your fork.
- Open a pull request.
- Shironzi: Lead Developer
This project is licensed under the MIT License. See the LICENSE file for details.