← Back to work

01 · Property management platform

RentMate

A full-stack rental management system that brings maintenance requests, property bookings and tenant communication into one reliable workflow.

Led delivery as Scrum Master, built core React experiences and strengthened the application with automated testing and CI/CD.

  • React
  • Spring Boot
  • Java 21
  • Neon
  • Docker
View GitHub

How RentMate Works

RentMate is a full-stack property rental management platform designed to simplify interactions between tenants and property managers. It brings essential rental processes—including maintenance reporting, inspection bookings, and direct communication—into one centralised system.

1. User Authentication and Role-Based Access

The system begins with a secure login process. Once authenticated, users are directed to an interface based on their assigned role.

Tenants can access features related to their rental experience, such as submitting maintenance requests, arranging property bookings, and communicating with property managers. Property managers receive a management-focused interface where they can review tenant requests, monitor bookings, respond to messages, and update the progress of reported issues.

This separation ensures that each user can only access the information and functionality relevant to their responsibilities.

2. Role-Based Dashboards

Once authenticated, each user lands on a dashboard tailored to their role.

Tenants are presented with a dashboard that acts as the central access point for the platform. From here, they can navigate between maintenance requests, bookings, messages, and other property-related information. It gives tenants a clear overview of their recent activity, allowing them to check the progress of existing requests or begin a new action without navigating through multiple disconnected systems.

Property managers receive a management-focused dashboard where they can review tenant requests, monitor bookings, track properties, and update the progress of reported issues. This separation ensures that each user can only access the information and functionality relevant to their responsibilities.

3. Maintenance Request Workflow

When a tenant discovers an issue with their rental property, they can create a maintenance request through the platform. The tenant enters information about the problem, including its category, description, and other relevant details.

Once submitted, the React frontend sends the request to the Spring Boot backend through a REST API. The backend validates the submitted information and stores the request in the PostgreSQL database.

The property manager can then view the newly submitted request from their management interface. As the issue is reviewed and resolved, its status can be updated—for example, from submitted to in progress and eventually completed. The tenant can return to the platform at any time to monitor these updates, reducing the need for repeated emails or phone calls.

4. Property Booking Workflow

RentMate also allows tenants to arrange property-related appointments through a structured booking system. The tenant selects an available date or time and submits the booking through the application.

The backend processes the booking, verifies the submitted information, and records it in the database. The booking then becomes visible to the relevant users, providing both the tenant and property manager with a consistent record of the appointment.

This workflow helps prevent scheduling confusion and keeps booking information within the same platform as the rest of the rental process.

5. Tenant–Manager Messaging

The messaging feature provides a direct communication channel between tenants and property managers. Users can send and review messages related to maintenance, bookings, or general rental enquiries without relying on a separate communication platform.

Messages are processed by the backend and stored in the database, allowing conversations to remain available for future reference. By connecting communication with other rental functions, RentMate makes it easier for users to understand the context of an enquiry and follow its progress.

6. Backend and Data Flow

RentMate uses a layered full-stack architecture. The React frontend is responsible for displaying the user interface, collecting user input, and sending requests to the backend.

The Java 21 Spring Boot backend contains the application’s business logic and exposes REST API endpoints for the frontend. It validates incoming requests, processes user actions, controls access to system functionality, and communicates with the PostgreSQL database hosted through Neon.

A typical request follows this flow:

User action → React interface → REST API request → Spring Boot business logic → PostgreSQL database → API response → Updated interface

7. Testing and Development Workflow

The project includes automated testing across both the frontend and backend. Backend functionality was tested using JUnit 5, Mockito, Spring Boot Test, and MockMvc, while frontend components were tested using Jest and React Testing Library.

Docker was used to support a consistent development environment, while GitHub Actions provided automated checks through the project’s CI/CD workflow. These practices helped identify integration issues earlier and improved reliability throughout development.

My Contributions

RentMate was developed as a collaborative software engineering project. I contributed to the React implementation of key features, including maintenance requests, property bookings, and tenant–manager messaging. I also supported project documentation and testing.

Alongside development, I served as the Scrum Master and coordinated sprint planning, daily team communication, and retrospective discussions. This role allowed me to contribute to both the technical implementation and the organisation of the development process.