Domulink is a digital rental platform designed for Nigeria that connects landlords and tenants directly—eliminating middlemen, reducing agent fees, and minimizing rental fraud. It offers secure identity verification, property listings, tenant requests, digital agreements, and rent payment tracking—all in one platform.
# DomuLink
A digital rental platform for landlords and tenants in Nigeria.
## Overview
DomuLink is a comprehensive platform designed to streamline the rental process in Nigeria. It connects landlords with potential tenants, facilitates property listings, manages rental payments, and provides a secure environment for all rental-related transactions.
## Features
- User authentication and authorization with JWT
- Property listing and management
- Secure payment processing via PayStack
- File uploads with Cloudinary integration
- Email notifications
- Role-based access control (Admin, Landlord, Tenant)
- API documentation with Swagger UI
## Technologies Used
- **Java 17**
- **Spring Boot 3.4.4**
- Spring Security
- Spring Data JPA
- Spring Web
- Spring Mail
- Spring Validation
- Spring Data Redis
- **MySQL** - Database
- **Redis** - Caching
- **JWT** - Authentication
- **Cloudinary** - File storage
- **PayStack** - Payment processing
- **Swagger/OpenAPI** - API documentation
- **Lombok** - Reducing boilerplate code
- **Maven** - Dependency management and build
## Prerequisites
- Java 17 or higher
- MySQL 8.0 or higher
- Redis server
- Maven 3.6 or higher
## Setup and Installation
1. **Clone the repository**
```
git clone
github.com
cd domulink
```
2. **Configure environment variables**
Create a `.env` file in the project root with the following variables:
```
JWT_SECRET_KEY=your_jwt_secret_key
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
PAYSTACK_SECRET_KEY=your_paystack_secret_key
SPRING_MAIL_USERNAME=your_email@gmail.com
SPRING_MAIL_PASSWORD=your_email_app_password
```
3. **Configure database**
Update the database configuration in `application-dev.properties` if needed:
```
spring.datasource.url=jdbc:mysql://localhost:3306/domulink
spring.datasource.u …