kb
Kratin BhardwajProduct Designer
Beat 01 · Attendance
Clock in at the gate
1 tap. The toast confirms the site, the time, and the geo tag.
Beat 02 · Dashboard
Today, in 4 numbers
Live counts from real tasks. Each card is a tap through filter to the list behind it.
Beat 03 · Tasks
Close it on the floor
The checkbox commits instantly: status, counts, and the ERP update in the same gesture.
Clocked in · Accenture BDC7A · 10:48
6
RS
ActivityProjectsLeads
ANJ Group · Field
Not Clocked In
Clock In
OPEN TASKS
4
3 Added this week
OVERDUE TASK
1
12% Less vs Last Week
IN-PROGRESS
2
2 Started this Week
COMPLETED
2
18% Done vs last week
TasksTotal Tasks: 8
Snag list review: L3 workstations
Accenture BDC7A · Today · 4:30 PM
High
Factory dispatch: 240 panels
Accenture BDC7A · Today · 6:00 PM
High
HomeToolsChatTask
ANJ App · ANJ Group

Taking the Project ERP to the Site: Designing a Field First Mobile Companion for Tasks, Attendance, and Site Communication on iOS and Android

ANJ Group is one of India's largest design and build firms, delivering workplaces for Accenture, Microsoft, Hitachi, and Allianz through integrated manufacturing, technology, and execution. The firm has transformed over 110 million sft across more than 3,000 projects in 60 cities, with a 2,500 strong workforce. Its project ERP ran on office desktops. The work ran at the site gate, on the floor, and at the factory dock.

As Product Designer, I designed the mobile companion that carries the ERP into the field: attendance, tasks, project tracking, documents, leads, and site chat in 1 application shipped identically to iOS and Android. The scope covered the full arc: flow map, information architecture, a design system at v1.0, and a completely tappable prototype running on real project data.

The organizing rule was set before any screen existed: a 5 slot bar carries the whole product, nothing sits deeper than 2 taps, and work commits where it happens.

22 screens, 6 flows, 1 design frame for 2 platforms.

Role
Product Designer. Flows, information architecture, design system, interactive prototype.
Client
ANJ Group, project ERP team
Field staff across 5 roles as the primary users
Platform
iOS and Android from 1 402 × 874 frame
Native system type: SF Pro and Roboto
Deliverables
Flow map, 22 screens, design system v1.0, interactive prototype
01 · Problem

How might we give site staff read and write access to the project ERP from where the work happens, so the system of record stops trailing the site by days?

Before the app, a clock-in was a phone call to the office. A closed snag was a photo in a chat thread that someone retyped into the ERP 2 days later. A dispatched truck was news the site heard when it arrived. The system of record ran behind the site, and the client, invited into that ERP for transparency, saw the lag first.

01
Field blind system

Site heads and supervisors could neither read nor write project state from the site. Every update passed through a desk.

02
Fragmented updates

Progress photos, snag lists, and dispatch confirmations lived in calls and chat threads. None of it landed in the ERP without manual re-entry.

03
Stale client view

The client portal promised live progress and showed last week. Trust in the record eroded from the outside in.

02 · Outcome

I delivered a complete mobile product definition: 22 screens across 6 flows, an information architecture with a 2 tap ceiling, a documented design system, and an interactive prototype on real project data, all from 1 design frame that ships unchanged to both platforms.

22
Screens

Splash to reports, every state drawn: onboarding and auth, home, tasks, the project workspace, chat, tools, and account.

6
Flows

Onboarding and auth, home and navigation, tasks, project workspace, chat, tools and account. Wireframed and wired lo-fi before any hi-fi work.

2 taps
Navigation ceiling

A 5 slot bar with drill-ins that push full screen. No destination sits deeper than 2 taps, and the rule held as screens were added.

< 15 s
Clock-in sequence

Splash, login, home, clock-in, geo tagged toast. Designed to complete in under 15 seconds, against the 2 minute phone call it replaces.

1 → 2
Platforms from 1 frame

