Skip to main content

Rider Management

Routes:

  • /admin/riders — Rider list
  • /admin/riders/create — Add new rider
  • /rider — Rider's own dashboard (separate role)
  • /rider/active — Active deliveries
  • /rider/history — Delivery history

Files:

  • ayts-admin/app/admin/riders/page.tsx
  • ayts-admin/app/admin/riders/create/page.tsx
  • ayts-admin/app/rider/page.tsx
  • ayts-admin/app/rider/active/page.tsx
  • ayts-admin/app/rider/history/page.tsx

Auth required: Admin (for admin routes), Rider role (for rider routes)

Admin: Rider List (/admin/riders)

Columns

ColumnSource
Nameusers.first_name + last_name
Contactusers.phone
Statusriders.status (available / on_delivery / offline)
Active OrdersCount of current assigned orders
Total Deliveriesriders.total_deliveries
ActionsView / Assign / Deactivate

Data Fetching

// Get all riders
GET /api/riders?status={status}&limit=20

// Get single rider
GET /api/riders/{id}

// Create rider
POST /api/riders
{ userId, vehicleType, plateNumber, licenseNumber }

// Assign rider to order
PATCH /api/orders/{orderId}/assign-rider
{ riderId: string }

// Update rider status
PATCH /api/riders/{id}/status
{ status: 'available' | 'on_delivery' | 'offline' }

Create Rider (/admin/riders/create)

Form fields:

  • Select existing user (must already be registered)
  • Vehicle type (motorcycle / bicycle / car)
  • Plate number
  • License number
  • Service area (barangay/city)

The user's role is updated to rider on creation.

Rider Dashboard (/rider)

The rider's own view (not admin):

  • Shows currently assigned orders
  • Accept/reject delivery request
  • Update delivery status
  • Delivery history

Rider Flow

Admin assigns order → Rider gets notification
Rider accepts → status: "out_for_delivery"
Rider confirms delivery → status: "delivered"

Known Issues / Status

ItemStatus
Rider list✅ Working
Create rider✅ Working
Rider assignment to order⚠️ API exists, UI needs verification
Rider dashboard✅ Route exists
Active deliveries view✅ Route exists
Push notifications to rider⚠️ Wired in API, needs E2E test
Rider location tracking❌ Not implemented