ZenTrades

CASE STUDY · 2026

JASHAN DHINGRA

SCROLL ↓

Portfolio / 2025 / B2B SaaS

ZenTrades

Workforce

ZenTrades

Workforce

Replacing WhatsApp chaos with one

centralized operational record for

construction contractors.

Replacing WhatsApp chaos with one centralized operational record for construction contractors.

B2B SaaS

Workforce Management

Construction Ops

Role

Product Designer (solo)

Duration

1.5 days · sprint

Tools

Figma · FigJam · ShadCN · Notion

Year

2026

Assignment File

185

WORKERS

04

ACTIVE SITES

06

PROJECT MANAGERS

3

PERSONAS

01

SHARED RECORD

— LIVE OPERATIONAL TRUTH

/ 02 · THE STAKES

185

Workers

04

Construction Sites

06

Project Managers

Before ZenTrades, Mr. Arie's operation ran on calls,

WhatsApp groups, and mental math. Every schedule change

meant 40+ messages. Every worker reassignment was a

coordination nightmare.

This isn't a people problem it's a system problem.

/ 03 · THE PROBLEM

The fragmented reality of construction ops.

The fragmented reality of construction ops.

MA

Mr. Arie

Construction Contractor

🖥 Desktop

📱 Mobile

42 yrs

Goals

01

Full visibility across all projects

02

Faster worker reallocation

03

Reduced coordination calls

04

Track daily progress centrally

Pain points

No single view of all 185 workers

Depends entirely on PMs for status updates

Cannot reassign quickly when sites change

No audit trail of who assigned what

Success looks like

One screen showing all 185 workers across 4 sites.

A day in Mr. Arie's life

"By 9 AM I've sent 40 messages

and still don't have a picture."

07:00 —

12 missed calls.

Site Bravo needs 2 extra laborers. Site Delta's electrician didn't show up. No one

knows who's available.

Mr. Arie starts calling project managers. One doesn't pick up. Another isn't sure

if Worker #47 is assigned or sick.

09:00 —

40+ WhatsApp messages later, still no clear picture.

Meanwhile, Site Charlie is overstaffed — 3 idle workers waiting for materials that

won't arrive until tomorrow.

Labour is idle & money is going from Mr.Arie’s pocket. This happens every single day.

CORE PAIN POINTS · OBSERVED

01

No single source of

truth

No single source of truth

Tasks scattered across

paperwork, calls, and

messages.

Tasks scattered across paperwork, calls, and messages.

02

Real-time changes are

chaotic

Real-time changes are chaotic

Every change requires

manual coordination across

PMs.

Every change requires manual coordination across PMs.

03

Zero visibility for

workers

Zero visibility for workers

Workers depend on calls for

their daily schedule.

Workers depend on calls for their daily schedule.

04

No capacity planning

Impossible to spot over- or

under-utilization across 185

people.

Impossible to spot over- or under-utilization across 185 people.

05

No accountability

No record of who assigned

what task, where, or when.

No record of who assigned what task, where, or when.

ROOT CAUSE

A distributed

system without

shared state.

The team operates like a distributed system with no shared operational state, no real-time data layer, and no feedback loops. Everyone maintains their own mental model and reconciles it through micro-management. The fix is structural: introduce a single live operational record that every stakeholder reads from and writes to.

/ 04 · USER RESEARCH

Three roles, one shared system.

Three roles, one shared system.

Every persona needs a different view of the same operational truth. Designing the data model meant first mapping who needs what, when, and on which device.

MA

Mr. Arie

Contractor / Owner

🖥 Desktop

📱 Mobile

Top goals

01

Monitor all sites from one dashboard

02

Detect staffing risks early

03

Reassign workers in minutes

Top pains

No central visibility

Depends on PM updates

Cannot reallocate fast

Success metric

One screen showing all 185 workers across 4

sites.

PM

Project Manager

On-Site / Office (×6)

📱 Mobile-first

🖥 Office desktop

Top goals

01

See who's available today

02

Assign tasks quickly on-site

03

Communicate changes instantly

Top pains

Manual task assignment

No real-time availability

Overlapping allocations

Success metric

Clear daily plan with zero ambiguity.

FW

Field Worker

Technical / Driver / Laborer

📱 Mobile only

Top goals

01

Know today's assignment

02

Check in / out easily

03

Contact PM when blocked

Top pains

No schedule visibility

Last-minute changes

Unclear task details

Success metric

Morning notification with location, time, and

task.

/ 05 · DESIGN APPROACH

