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- …