A single 402 × 874 frame ships to iOS and Android unchanged. 0 forked screens to maintain, 0 drift between platforms.

v1.0
Design system

Tokens, 8 type roles, semantic pairs, radius and spacing scales, elevation, iconography, and motion rules, written before screens multiplied.

03 · Process

I led the work end to end, from the flow map through the interactive prototype, with the ERP team as the source of truth for entities, statuses, and permissions.

The sequence was deliberate: map every flow lo-fi first, fix the information architecture, write the design system, then assemble the high fidelity screens. Because the structure was settled early, the hi-fi phase was assembly rather than invention, and dead ends were caught while they were still cheap to fix.

1
Flow mapping
22 screens sketched lo-fi across 6 flows, every arrow accounted for, mirrored to the ERP's entities.
2
Information architecture
A 5 slot bar with a 2 tap rule. Drill-ins push over the bar, sheets rise from the bottom.
3
Design system
Tokens, components, and platform rules documented before screens multiplied.
4
Interactive prototype
Fully tappable on real project data: create tasks, clock in, send messages, invite a client.

From a desk bound record to a pocket sized one

The ERP already held the entities: projects, tasks, attendance records, documents, leads, and team roles. The app does not duplicate them. It exposes the 4 things field staff actually create, a task, a clock-in, a document, and a lead, and the reading surfaces they need to act: today's tasks, the live project, the site room, and the weekly numbers.

Every write is designed to land in the ERP in the same gesture. A checked task updates counts, the dashboard, and the reports. A clock-in carries the site and a geo tag. An uploaded drawing arrives versioned. The client invited into a project sees progress and milestones as they happen, not a week later.

04 · Users and Constraints

5 roles, 1 morning routine

Very different hands use this product, most of them wearing site gloves, all of them starting the day the same way: clock in, see today, move. The roles set the reading surfaces. The environment set the physical rules.

PM
Project manager

Tracks 5 sites at once. Needs the day's exceptions surfaced, not buried in feeds: overdue counts, at risk projects, and who has not clocked in.

SH
Site head

Clocks in at the gate, walks the snag list, closes work on the floor, and reports progress without returning to a desk.

ME
MEP lead

Lives in drawings and BOQs. Flags clashes with markups in the project room and needs versioned documents at hand.

FA
Factory and procurement

Confirms dispatches from the factory. The site needs to know a truck left the moment it leaves, in the room where its tasks live.

CL
Client

Invited into 1 project through the ERP. Sees progress, milestones, and documents, and nothing that belongs to other sites.

Gloves44px minimum hit targets, 7px checkbox radius, pill buttons, and a raised create action in the center of the bar.
Sunlight4.5:1 minimum contrast on every text pairing, semantic colour held to chips and badges, never used as a surface.
1 hand, mid range hardwareBottom navigation, sheets from the bottom, hardware back on Android, and no motion over 300ms.
05 · Information Architecture

Everything within 2 taps of the bar

1 five slot bar carries the whole application: 3 destination tabs, a task hub, and a raised create action in the center. Drill-ins push full screen over the bar; back is always 1 gesture. The create action feeds every branch: a task, a clock-in, a document, or a lead is 1 thumb away from any screen.

Tab bar5 slots · always present
Home
Activity · clock-in, stats, today
Projects · live sites, progress
Leads · pipeline, stage chips
Tools
Attendance · records, month grid
Reports · velocity, health, export
Documents · versioned
Site team · roles, ERP invites
Create +
New task
Log attendance
Upload document
New lead
Chat
Project rooms
Direct messages
Thread · site photos
Task
Project view
Progress view
Task detail · subtasks, comments
Pushed over the barUpdates · notifications and commentsProject workspace · overview, board, timeline, documents, teamTask detailChat threadProfile and settings
Navigation model5 slots: Home, Tools, Create, Chat, Task. Home carries Activity, Projects, and Leads as top tabs.
DepthTab, then 1 push. Pushed pages cover the bar; sheets slide from the bottom for create actions.
BackHeader arrow and swipe on iOS, hardware back on Android. The same page stack serves both.
06 · Core Flows

