OnFleet Africa rent-to-own bike platform
# ποΈ OnFleet Africa β Rent-to-Own Bike Platform
A complete, production-ready rent-to-own platform for delivery bikes. Built for the South African market with **Paystack** integration, **18-month (78-week)** rent-to-own agreements, GPS tracking, KYC, automated payment reminders, and a full admin console.
## π What's included
### Rider portal (`/dashboard`)
- π **Sign up + 2-step onboarding** with personal & address details
- π **KYC document upload** (ID, Proof of Address, License, Bank Statement, Selfie)
- π **Application form** with bike preference, income, delivery platforms
- π― **Live progress bar** to ownership (% paid, weeks paid, R remaining)
- π³ **Pay weekly via Paystack** (or pay multiple weeks / pay off entirely)
- π
**Full payment schedule** showing every week with status (paid / partial / overdue)
- π°οΈ **Live GPS map** of your bike with route history
- π§ **Service history** of your bike (free monthly services highlighted)
- π€ **Profile & password management**
### Admin console (`/admin`)
- π **Real-time dashboard** β revenue, riders, fleet, overdue, action queue
- π **Weekly revenue chart** (last 90 days)
- π **Application review** β approve & instantly allocate bike + auto-generate 78-week schedule, or reject with reason
- π **Agreement management** β pause / resume / mark completed / mark defaulted
- π° **Manual payment recording** (EFT, cash, card)
- ποΈ **Bike fleet CRUD** with filters by status (available, allocated, maintenance, sold, retired)
- π°οΈ **Per-bike GPS map**, odometer & insurance tracking
- π§ **Service log** with free-monthly tracking
- β
**KYC review queue** with approve / reject + reason
- π₯ **User management** with suspend / activate
- π **Audit log** of every action in the system
### Backend features
- π **JWT auth** with role-based access (rider / admin / superadmin)
- π³ **Paystack integration** β initialize, callback verify, webhook
- β‘ **Auto payment allocation** β payments cascade to oldest unpaid week first
- π
**Automatic 78- β¦