All work

CPINSIncident app for bomb squads

Designing for a package that might be a bomb

Bomb squads needed one place to report a suspect package, alert the squads around it and see it through to resolution. I led the design of CPINS, the app technicians use on scene, and of the admin portal we proposed to keep the network closed to outsiders.

Role
Lead product designer
Company
People10 Technosoft
Team
A PM, 5 developers and me
Status
Handed off to development
Platforms
Mobile app and admin web portal
View as

The problem

The client needed squads to log suspect packages in a structured way, pull in nearby squads and record how each one ended. The information is sensitive, so the system had to stay closed to the public.

What I did

Proposed the design process with the team and got it agreed. Researched the context, defined roles and permissions, worked through every flow on the whiteboard with the team and developers, then designed both products: structure, flows, screens and guidelines.

What I handed off

A mobile app with eight core features for technicians and non-technicians, an admin web portal for accounts and squads, and visual guidelines for both.

A suspect package could be a bomb.

Until it is cleared, every detail about it matters: where it is, what it looks like, who has seen it and what has been done. CPINS moves those details to the squads that need them, quickly, and to nobody else.

01Understand

Fast to report, closed to outsiders, clear about status

The brief arrived as four jobs. Background research on how bomb squads work added the constraints that shaped every screen after it.

The brief, as four jobs

Each job became one or more features. The links jump to where it landed in the app.

One package, start to finish

An incident moves through five moments and three statuses. The status is the one thing every squad has to read correctly, so it travels with the incident everywhere it appears.

  1. Step 1

    Reported

    A technician on scene logs the package. Location comes from the map, the details are taps, and up to three photos go with it.

    Technician on scene
  2. Step 2

    Alerted

    Squads subscribed to that squad or area get a notification on their phones.

    Subscribed squads
  3. Step 3

    Discussed

    Other technicians open it, read the details and comment. If the photos aren't clear, they ask for more.

    Nearby technicians
  4. Step 4

    Held

    If it can't be closed yet, it is marked pending, so nobody assumes it is over.

    Any technician
  5. Step 5

    Resolved

    Whoever acts records the outcome: a real device and what was done, or no device, a hoax or a false alarm.

    Acting technician

What research added to the brief

We researched how bomb squads operate and what is sensitive about their work. Five findings became rules for the design.

What we learnedSo the designSee it in
01

Squads carry information that can't reach the public.

Nobody joins the network on their own. People register, and an admin approves or rejects every request.

02

Privacy can't be left unattended.

What you can do follows your role. Non-technicians can follow incidents but can't add or remove them.

03

Correct, timely information decides outcomes.

Reports use predefined options and carry a timestamp and a status. Every change notifies the squads that follow the incident.

04

It is a high-risk moment, so every step must be obvious.

One decision per screen, large tap targets, and follow-up options that appear only after you choose.

05

Authorities should manage data and accounts.

A separate admin portal takes account work out of the database and out of the field app.

02Process

There was no design process, so we proposed one

No process had been defined for the project, so we drafted one and convinced the authorities it suited the work before a single screen was drawn.

Process: problem understanding, research, solution brainstorming, implementation, evaluation and testing, development, support. Research loops back to problem understanding, brainstorming loops back to research and to problem understanding, and testing loops back to problem understanding. Problemunderstanding Research Solutionbrainstorming Implementation Evaluationand testing Development Support Loops back when research or ideas reopen the problemTesting sends it back to the start
Problem understanding

What the client asked for, who would use it and what could go wrong.

  1. 1
    Problem understanding

    What the client asked for, who would use it and what could go wrong.

  2. 2
    Research

    Background research on how bomb squads work and what is sensitive about it.

    Can send us back to problem understanding
  3. 3
    Solution brainstorming

    Whiteboard sessions with the team, then with developers to check feasibility.

    Can send us back to research or to the problem
  4. 4
    Implementation

    Information architecture, flows, screens and the visual guidelines.

  5. 5
    Evaluation and testing

    Reviewing the designs against the brief.

    Anything that fails goes back to the start
  6. 6
    Development

    Handing the designs to the developers building the app.

  7. 7
    Support

    Design support while the product was being built.