6 flows, mapped before a pixel of hi-fi

Every screen was wireframed and wired lo-fi first. The 6 flows below cover a field day end to end; the first 3 carry most of it.

Flow 01Onboarding and auth3 screens
Splash
session check
Login
company issued account
Verify OTP
4 digit code
Home · Activity
clock-in card first
Accounts are issued by the ERP administrator. No self signup, no password reset friction for field staff, and SSO planned as a later step.
Flow 02Home and navigation5 screens
Activity
clock-in, stats, today
Clock In
geo tagged toast
Projects · Leads
top tabs on Home
Updates
notifications, comments
Splash to geo tagged clock-in is designed to run under 15 seconds, measured against the 2 minute phone call it replaces.
Flow 03Tasks3 screens
Task tab
project or progress view
Task detail
stepper, subtasks, comments
Status → Completed
1 tap on the stepper
Counts update
dashboard and reports
The same checkbox exists on every task row. The detail view is optional when the work is simply done.
Flow 04Project workspace5 screens
Project card
1 push from Home
Overview
health, %, milestones
Board · Timeline
kanban and gantt, as in the ERP
Documents · Team
versioned files, ERP invites
5 views as pills inside 1 pushed page, so switching never rebuilds context. Progress and status stay pinned above all 5.
Flow 05Chat2 screens
Chats
project rooms, DMs, unread
Thread
bubbles, mentions
Attach
site photo into the thread
1 room per project, so a dispatch lands next to the tasks it belongs to.
Flow 06Tools and account4 screens
Tools hub
field and office utilities
Attendance
records, month grid, site tag
Reports
velocity, health, export
Profile
role, notifications, sign out
The create action branches to the 4 things field staff actually create: a task, a clock-in, a document, and a lead.
07 · Design System

1 language for 2 platforms

Purple acts, neutrals read, and semantic tints stay in chips and badges without ever becoming a surface. Native system type, SF Pro on iOS and Roboto on Android, keeps both platforms feeling at home in the same layout with 0 webfonts. The values below are the ones the prototype runs on, rendered live rather than screenshotted.

Colour · brand
Primary
#6C4CDB
Primary · pressed
#5B3CC9
Primary · deep
#4C3AA8
Selected chip
#E9E2F8
Primary tint
#F1EDFB
ANJ navy · logo
#1F2A5E
Colour · neutrals
Ink · headings
#1A1B2E
Body text
#2A2B3A
Secondary
#8A8FA3
Border
#E4E6EE
Muted card
#F2F2F6
Canvas
#FBFBFD
Semantic · ink on tint, never a surface
On Track#15803D / #DCFCE7
At Risk#B45309 / #FEF3C7
High · Overdue#C81E4A / #FDE8EC
Planning · Low#1D4ED8 / #E3EDFD
In Progress#0F766E / #DFF7F0
6Badge #EF3B5D
Stat gradients · dashboard only, white ink
Open tasks
#9B72E8#5B2FBF
Overdue
#4B66D4#1D2F73
In-progress
#31A8A0#155E58
Completed
#41B97E#175E38
Type · system stack, weights 400 / 600 / 700 / 800 only
Welcome backDisplay · 26 / 800Auth and empty state heroes
UpdatesPage title · 22 / 800Pushed page headers
TasksSection · 20 / 700In page section heads
Project ViewTab · 15.5 / 600Top tabs, purple when active
Accenture BDC7ACard title · 15 / 700Cards and rows
Walk L3 east wing with the vendor team and verify snags.Body · 14 / 400 · lh 1.45Descriptions, messages
Design and Build · 150,000 sft · ChennaiCaption · 12 / 400Meta lines under titles
OPEN TASKSOverline · 10.5 / 700 · +0.9Stat labels, form labels
Shape, spacing, elevation, motion
Base frame402 × 874, content top inset 64, bottom inset 120 above the nav
Grid4pt steps, 18px side gutters, 12px card gaps, 16px card padding
Radius999 pill for buttons and chips, 22 sheets, 16 cards, 13 tiles and rows, 7 checkboxes
Hit targets44px minimum, sized for gloved hands
ElevationCard 0 2 10 at 6%, FAB 0 8 20 at primary 35%, toast and sheet 0 10 30 at 35%
IconographyStroke icons, 1.9px weight, round caps, 24px grid, ink #3A3D52, primary when active
MotionPush 260ms slide up and fade, sheet 260ms rise, toast 2.4s in hold out, nothing over 300ms, no springs
Contrast4.5:1 minimum on every text pairing, tested against sunlit screens
Components · as used in the product
Sign InClock InHighMediumOn TrackSnagging
Bottom nav: 5 slots, active state is primary ink with a tinted fill, the FAB is raised 10px over the bar. The same bar ships on Android; the back gesture replaces the iOS swipe.
08 · Product

The screens, and why they are this way

4 decisions carry most of the product. Each one is annotated on the coded screen it lives on.

UX decision 01 / Home
Attendance before anything else
Home · Activity · state: not clocked in
AB
6RS
ActivityProjectsLeads
ANJ Group · Field
Not Clocked In
Clock In
OPEN TASKS
4
3 Added this week
OVERDUE TASK
1
12% Less vs Last Week
IN-PROGRESS
2
2 Started this Week
COMPLETED
2
18% Done vs last week
TasksTotal Tasks: 8
Snag list review: L3 workstations
Accenture BDC7A · Today · 4:30 PM
High
Factory dispatch: 240 panels
Accenture BDC7A · Today · 6:00 PM
High
HomeToolsChatTask
A
The clock-in is the first card
A site day starts at the gate, so the app starts there too. The card reads the state, site, time, and geo tag, and the button flips it. What used to be a call to the office is 1 tap, confirmed by a toast that names the site and the time.
B
Stat cards are filters, not decoration
Open, overdue, in progress, and done are computed live from real tasks. Tapping any card lands on the task list already filtered to it, so the number is always 1 tap from the work behind it. The 4 gradients are reserved for this card set only.
UX decision 02 / Tasks
1 task list, 2 readings
Task tab · state: progress view · my tasks
AB
6RS
Project ViewProgress View
AllMy TaskAssigned By Me
Open· 2
Client walkthrough prep: mock-up room
Allianz Technology · Tomorrow
High
In Progress· 1
Snag list review: L3 workstations
Accenture BDC7A · Today · 4:30 PM
High
Completed· 1
Approve laminate samples: guest rooms
Hyatt Centric · Done · Mon
Medium
HomeToolsChatTask
A
Project view for managers, progress view for the field
The same tasks, 2 projections, 1 tap apart. A PM scans by site; a supervisor scans by what is open right now. The toggle sits at the top of the tab, and the My, Assigned by me, and All chips filter both views the same way.
B
The checkbox commits on the row
Completing work does not require opening it. The checkbox on every row flips status instantly, and counts, the dashboard, and the reports update in the same gesture. The detail view exists for subtasks and comments, not for closing a job.
UX decision 03 / Project workspace
The whole site behind 1 push
Project · Board · state: Accenture BDC7A · 64%
AB
Accenture BDC7A
64%
OverviewBoardTimelineDocsTeam
To Do 2
Factory dispatch: 240 workstation panels
HighAM
Client walkthrough prep: mock-up room
HighRS
In Progress 1
Snag list review: L3 workstations
HighRS
Done
A
5 workspace views as pills, not pages
Overview, board, timeline, documents, and team are pills inside 1 pushed page, so switching views never rebuilds context. The progress bar and status stay pinned above all 5. Board and timeline mirror the ERP's kanban and gantt so the office and the site read the same shapes.
B
An owner on every card
Each board card carries its assignee's avatar and priority chip. On a site, "whose is this?" is the first question about any open item, and it never needs a tap to answer. Cards drag between To Do, In Progress, and Done.
UX decision 04 / Updates
Notifications that carry the project, not just the ping
Updates · state: 6 unread · all
AB
UpdatesMark as read
NotificationsComments
AllUnreadAssigned to
Client Aman Sachdeva has been sent an invite for project Accenture BDC7A to join the ERP.
Accenture BDC7A13 minutes
New task assigned to you: Snag list review, L3 workstations
Accenture BDC7A25 minutes
Factory update: 240 workstation panels dispatched to Chennai site
Accenture BDC7A1 hour
Timeline updated: MEP rough-in extended by 3 days
Microsoft Campus C32 hours
Vinod Sharma clocked in at Tower B site
Microsoft Campus C33 hours
A
Every notification is anchored to its project
The footer row names the project and the time on every item. 6 sites deep into a week, "which site is this about?" is answered before the text is read. Notifications and comments split into 2 tabs so a mention never hides under a system event.
B
Mark as read is 1 action, not 30
Field mornings produce dozens of notifications. 1 tap clears the badge; the unread and assigned to filters keep anything deliberately saved for later.

