Skip to content

Mirudull-D/Rent_Flow

Repository files navigation

Rent_Flow

Rent_Flow is a professional property management and rent tracking system built with Kotlin and Spring Boot. It provides a robust solution for managing buildings, units, tenants, and automated billing workflows.

Successfully handled 100 concurrent users with ~451 requests/sec, achieving a P90 latency of 125ms and P99 latency under 500ms on a self-hosted Dockerized Spring Boot deployment.


Documentation Suite

For detailed information, please refer to the specific guides in the docs/ folder:

  • Architecture & Design: Deep dive into the layered architecture, design patterns, and system components.
  • API Reference: Complete list of REST endpoints, request/response examples, and DTO structures.
  • Database Schema: Detailed ER diagrams and table definitions for the PostgreSQL backend.
  • Business Logic Guide: Detailed explanation of automated charge generation, occupancy rules, and financial status lifecycles.
  • Setup & Installation: Step-by-step instructions for setting up the local development environment.

Tech Stack

Layer Technology
Backend Kotlin + Spring Boot
Database PostgreSQL
ORM Spring Data JPA / Hibernate
Build Tool Gradle
Containerization Docker
Load Testing k6
Deployment Ubuntu Server

Core Features

  • Automated Billing: Schedule-based charge generation (Rent, Taxes, Utilities).
  • Property Hierarchy: Structured management from Buildings down to individual Units.
  • Financial Dashboard: Real-time insights into revenue, occupancy, and overdue payments.
  • Receipt Management: Integration with AWS S3 for secure payment document storage.
  • Kotlin-First: Leveraging Kotlin's expressive syntax and Spring Boot's powerful ecosystem.

Quick Start

  1. Clone & Setup:
    git clone https://github.com/your-username/Rent_Flow.git
    cd Rent_Flow
  2. Configure Database: Update application.properties with your PostgreSQL credentials.
  3. Run:
    ./gradlew bootRun

Docker Deployment

Build JAR

./gradlew build -x test

Build Docker Image

docker build -t rentflow .

Run Container

docker run -d \
-p 8080:8080 \
--name rentflow-app \
rentflow

View Logs

docker logs -f rentflow-app

Performance Benchmark

RentFlow was benchmarked using k6 against a Dockerized deployment running on Ubuntu Server.

Test Environment

  • Ubuntu Server 24.04
  • Docker Engine
  • PostgreSQL 16
  • Lenovo ThinkPad T450s
  • Intel i5
  • 8GB RAM

Load Test Configuration

  • Tool: k6
  • Concurrent Users: 100
  • Duration: 30 seconds
  • Throughput: ~451 requests/sec

Benchmark Results

Metric Result
Average Response Time 49ms
Median Response Time 12ms
P90 125ms
P95 289ms
P99 493ms
Max Response Time 810ms
Failed Requests 0%

Endpoints Benchmarked

  • GET /buildings
  • GET /buildings/{id}
  • GET /buildings/{id}/units
  • GET /tenants/{id}
  • GET /charge/tenant/{tenantId}
  • GET /charge-templates

Deployment Architecture

Client
   ↓
Ubuntu Server
   ↓
Docker Container
   ↓
Spring Boot Application
   ↓
PostgreSQL Database

About

Rent_Flow is a property management and rent tracking system built with Kotlin and Spring Boot. It provides a solution for managing buildings, units, tenants, and automated billing workflows.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors