Skip to content

ramzyq/rently

Repository files navigation

Rently

A rental household management app for landlords and tenants — built with Flutter and Firebase.


What it does

Rently gives landlords and tenants a single place to manage everything about a tenancy. Landlords get a dashboard view across all their properties. Tenants get a clear view of their unit, lease, and payment history. Both sides get notified automatically when rent is due, overdue, or a lease is expiring.

Landlord features

  • Dashboard with all properties and tenancy statuses at a glance
  • Add properties, units, and tenants (manually by email or via invite code)
  • Confirm payments and view full payment history per tenant
  • Send and receive messages per tenancy thread
  • Automatic notifications sent on behalf of landlord when rent is due or overdue

Tenant features

  • View unit details, lease dates, and rent amount
  • Log payments and upload receipts
  • Message landlord directly within the app
  • Receive reminders before rent is due and alerts if overdue

Shared

  • Role-based auth — landlord and tenant see different views from the same login
  • In-app notification feed
  • Push notifications via Firebase Cloud Messaging
  • SMS alerts via Twilio

Tech stack

Layer Technology
Mobile app Flutter
Auth Firebase Authentication (Email + Google Sign-In)
Database Cloud Firestore
File storage Firebase Storage (payment receipts)
Push notifications Firebase Cloud Messaging
Scheduled alerts Firebase Cloud Functions
SMS Twilio
State management Riverpod
Navigation GoRouter

Project structure

lib/
  main.dart
  firebase_options.dart
  app.dart                    ← MaterialApp + GoRouter setup

  core/
    auth/
      auth_service.dart       ← sign in, sign up, sign out, Google auth
      auth_gate.dart          ← redirects user by role on login
    models/
      user_model.dart
      tenancy_model.dart
      payment_model.dart
      message_model.dart
    services/
      firestore_service.dart
      notification_service.dart
      invite_service.dart

  features/
    auth/
      login_screen.dart
      register_screen.dart
    landlord/
      dashboard_screen.dart
      tenant_detail_screen.dart
      add_tenancy_screen.dart
      payments_screen.dart
    tenant/
      my_unit_screen.dart
      payment_history_screen.dart
      messages_screen.dart
    shared/
      notifications_screen.dart
      message_thread_screen.dart

Firestore data model

users/{uid}
  role: "landlord" | "tenant"
  name, email, fcmToken

properties/{propertyId}
  landlordId, name, address

units/{unitId}
  propertyId, landlordId, unitNumber

tenancies/{tenancyId}
  unitId, landlordId, tenantId
  rentAmount, rentDueDay
  leaseStart, leaseEnd
  status: "active" | "overdue" | "expiring" | "ended"

payments/{paymentId}
  tenancyId, tenantId
  amount, paidAt
  confirmedByLandlord, receiptUrl

messages/{threadId}
  tenancyId, participants: [landlordId, tenantId]

  msgs/{msgId}
    senderId, text, sentAt

notifications/{notifId}
  userId, type, message, read, createdAt

inviteCodes/{code}
  unitId, landlordId, used, expiresAt

Getting started

Prerequisites

dart pub global activate flutterfire_cli

Setup

# Clone the repo
git clone https://github.com/YOUR_USERNAME/rently.git
cd rently

# Install dependencies
flutter pub get

# Connect to Firebase
flutterfire configure

# Run the app
flutter run

Environment note

firebase_options.dart, google-services.json, and GoogleService-Info.plist are excluded from version control. Run flutterfire configure to generate them locally.


Build roadmap

  • Project setup
  • Firebase Auth — email + Google, role assignment
  • GoRouter role gate
  • Landlord dashboard
  • Add property / unit / tenancy flow
  • Invite code generation
  • Tenant unit view
  • Payment logging + receipt upload
  • In-app messaging
  • In-app notifications
  • FCM push notifications
  • Cloud Functions — scheduled rent alerts
  • Twilio SMS integration

License

MIT

About

Flutter app for landlords and tenants to manage rentals, payments, and lease notifications.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors