βš™οΈ Settings

πŸ’° Financial Settings

Capital Amount

Current: R0

Profit Goal

Current: R0

πŸ“Š Profit Goal Progress

Progress 0%

Set a profit goal to track progress

πŸ“‹ Payment Management

Grace Period (Days)

Days after due date before late penalties apply. Only affects loans distributed after 31 Jan 2026.

Current: 3 days

Late Penalty Rate

0.1% per day on outstanding balance, capped at 7 days maximum. This rate is fixed in the system.

0.1% / day
Max 7 days = 0.7% total

🚦 Automatic Escalation Rules

⚠️ Warning

1 consecutive missed payment

πŸ”Ά At Risk

2 consecutive missed payments

πŸ”΄ Default Suggested

3+ consecutive missed payments

Escalation levels are calculated automatically based on the loan's payment schedule. They appear as badges on the Active Loans page and as alerts on the Dashboard.

πŸ“ž Payment Reminder Log

Record of payment reminders sent to borrowers. Log reminders from the Active Loans page using the "πŸ“ž Log Reminder" button on each loan.

Loading reminders...

πŸ”’ App Version & Updates

Current Version

v1.7.16

Checking for updates...

πŸ“š How Updates Work:
  • Updates download automatically in the background
  • Click "Update Now" or close and reopen the app to apply
  • Your data is always safe during updates
🧩 Service Worker Status

Checking service worker...

Cache: unknown

πŸ”— Client Portal API

When set, client statuses publish to your private TBFS API (Cloudflare) instead of the public repo. The token is held for this session only.

Client loan portal

Clients check status at client-portal.html (current loan landing + loan history of the last 6 loans). Workflow: Clients β†’ set PIN (publishes in the same step) β†’ share the portal link and PIN. Unlock Cloud Backup for remote packs β€” your GitHub token must include TBFS-Connected (Contents: Read and write), not only the backup repo. After you publish once in this browser session, the PIN is remembered until you close the browser β€” payments and loan adjustments auto-refresh that client’s pack. Use Refresh all portals on Clients to batch-update everyone with a remembered PIN.

☁️ GitHub Cloud Backup

Automatically backup your data to a private GitHub repository. Your data syncs across all devices and works offline.

πŸ”’ Your token is encrypted and stored securely on your device only. Never shared or exposed.

🔑 Encrypts your token on this device (AES-256) and signs your cloud backups. Entered once per session. If forgotten, remove the token and set up again with a fresh fine-grained PAT.

⚠️ Ensure this is your PRIVATE backup repository.

πŸ”‘ How to Get Your Token:
  1. Create a private repo named TBFS-Data-Backup under Ndelo-N if it does not exist yet
  2. Go to: github.com/settings/tokens
  3. Click "Generate new token" β†’ "Fine-grained token"
  4. Under Repository access, select Only select repositories and add both:
    • TBFS-Data-Backup β€” private cloud backup
    • TBFS-Connected β€” client portal status publish (GitHub Pages)
  5. For each selected repo, enable Contents: Read and write
  6. Copy token and paste above
  7. After unlock, click Test cloud connection, then Backup Now before Restore

A token limited to the backup repo alone causes 403 Resource not accessible by PAT when publishing client portals. A token that cannot see the private backup repo often looks like 404 No cloud backup found on Restore.

Cloud Backup Features:

  • βœ… Auto-sync on every data change
  • βœ… Works offline - queues changes, syncs when online
  • βœ… Access from any device
  • βœ… Daily snapshots kept for 30 days
  • βœ… One-click restore
  • βœ… Completely free (uses your private GitHub repo)

πŸ’Ύ Manual Backup & Restore

Download or restore backups manually.

πŸ’‘ Backup Tips:
  • Download backups regularly for safety
  • Store backups in multiple locations
  • Cloud backup provides automatic protection
  • Restore only from trusted backup files

⚠️ Danger Zone

These actions are permanent and cannot be undone. Use with extreme caution.

⚠️ This will permanently delete ALL loans, clients, and financial data. A backup will be automatically created before clearing.