My part

As lead designer I carried the work through every stage, from research to the guidelines the developers built from. Select a stage to see what happened in it.

03Define

Permissions first, screens second

The data is sensitive, so the first thing we pinned down was who can see and do what. Both products are structured around those three roles.

Three roles, defined by what each can do

Select a role to see its permissions. A dash means that role works in the other product.

Permission
Get alerts from the squads and areas they choose
Technician: yes.
Non-technician: yes.
Admin: works in the other product.
Add or remove incidents
Technician: yes.
Non-technician: no.
Admin: works in the other product.
Use the admin web portal
Technician: no.
Non-technician: no.
Admin: yes.
Approve or reject new accounts
Technician: no.
Non-technician: no.
Admin: yes.
Add or delete users and admins
Technician: no.
Non-technician: no.
Admin: yes.
Assign squads and approve squad changes
Technician: no.
Non-technician: no.
Admin: yes.

Columns: technician, non-technician, admin.

Two products, two structures

The app is built around a feed of incidents. The portal is built around people and requests.

Hover a screen to trace its path from sign-in.Tap a screen to trace its path from sign-in. Swipe the map sideways to see all of it.

04Decide

The questions in the margins changed the design

We sketched every flow on a whiteboard with the team, then walked it through with the developers, so feasibility came up while ideas were still cheap to change. The notes in the margins are where the decisions happened.

Select a numbered note. Hover the photo to magnify the handwriting.

Whiteboard covered in hand-drawn mobile app flows: login, feed, new incident, incident details, map view, subscriptions, with questions written in the margins.
Mobile flows, first whiteboard session
My part

I sketched these flows with the team and kept the open questions in the margins, then turned each answer into a change in the screens that follow.

05Design

Built to be read at a glance

The visual language is small on purpose: one action colour, three status colours, two typefaces and a set of icons that fill in when they are active.

Colour

From the original guidelines

12.2:1Emphasis button#0207B8. Primary actions and the chosen option.
17.9:1Background#171717. Dark bars in the app and the admin portal.
2.96:1Other button#969696. Secondary buttons and supporting text.
Text colour#FFFFFF. Text on buttons and dark bars.
Active#FF2D55
Pending#FF9500
Resolved#4DDDC7

Contrast is measured against white. Status colours always sit next to a text label, never alone.

Type

Two families

Take ActionArchivo Black for screen titles and every action label. Heavy and wide, so it reads at arm's length.
Suspect package observedOpen Sans for everything you read: details, comments, notifications.
ProceedResend notificationActions are set in capitals with open tracking, so a button never reads like a sentence.

Icons

Filled when active

All incidents
My incidents
Map view
Notifications

In the tab bar: white and filled for where you are, grey outlines for everywhere else.

Components

Reused on every screen

Primary action
New incident
One choice at a time
Resolve incidentRequest additional info
Tiles instead of typing
PackageRCIEDVBIED
Status, always labelled
ActivePendingResolved
05The app

One decision at a time

Scroll through the core features. The phone is a live rebuild of the original screens, re-moulded for iPhone 16 Plus, so you can tap through it at any point.

01All incidents

The feed

Every incident in the squads and areas you follow, newest first. Each card leads with photos and a status, so a technician can size up an incident before opening it.

Photos first, words second

In the field, a picture of the package answers more than a paragraph about it.

Brief: capture detailsBrief: let others help
Open a card, or switch tabs at the bottom.
02Create incident

Tap, don't type

Location comes from the map and the time from the clock. Everything else is a tap: package type, function, how it was identified, how it is employed and its status, plus up to three photos.

Predefined options over free text

Tiles are faster than typing, and they make every report read the same way. Rare fields wait under Add more details.

Brief: capture details
Pick tiles, add a photo, then press Create with no package type.
03Incident detail

