RentDito

RentDito is a role-based rental operations platform that connects property discovery, tenant onboarding, contract management, and day-to-day property administration in one system. It streamlines the full leasing lifecycle for tenants, landlords, staff, and super admins while keeping billing, maintenance, and occupancy data in sync.

Core Objectives

Unified Rental Operations
RentDito centralizes the entire rental lifecycle so discovery, leasing, move-in, billing, and move-out all live in one workflow. The system is structured to reduce context-switching between disconnected tools and manual records.
Role-Aware Property Control
The app gives each user type a tailored workspace, with super admins, landlords, staff, and tenants seeing only the actions they should manage. Permission gates and tenancy-aware routing keep the UI aligned with real operational responsibilities.
Operational Visibility Through Data
RentDito turns property activity into trackable records, dashboards, and reports instead of scattered spreadsheets. Occupancy, bills, payments, tickets, contracts, and transfers are all modeled so managers can act on current state, not guesswork.

Public Discovery & Authentication

Marketing Landing Page Listings Browser

Marketing Landing

The landing page introduces the platform, highlights the rental experience, and routes authenticated users to the correct dashboard based on role.

Listings Browser

Public listing pages let visitors browse properties and drill into property or unit details before signing in.

Account Access

Login, register, forgot-password, and reset-password pages cover the full entry and recovery flow.

Theme Toggle

The public shell includes a light/dark mode switch for a more polished browsing experience.

Landlord & Staff Hub

Landlord Dashboard

Property & Unit CRUD

Landlords and staff can create, edit, list, and inspect properties and units through protected hub routes.

Tenant Detail & Checkout

The tenant detail page consolidates personal details, unit assignment, contract summary, and a checkout initiation dialog.

Billing & Financial Control

Bills, bill details, payment recording, utilities, and the financial dashboard keep rent collection visible and organized.

Operations Modules

Documents, inventory, tickets, transfers, security, team management, and reports are all exposed as separate operational screens.

Occupancy Overview

The hub dashboard summarizes total, active, vacant, and occupied units to give a quick operational snapshot.

Tenant Self-Service

Tenant Dashboard Inquiry Conversation

Inquiry Conversation

Regular users can track inquiries and continue message threads as they move through the rental pipeline.

Visit & Application Tracking

My Visits and My Applications provide personal status tracking for property viewings and rental applications.

Contract Viewing

Tenants can open and review active contracts from their own dashboard without needing staff intervention.

Account Transition

Verify Account and Become Landlord flows support identity verification and account upgrades for eligible users.

Architecture & Processing Flow

Sequential Processing Flow
Action Trigger React Hook to Service Axios (Retry + Token) Express Controller MongoDB Record UI Rerender

1. A user opens a role-specific screen or submits an action from a form, table, or dialog.
2. The corresponding React hook gathers state and calls a dedicated service in the application/infrastructure layer.
3. The shared Axios client attaches the access token, retries through the refresh-token queue on 401 responses, and normalizes errors.
4. The Express backend authenticates the request, validates payloads, and forwards the action to the relevant controller.
5. Controllers create, update, or fetch linked MongoDB documents such as Property, Unit, Contract, Tenancy, Bill, Payment, or Ticket.
6. The response returns to the client, services map Mongo _id values to id, local state updates, and the UI rerenders with the new tenancy or operational status.

The frontend is built as a layered architecture: presentation pages sit on top of application hooks, which depend on infrastructure services, which in turn communicate through a shared API client. That separation keeps data fetching, mapping, and UI rendering cleanly isolated, while ProtectedRoute and permission checks ensure the correct role sees the correct workspace.

On the backend, the data model is intentionally relational for MongoDB: records reference each other through ObjectIds, and lifecycle states are encoded with enums for contracts, tenancies, bills, payments, and tickets. A few smart schema choices stand out, including persisted property occupancy metrics, efficient query indexes, and a partial unique index on auto-generated bills to prevent duplicate charges for the same tenancy and billing period.

Project Impact

RentDito radically modernizes the lifecycle of property management by replacing fragmented spreadsheets, emails, and disconnected billing isolated systems with a unified, role-based ecosystem. From public listings and tenant onboarding to staff maintenance and checkout, it binds the entire tenancy pipeline into one highly visible platform.

For landlords and administrative staff, the application acts as an operational command center. By deeply coupling MongoDB relational schemas to handle automated bills, transaction metrics, and unit occupancy states, it ensures that property operations run with complete financial transparency and logistical certainty.

Ultimately, RentDito restores trust and simplicity between renters and administrators. By placing interactive dashboards, conversational ticketing, and cryptographic JWT sessions at the fingertips of all actors, it sets a powerful standard for efficiency, security, and communication in digital-first real estate operations.