Solving for operational state, not task lists.

Solving for operational state, not task lists.

Most workforce tools are fancy spreadsheets — a list of tasks

with workers attached.

ZenTrades is different. It's a live operational record. When a

PM assigns a task, the dashboard updates. When a worker

checks in, capacity changes. Everyone reads from the same

source of truth.

This required rethinking the data model from the ground up:

not tasks with workers attached, but a connected graph

where Tasks ↔ Projects ↔ Workers stay in sync

automatically.

Every UI decision after that came back to one question —

does this surface live state, or does it hide it?

PRINCIPLE 01

Visibility over perfection

Better to see 80% staffing than guess at 100%.

Show the gap; let the contractor decide whether

it's urgent.

PRINCIPLE 02

Usability for PMs

Tasks happen on-site, not at desks. Every PM action must be one-click away, reachable to the gate of any construction site.

PRINCIPLE 03

Zero ambiguity

Every task carries location, time, headcount, and

worker type. No free-text — no "I thought you

meant Tuesday."

/ 06 · KEY DECISIONS

Four decisions that shaped the system.

Four decisions that shaped the system.

A · SCHEDULING SURFACE

Why List + Calendar, not Kanban?

Construction schedules are time-bound, not stage-bound. A Kanban

board optimizes for workflow stages (To Do → Doing → Done) — but

tasks here are locked to dates and locations.

Calendar view prevents double-booking and shows capacity gaps at a

glance. List view gives PMs a quick scan of today's assignments

without mental math.

Two views, one data layer. Switch is one click. The choice is

contextual: morning standup → List. Weekly planning → Calendar.

B · STAFFING SIGNAL

Surfacing gaps

before they hit the site.

In the old system, you'd discover you're short 3 laborers when they

didn't show up at 7 AM.

Now, the moment a task is created with a headcount requirement, the

system shows fulfillment status on the card. Red badge means short.

Blue means staffed. No drill-down needed.

This isn't a UI flourish — it changes the decision moment. Mr. Arie

reassigns the night before, not at sunrise.

C · MENTAL MODEL

Project-level staffing,

not worker-first.

Most tools let you assign workers to tasks one-by-one. But

contractors don't think that way. They think in projects: "Site Bravo

needs more people. Site Charlie has extras."

The Projects screen mirrors that mental model. Each card shows

capacity, priority, and a single quick action: Assign Workers.

Redistribution happens at the project level. Individual task

assignments cascade automatically.

D · DATA MODEL

Three entities,

one operational graph.

Changes propagate. Reassign a worker → their task updates → project

capacity recalculates → dashboard refreshes.

No manual syncing. No stale data. No WhatsApp follow-ups to

confirm.

This is the invisible foundation behind every screen. Every visual

decision exists to surface state changes the moment they happen.

/ 07 · FINAL DESIGNS

The system in action.

The system in action.

Four core screens. Every element earns its pixel fulfillment status, capacity bars, real-time alerts, and structured task creation.

SCREEN 01 / 04

Dashboard

Mr. Arie's control center visibility across all 4 sites without a single phone call.

Mr. Arie's control center visibility across all 4 sites without a single phone call.

zentrades.app / dashboard

01

Real-time alerts surface understaffed tasks before

the day starts — auto-suggests redistribution from

idle pools.

02

Workforce KPIs split capacity into Total / Assigned /

Available / Understaffed — the four states that

matter.

03

Today's schedule + site capacity sit side-by-side so

a contractor can act without leaving the dashboard.

SCREEN 02 / 04

Scheduling — List/Calendar

Forward planning see workload distribution across weeks and prevent double-booking before it happens.

Forward planning see workload distribution across weeks and prevent double-booking before it happens.

zentrades.app / scheduling / calendar

zentrades.app / scheduling / calendar

01

Tasks color-coded by worker type — laborer,

technical, driver, electrician — for visual workload

scanning.

02

Daily capacity counter below the grid flags any day

that exceeds workforce availability (red = over

capacity).

03

Drag-and-drop reschedule — system prevents

double-booking by validating against worker pool in

real time.

SCREEN 03 / 04

Create Task Modal

Every task created with full operational clarity. Structured input = zero ambiguity downstream.

Every task created with full operational clarity. Structured input = zero ambiguity downstream.

zentrades.app / scheduling / calendar

01

Six structured fields enforce every task to carry

project, type, time, location, and headcount — no

free-text gaps.

02

Auto-suggest matches headcount requirements

against idle workers across all sites — one-tap to fill.

03

Notifies assigned workers via push on save. No

