EEmmanuel Oladoyin
Back to all work

Healthcare staffing platform

TrabajoHub

A healthcare staffing platform with a Flutter nurse app, a facility and admin dashboard, a marketing site and a Node.js API behind them.

TrabajoHub preview
27
Data models
14
API modules
100+
Documented API operations
18
Mobile screens

Overview

TrabajoHub connects healthcare professionals, such as nurses and caregivers, with hospitals, care centres and agencies that need to fill shifts. Professionals find and claim shifts on their phone; facilities and administrators manage staff, shifts, credentials and billing from the web.

I built all four parts: the nurse mobile app, the admin and facility dashboard, the public website and the API that connects them.

What I built

  • Shift marketplace

    Professionals browse open shifts on a list or map, claim them, and manage their own schedule in a calendar.

  • Credential management

    Licences and documents are uploaded and reviewed by admins, with approved, rejected and expired states.

  • Verified visits

    Check-in and check-out with location checks against the visit address, and a review path for flagged or overridden visits.

  • Facility and admin dashboard

    Manage users, facilities, shifts, cases, visits, credentials, bills and support tickets, with an audit trail.

  • Messaging and notifications

    In-app messaging, plus push, email and SMS notifications.

  • Billing

    Invoices, payouts and a wallet, built on Stripe.

Engineering notes

  • Shift and visit workflows modelled as explicit states (open, booked, in progress, completed and more), with the API rejecting any change that skips a step.
  • Double-booking protection: accepting a shift runs in a database transaction that refuses it if the nurse already has an overlapping shift.
  • Location-verified visits use a configurable geofence radius, with every action recorded in audit logs.
  • Five user roles with role guards, JWT access and refresh tokens and optional two-factor sign-in.
  • Documents stored in cloud object storage and served through signed URLs.

Screenshots

TrabajoHub screenshot 1
TrabajoHub screenshot 2
TrabajoHub screenshot 3
TrabajoHub screenshot 4
TrabajoHub screenshot 5
TrabajoHub screenshot 6
TrabajoHub screenshot 7
TrabajoHub screenshot 8
TrabajoHub screenshot 9
TrabajoHub screenshot 10
TrabajoHub screenshot 11
TrabajoHub screenshot 12
TrabajoHub screenshot 13
TrabajoHub screenshot 14
TrabajoHub screenshot 15