ESStart a project

Every action.
A reaction.

Behind a useful web application, every click has a consequence. Follow a request from the interface to the work it sets in motion.

Inside the application↘
Project workspace / Requests

Work, in motion.

Every request has a place. Every action has context.

+ New request
All requests  ⌄Board view  ▦
Received 1
RQ-1048Client onboarding

Prepare the account and project workspace.

Assigned teamNew
In review 1
RQ-1047Document approval

Review the agreed project requirements.

Assigned teamReview
In progress 1
RQ-1045Client portal setup

Connect access, files and communication.

Assigned teamActive
RQ-1048 saved · Assigned to your team↗
Connected record
RQ-1048

Client onboarding

OwnerYour team
PermissionVerified
RecordSaved
Request → Review → Action
The interface people useThe logic that moves it forward
ValidationRequired fields✓
PermissionAssigned team✓
Record savedRQ–1048↗
Interactive study · Illustrative content

Scroll to follow the story. Select a step to jump to it.

A clear workspace gives every request a starting point.

Product & interface design

A clear way
through the work.

Give each task a clear path. Design the screens, forms and navigation together with the loading, empty and error states people will encounter.

Client workspace / New request

What can we help with?

Give your team the context to take the next step.

Request typeClient onboarding ⌄
Project details
Create a shared workspace for project updates, documents and approvals.
↗
Project requirements.pdfAttached to this request
✓
✓ Draft preservedReview request →
✓

You’re all set.

Your request is saved. Your team can review it in the workspace.

ReferenceRQ-1048
Next stepTeam review
↳
A useful error. A clear fix.

“Add a project title to continue.” Everything else stays in place.

What this includes
User journeys
Map the task from entry to completion, including decisions, field definitions and the next useful action.
Forms
Validate required information and explain what needs attention while preserving the information already entered.
Interface states
Show whether a task is loading, empty, successful or interrupted. The interface should explain what happened and what comes next.
Accessibility
Provide clear labels, keyboard operation and feedback that does not depend on color alone.

Accounts & permissions

Same application.
The right view.

Connect sign-in to real permission boundaries. Clients, staff and administrators see the work they need, with checks on each protected record and action.

AC

One account.
A defined role.

The interface adapts to the person. Access is checked behind every protected action.

Client session · Active
Who can do whatExample policy
ActionClientTeamAdmin
View own requests✓✓✓
Create a request✓✓✓
Update assigned work—✓✓
Manage access——✓
Workspace ARQ-1048✓ Own record · Allowed
Workspace BPrivate records− Other workspace · Restricted
What this includes
Sign-in
Handle sessions and account recovery as part of the application, including what happens when a session ends.
Roles
Define the actions clients, staff and administrators may perform. Each role has an explicit purpose and boundary.
Record access
Check permission on the server for every protected record and operation. A hidden button alone does not protect data.
Workspaces
Separate customer workspaces so one user cannot reach another user’s records through the interface or a direct request.

Data & integrations

Connected data.
Connected work.

Keep records, uploads, search and notifications connected. Validate incoming information and make the status of external services visible.

Files & search↗
Requirements.pdf↗
Review notes↗
Access follows the record
The source record

RQ-1048

Client onboarding
ClientWorkspace A
StatusIn review

One identity across every connected action.

Business tools↔
CalendarConnected
EmailQueued
Defined connections · Visible status
Activity history↗
09:41Request saved
09:42Review assigned
Delivery queuePending

Notification ready for the next attempt. The original request remains saved.

RQ-1048 / notification
What this includes
Structured records
Define fields and relationships so related actions, messages and status changes stay connected to the same record.
Files & search
Make records searchable and control who may upload, view or retrieve each file.
Notifications
Track communication alongside the underlying work, including unsuccessful delivery attempts.
External services
Connect business tools through defined integration behavior. Preserve saved work if another service is unavailable.
Retries & status
Record failures explicitly and use a defined recovery path. Repeating an operation should not create unintended duplicates.

Administration & reliability

Ready for the
real working day.

Give the people running the application useful controls and a clear activity history. Plan for validation, recovery and the day-to-day work after deployment.

Operations / Activity log

The full picture.

One request. A clear sequence of events.

TimeEventResult
Request validatedRequired fields complete
Passed
Record savedRQ-1048
Saved
Staff access checkedAssigned workspace
Allowed
Notification interruptedService temporarily unavailable
Retry pending
Recovery plan

Saved stays saved.

An interrupted notification is a delivery issue. The request is still available to the team.

Saved records
1
Pending delivery
1
Try the recovery example ↗
What this includes
Administration
Provide management screens with access boundaries appropriate to the task and the information being managed.
Activity history
Keep a record of important actions and status changes so an operator can understand the sequence of events.
Error recovery
Distinguish saved work from failed follow-up actions, and give an operator a defined way to recover.
Scenario testing
Check successful journeys, denied access and interrupted operations before operational handover.

In practice · Illustrative workflow

The request.
Carried through.

Follow RQ-1048 from validation to delivery. A failed notification is recovered while the original saved request stays intact.

Interactive local example

New client onboarding.

Runs only in this page. No accounts, messages or external requests are created.

Execution traceSaved records: 0
  1. Validate

    Check the request and required information.

    Ready
  2. Save

    Assign one identifier to the saved record.

    Ready
  3. Authorize

    Check access for the assigned team.

    Ready
  4. Notify

    Deliver the update or preserve it for a retry.

    Ready
Ready when you are. Run the example to follow the request.
The rules behind the result

One request. One record.

Repeating the notification must not create another request. This is the behavior known as idempotency.

Access before action.

A session identifies the person. Authorization decides whether that person may perform this action on this record.

Status you can trust.

Saved, awaiting review and delivery interrupted describe different conditions. The interface should make those differences clear.

Built around
your operation.

Start with the people, actions and information that matter. Define the first useful release, then expand the application around how it is actually used.

Plan your application ↗Explore Websites ↗

From workflow to handover.

Define the work
Map users, screens, fields, permissions and success conditions. The result is a shared definition of what the application should do.
Build a usable release
Connect the user and administration interfaces to validated data operations, with review points before adding more features.
Test & prepare the handover
Check successful journeys, denied access and interrupted operations. Include integration behavior, recovery paths and administration notes.