follow-up WhatsApp message needed.

SCREEN 04 / 04

Workers Registry

Central worker registry see everyone's status, current project, and reassign in two clicks.

Central worker registry see everyone's status, current project, and reassign in two clicks.

zentrades.app / workers

01

Three statuses (Available / Assigned / On leave)

cover every worker state with no ambiguous in-

between.

02

Current project + today's task surface side-by-side

— see why someone is busy without clicking

through.

03

Reassign action only appears on Available workers

— UI guides intent, prevents accidental over-

allocation.

BONUS SCREENS

Workers App

Central worker registry see everyone's status, current project, and reassign in two clicks.

Central worker registry see everyone's status, current project, and reassign in two clicks.

01

Three statuses (Available / Assigned / On leave)

cover every worker state with no ambiguous in-

between.

02

Current project + today's task surface side-by-side

— see why someone is busy without clicking

through.

03

Reassign action only appears on Available workers

— UI guides intent, prevents accidental over-

allocation.

/ 08 · DESIGN SYSTEM

Built for scale.

Built for scale.

Tokens, components, and patterns extracted into a single ShadCN-

based system — ready to ship and ready for dark mode.

Tokens, components, and patterns extracted into a single ShadCN- based system — ready to ship and ready for dark mode.

01 · COLORS

Construction-alert palette

#E53E3E

Alert Red — Primary

Urgent · critical · understaffed

#1A1A1A

Ink Black

Headers · primary text · CTAs

#3B82F6

Signal Blue

Fully staffed · confirmed

#10B981

Active Green

Available · on-time

#E5E7EB

Smoke 200

Borders · dividers

#6B7280

Smoke 500

Secondary text · captions

02 · TYPOGRAPHY

Inter + JetBrains

Display 56

DM Sans Bold

56 / 60 · -3%

Heading 40

DM Sans Bold

40 / 44 · -2.5%

Sub-head 32

DM Sans Medium

32 / 38 · -2%

Body — Inter Regular 16, the working font of every

screen.

Inter Regular

16 / 26 · 0%

CAPTION · METADATA · STATUS

JetBrains Mono

11 / 16 · +6%

03 · COMPONENTS

Built on ShadCN

BUTTONS

Primary

Secondary

Disabled

STATUS BADGES

AVAILABLE

ASSIGNED

ON LEAVE

UNDERSTAFFED

TASK CARDS · TWO STATES

Foundation pour

8/8

Wiring · Delta

3/5

AVATAR STACK

JK

MR

SP

AN

+12

INPUT

📅 Mon, Oct 14

Headcount — 5

04 · ICONS

Construction operations set

Tokens exported as CSS variables + Figma styles · components built on ShadCN/Radix

primitives · ready for React implementation and dark mode.

/ 09 · WHAT THIS UNLOCKS

From 40+ messages to one source of truth.

From 40+ messages to one source of truth.

−60

−60

%

%

Fewer coordination calls

From 40+ messages per schedule change to

system-wide updates that propagate automatically.

5

5

min

min

Avg task assignment time

Down from 45 minutes of back-and-forth WhatsApp coordination per assignment.

Zero

Zero

Double-bookings

System-enforced constraints prevent scheduling conflicts at the data layer.

By introducing a single operational state, ZenTrades eliminates the cognitive

overhead of distributed coordination. Contractors can now scale beyond what one

person can mentally track.

overhead of distributed coordination. Contractors can now scale beyond what one person can mentally track.

/ 10 · REFLECTION

What I'd do next.

What I'd do next.

This was a 1.5-day sprint, so scope was tight. With more time, I'd:

01

Add offline-first support for PMs in low-signal construction sites — sync queue + conflict resolution.

02

Design the worker mobile app (currently web-only) — focused on check-in, task detail, and one-tap PM contact.

03

Build time-tracking integration — clock in/out via site geofence, automatic timesheet generation.

04

Add predictive staffing — "Site Charlie usually needs 2 extra laborers on Mondays" from historical patterns.

05

Test with real PMs in the field — not hypothetical personas. Validate every assumption against a live operation.

The hardest part wasn't the UI — it was understanding the operational mental model of construction contractors. They don't think in tasks; they think in projects, capacity, and firefighting.

The system had to match that reality. Every decision in this case study comes back to one question: does this surface live operational state, or does it hide it behind another layer of indirection?

Thanks for reading.

Want to talk construction tech, workforce coordination, or B2B operations design?

Create a free website with Framer, the website builder loved by startups, designers and agencies.