Everything a second squad needs

Status, type, time, squad, the reporting technician and a number to call with one tap. Comments and photos sit below the details.

The next step never moves

Take action is pinned to the bottom of every incident, in the same place each time.

Brief: capture detailsBrief: let others help
Post a comment, or tap the contact number.
04Take action

One action at a time

Three actions: resolve the incident, ask for more information or resend the alert. Pick one, and only the options that follow from it appear.

Short paths are hard to get wrong

Under pressure, a long form invites mistakes. Showing one decision at a time keeps every path to three taps or fewer before Proceed.

Nine scenarios, one screen. Pick one and watch the path.

Ends resolvedEnds pendingStays active
05Comments

The conversation stays with the incident

Every comment on an incident lives in one thread, so whoever opens it later gets the whole story without asking around.

One thread per incident

Context that lives in side channels gets lost between squads and shifts.

Brief: let others help
06Map view

Lead with the nearest

Nearby incidents appear as pins coloured by status. The nearest one's card is already open when the map loads.

Answer the first question first

On the map, the first question is what is closest. The card answers it before anyone taps.

Brief: find packages nearby
Tap a pin. Tap it again to open the incident.
07Filters

Filter by expertise

Filter by device type, status, region, area or squad. A specialist can narrow the feed to the incidents that match what they know best.

Let experts find their incidents

Filtering by device type means the right technician can offer help, not just the nearest one.

Brief: see your locations
Tick a status, then Apply.
08Subscriptions

Follow only what's yours

Technicians choose which squads, areas and regions they hear from. New users pick these straight after registering, so their first feed is already relevant.

Less noise, lower load

A few alerts that matter beat many that don't. Fewer interruptions leave room for the ones that count.

Brief: see your locations
Subscribe to a squad, then check the Subscribed tab.
09Notifications

What changed since you last looked

Updates on incidents you follow or reported, grouped as New, Today, Yesterday and Older. Actions you take in this prototype show up here too.

Group by recency

Returning to the app, the only question is what is new. The grouping answers it in one glance.

Brief: let others help

Live prototype. Tap anything on the screen.

06Admin portal

Closed by design

At the start, a database programmer added every account by hand. That made the squads depend on someone outside them, and squad members couldn't be trusted to add or remove each other. We proposed a separate web portal for admins.

  • No database programmer in the loop

    Every account used to be added by hand by someone outside the squads.

  • Squads don't manage each other

    Members can't add or delete other members, which protects trust and privacy.

  • Simple to run

    A web interface makes squad management straightforward and needs little outside support.

  • Out of the field app

    Admin work happens in the background, so people in the field never have to deal with it.

Create technician and non-technician accounts

Assign squads and approve squad changes

Add, remove and manage admins

The same screen, wireframe to final

Users, Add new user. Drag across to compare. The final portal runs dark, with the app's action blue kept for the one button that matters.

Drag the handle or use the arrow keys.Drag the handle.

07Reflect

What I'd keep, and what I'd change

Outcome

The app went into development with its guidelines, and the admin portal we proposed was designed through to final screens. The brief asked for something simple enough to use in a crisis, and that one requirement settled most of our arguments.

What held up

  1. Structure over free text

    Predefined options made reports quick to file and consistent to read, whichever squad filed them.

  2. Moving admin work out of the field app

    It kept the app about incidents and solved the trust problem at the same time.

What I'd change now

  1. Test it in a drill

    Our reviews happened at desks. Today I would watch technicians run the core flows in a timed exercise, in their gear.

  2. Plan for no signal

    Basements and cordoned buildings drop connections. Reports should save on the device and send when the signal returns.

  3. Fix the contrast

    The grey supporting text in the cards is under 3:1 against its background, and the resolved teal #4DDDC7 is 1.68:1 on white. Status always carries a text label, but I would darken both.

  4. Agree on a measure

    Time from first sighting to the first alert is the number this product exists to shrink. I would baseline it with the client before design starts.