Rent Management Platform

Code
Rent Management Platform screenshot 1
Next.js 16
React 19
Supabase
Tailwind CSS
PostgreSQL
RLS
pg_cron

Multi-role rent management platform where tenants report monthly payments by uploading receipt proof and tracking approval status, while admins manage tenants, properties, balances, and announcements in a centralized dashboard.

Workflow Automation

Report → verify → approve/reject with consistent status transitions

Data Integrity

Balance updates handled via database transactions to prevent inconsistencies

Security

Supabase Postgres RLS for tenant isolation + role-based access controls

Operations

Notifications center (broadcast + targeted) for tenant communication

Use Cases

Property Managers / Administrators

Manage tenants, properties, rent rules, balances, and announcements through a centralized admin interface.

Tenants

Submit rent payments by uploading receipts, track approval status (pending / paid / rejected), and view historical payment records.

Operational Communication

Broadcast notifications to all tenants or send targeted messages per tenant for billing and operational updates.

Key Metrics & Impact

Workflow Automation

Automated the full report → verify → approve/reject payment lifecycle, with balance updates handled via database transactions.

Operational Efficiency

Reduced administrative overhead by consolidating rent tracking, receipts, payment history, and notifications into one system.

Financial Consistency

Ensured accurate tenant balances through atomic SQL operations, eliminating partial updates and inconsistent states.

Security & Isolation

Improved data separation and access control using PostgreSQL Row Level Security (RLS) combined with role-based permissions.

Technical Challenges Solved

Secure Access Control

Protected admin routes using Next.js middleware and enforced tenant/admin isolation with RLS across core tables (profiles, tenants, payments, notifications).

Receipt-Based Payment Flows

Implemented receipt uploads to Supabase Storage (payment-receipts) with a clear payment status lifecycle (pending, paid, notpaid).

Financial Transactions & Integrity

Developed atomic PL/pgSQL functions (approve_payment_transaction, reject_payment_transaction) to safely update payment status and tenant balances.

Recurring Rent Charging

Used pg_cron and apply_all_due_rents() to automatically apply rent charges based on each tenant’s rent_day, including notification generation.

User Profile Management

Enabled profile updates and avatar uploads using per-user storage folders (avatars) enforced via folder-based storage policies.

Technical Architecture

Technical Stack

Frontend

Next.js 16 (App Router), React 19, Tailwind CSS, Client & Server Components (SSR via @supabase/ssr)

Backend

Supabase (PostgreSQL, Auth, Storage), PostgreSQL RLS policies, PL/pgSQL functions, pg_cron for recurring rent operations

Infrastructure & Modules

Tenant module: Dashboard, Rent Status, Payments, Profile. Admin module: Tenants, Payments, Notifications.

Code & Data Model

DB Schema

PostgreSQL schema covering tenants, properties, rent rules, payments, balances, notifications, and user profiles.

Codebase

Production-ready codebase with transactional SQL logic, secure API boundaries, and clearly separated tenant/admin domains.

Ownership

Designed, implemented, and operated end-to-end as a production rent management system, covering data modeling, financial workflows, security, deployment, and long-term maintenance.