The rest of the system follows the same rules: a task's full record, the site room where a dispatch lands next to the work it belongs to, and the weekly review numbers.

TaskHigh
Snag list review: L3 workstations
OpenIn ProgressCompleted
ProjectAccenture BDC7A · Chennai
DueToday · 4:30 PM
AssigneeRitika Singh
Subtasks 2/3
Photograph open snags (L3 east wing)
Update snag tracker sheet
Assign fixes to vendor teams
VS
Vinod Sharma · East wing glass partition scratches logged, vendor notified.
Add a comment…
Task detail. Status stepper, subtasks, and comments in 1 screen.
AB
Accenture BDC7A · Site
Vinod, Arjun, Kausar +4
Arjun MehtaTruck 2 left factory 6:40 AM, ETA 10:30.
Vinod SharmaDock 2 cleared for unloading.
Great. Priority: L3 east wing panels first.
Arjun MehtaPanels reached dock 2, unloading now.
Message…
Site room. A dispatch landing in chat, 1 tab from its tasks.
Reports
This weekThis month
Tasks completed37
6Mon
9Tue
4Wed
11Thu
7Fri
Project health
5SITES
On track3
At risk1
Planning1
Team attendance92%
Reports. Task velocity and project health for the weekly review.
09 · Platform Parity

Same design, native feel

1 design frame, 2 operating systems, 0 forks. The rules below are what make that hold in production rather than only in the file.

01
1 layout, both OS

A single 402 × 874 frame ships to iOS and Android unchanged. Content top inset 64, bottom inset 120 above the nav, side gutters 18.

02
System type

SF Pro maps to Roboto automatically. No webfonts, native rendering, and the OS handles accessibility text sizing without a custom scale.

03
Back, both ways

Pushed pages honor the iOS header arrow and swipe, and Android's hardware back. The same page stack serves both.

04
Motion with restraint

Push at 260ms slide up and fade, sheets at 260ms, toasts at 2.4s in, hold, out. Nothing over 300ms and no springs on field devices.

05
1 bar, 1 behavior

The 5 slot bar is identical on both platforms. Active state is primary ink with a tinted fill; the FAB is raised 10px over the bar on each.

10 · Takeaways

Takeaways

01

Flows before fidelity: wireframing all 22 screens first made the hi-fi phase assembly rather than invention, and caught dead ends while they were still cheap.

02

The field is a design constraint: gloves, sunlight, and 1 handed use shaped hit targets, contrast, and the 2 tap rule more than any aesthetic preference.

03

Commit where the work happens: the checkbox on the row, the clock-in on the first card, and the dispatch in the site room removed the re-entry step that kept the ERP days behind the site.

04

Write the system before the screens multiply: tokens, type roles, and motion rules at v1.0 are what let 1 frame ship to 2 platforms without a fork.

A field tool earns its place in the first 10 seconds of a site morning: clock in, see today, move.