Skip to content

feat(#299): Build Fully Functional Customer Dashboard#432

Merged
Damidesign merged 1 commit into
Navin-xmr:mainfrom
Nexha-dev:feat/299-customer-dashboard
Jun 26, 2026
Merged

feat(#299): Build Fully Functional Customer Dashboard#432
Damidesign merged 1 commit into
Navin-xmr:mainfrom
Nexha-dev:feat/299-customer-dashboard

Conversation

@Nexha-dev

Copy link
Copy Markdown
Contributor

Summary

Implements the fully functional customer dashboard (issue #299).

Changes

  • CustomerDashboard.tsx — Complete implementation:
    • Fetches customer shipments from GET /api/shipments?role=customer
    • Active Shipments section: cards with status badge, tracking number, ETA, and milestone progress bar; clicking opens ShipmentDetail
    • Past Shipments table: delivered and cancelled shipments, sortable by date (asc/desc), with download proof link
    • Quick Stats row: total shipments, currently in transit, delivered this month
    • Notifications sidebar: last 3 unread notifications with 'View All' link
  • App.tsx — Adds customer-only route group with /dashboard/customer path
  • RoleGuard.tsx — Updates customer redirect to /dashboard/customer

Acceptance Criteria

  • Active shipment cards render with correct status and ETA
  • Past shipments table is sortable by date
  • Quick stats are accurate (computed from fetched data)
  • Notification sidebar shows last 3 unread

Closes #299

- Add CustomerDashboard component: active shipment cards with status,
  tracking number, ETA, milestone progress bar; click opens ShipmentDetail
- Add past shipments table sortable by date with download proof link
- Add quick stats row: total shipments, in transit, delivered this month
- Add notifications sidebar: last 3 unread with 'View All' link
- Wire /dashboard/customer route in App.tsx (customer-only RoleGuard)
- Update RoleGuard to redirect customers to /dashboard/customer

Closes Navin-xmr#299
@Damidesign
Damidesign merged commit 6075b36 into Navin-xmr:main Jun 26, 2026
2 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant