Back to work

Live-operation product

SubTrack BH

An Android app I use every day to run a 37-subscriber internet business: payments, expiry dates and router access in one place.

Live · in daily operation 2026 Public repository
SubTrack BH internet subscription manager logo
Project cover.
Role
Founder & Lead Developer
Status
Live · in daily operation
Year
2026
Stack
Kotlin · Jetpack Compose · Room · Firebase · WorkManager · MikroTik RouterOS API · Payment webhooks

01 · Context

The problem

Subscriber names, packages, payments, expiry dates, balances and reconnections become unreliable when managed through memory, messages or separate records.

The response

SubTrack BH runs Leo’s live Starlink service end to end for 37 paying subscribers: a subscriber signs up, pays, and the platform verifies the payment and provisions or suspends network access on the router automatically. Room is the local source of truth, with Firebase services for accounts and messaging.

02 · Contribution

What I built

  • 01

    Modelled subscribers, rooms, plans, devices, payments, expenses, reminders and subscription windows.

  • 02

    Separated administration, subscriber, core, backend and Firebase concerns across project modules.

  • 03

    Added accounting, reconciliation, reporting, backup and PDF utilities.

  • 04

    Wired payment verification to router automation, so a confirmed subscription maps to real MikroTik bandwidth limits without manual work.

  • 05

    Designed the product around the actual workflow of operating the service.

03 · What it does

What it does
today.

Separate admin and subscriber Android apps
Room as the admin app's local source of truth
Subscriber, room, plan and device records
Payments, balances and subscription windows
Accounting, reports, backups and PDF utilities
Firebase authentication, Firestore, Storage and messaging
WorkManager background operations
Salted PIN security and failed-attempt lockout
Payment verification through provider webhooks
Automatic MikroTik access provisioning and suspension
Google sign-in for subscribers

04 · Engineering

Hard parts,
clear decisions.

Consistent account state

Payments, package duration, balances, expiry and reconnection rules must agree across screens instead of relying on a manually edited status label.

Admin/subscriber boundaries

The subscriber app must expose only account-safe, read-oriented functions while financial writes and business controls remain in the admin app.

Offline-first financial records

Local operation is essential during connectivity problems, while future synchronisation must avoid duplicate or conflicting financial records.

05 · Reflection

What I learned

Local-first Android architectureBusiness-rule modellingRoom persistenceApp boundary and permission designOperational product development

Planned or still in development

  • Complete subscriber invoices and payment history
  • Expanded closing, reconciliation and asset-management interfaces

Where it stands

SubTrack runs my internet service today, with 37 paying subscribers. Payments are verified in the app, and network access is provisioned or suspended automatically.

Open to opportunities

Let’s discuss your role,
product or technical challenge.

Open to graduate software roles, internships, freelance builds, hackathons and collaborations, in Zambia or remotely.

Start a conversation

Navigate the system

Where should we go?