Enterprise Platform

B2B Logistics SaaS

2023-2024

TMS Platform 2.0

TMS Platform 2.0

Unifying 5 disconnected logistics tools into a single enterprise platform which is serving 50+ clients across contract management, shipment tracking, and intelligence reporting.

Scroll to explore

My Role

Product Designer (End-to-End)

Client

Enterprise Logistics SaaS

Timeline

10-12 months for designing

Team

15+ across Design, Eng, PM

Platform

Web - Desktop First

Tools

Figma, Google Doc, Coda,

01 - The Problem

01 - The Problem

Five tools. Zero shared view. One Designer

Five tools. Zero shared view. One Designer

CJ Darcl Logistics - one of India's largest 3PL providers was running 30+ operational workflows across five disconnected systems. No shared data layer. No unified view. I was brought in as the product designer to help Fretron replace all of it.

What this meant on ground

What this meant on ground

Every cross-domain task required navigating at least three systems. No shared session. No common data layer. No handoff.

Operations

Tracking a single shipment required logging into TMS 1.0, cross-referencing against SAP, and calling the fleet team for an ETA. Three systems, one task, zero audit trail.

Finance

Freight billing reconciliation lived across SAP and WebXpress. Rate cards were in SAP. Actual shipment data was in TMS. Matching them took 4–5 days every month manually.

Fleet

No real-time vehicle visibility. ETA updates were phone-call-based. Fleet maintenance lived in a separate module with no connection to trip planning.

Leadership

Weekly MIS reports were compiled manually from exports across all five systems. By the time leadership saw the data, it was already a week stale.

The constraint nobody talks about

The constraint nobody talks about

The SAP migration wasn't a cutover. It was a 6-phase progressive handoff.

The SAP migration wasn't a cutover. It was a 6-phase progressive handoff.

I was designing the Contract Management module knowing the data it needed to validate was still in SAP for the first two phases. Every field, every validation rule had to account for where the data source would be at launch versus six months later. Designing for a moving architecture is a different problem than designing for a fixed one.

I was designing the Contract Management module knowing the data it needed to validate was still in SAP for the first two phases. Every field, every validation rule had to account for where the data source would be at launch versus six months later. Designing for a moving architecture is a different problem than designing for a fixed one.

How I reached to the problem (My research techniques)

How I reached to the problem (My research techniques)

I joined Fretron after TMS 2.0 had already begun, and within weeks the only designer on the project resigned. I inherited an incomplete platform, an active client engagement, and a 15-person team already mid-sprint.

Spent the initial weeks understanding the existing system through handovers, BRDs, Coda stories, and PM discussions before making design decisions. Worked directly with finance, operations, fleet, and leadership teams at CJ Darcl using their actual SAP systems and spreadsheets. Identified that the core problem was not just disconnected tools, but cross-functional workflows relying on manual coordination across calls, spreadsheets, and WhatsApp.

The user nobody had designed for

The user nobody had designed for

Sitting in those sessions, I noticed something that wasn't in any brief or BRD. Most of CJ Darcl's operational users, the people who would use this platform every day and they were semi-educated. They weren't comfortable with dense English text, long scrolling pages, or interfaces that buried information behind navigation. They needed to see what mattered immediately, on the screen, without reading through it.

Sitting in those sessions, I noticed something that wasn't in any brief or BRD. Most of CJ Darcl's operational users, the people who would use this platform every day and they were semi-educated. They weren't comfortable with dense English text, long scrolling pages, or interfaces that buried information behind navigation. They needed to see what mattered immediately, on the screen, without reading through it.

This wasn't a ordinary finding. It changed how i thought about the design structure,hierarchy, and what "clear" actually meant for this product.

This wasn't a ordinary finding. It changed how i thought about the design structure,hierarchy, and what "clear" actually meant for this product.

The board showing what produced, how produced and how it went through.

The board showing what produced, how produced and how it went through.

02 - Impact

Platform outcomes. And what I can actually own.

Platform outcomes. And what I can actually own.

TMS 2.0 most modules went live in October 2025, 21 months after kickoff. Here's what the platform achieved, and here's what I can specifically attribute to design decisions.

TMS 2.0 most modules went live in October 2025, 21 months after kickoff. Here's what the platform achieved, and here's what I can specifically attribute to design decisions.

Platform-level outcomes

Platform-level outcomes

These are platform outcomes across a 15-person cross-functional team over 21 months

These are platform outcomes across a 15-person cross-functional team over 21 months

80%

Reduction in manual excel exports for daily ops tracking

5 → 1

All five legacy system replaced by single system

3d → hrs

Finance billing reconciliation time, post-platform

50+

Enterprise clients deployed at launch

30+

Modules Shipped across fleet,contract, rail and billing.

Design-attributed outcomes

Design-attributed outcomes

These are the outcomes that are directly connect to the design i made.

These are the outcomes that are directly connect to the design i made.

4.1 -> 1.3

submission attempts after introducing inline validation in a 30+ field workflow.

90%

Structural complexity absorbed of contract module (3 types) without redesign

40+

Implementation gaps caught across 4 releases like data table states etc.

Platform-level outcomes as part of a 15+ person cross-functional team. Design-attributed outcomes are directly traceable to decisions I made.

Deployed · In production

03 - My Contribution

What I did on a 15-person team.

What I did on a 15-person team.

1

New Module Design

New Module Design

Discovery

High-Fidelity

Wireframes

I led end-to-end design of Contract & Fleet Management and the ETQ module - from discovery through shipped components. The challenge in contact is that the data is in SAP and migration was happening in phases.

I led end-to-end design of Contract & Fleet Management and the ETQ module - from discovery through shipped components. The challenge in contact is that the data is in SAP and migration was happening in phases.

Pushback moment

The PM's original scope was 6 weeks. After mapping the rate-card logic and its SAP dependencies in discovery, I flagged that the data model alone needed dedicated design time. We re-scoped to 14 weeks. The module shipped without a structural redesign post-UAT.

2

Refining Existing Designs

Refining Existing Designs

UX audit

Session Analysis

Interaction design

Design Sprints

The existing modules - Order Booking, Shipment Tracking, LSM, POD had been built for TMS 1.0 and carried years of accumulated UX debt. Audited all of them using FullStory session recordings, identifying 12 friction points across the tracking and fleet flows.

Result

The most consistent pattern: users were compensating for missing cross-module context by opening multiple browser tabs simultaneously. That observation directly informed the decision to build a unified detail view. Three design sprints. Twelve friction points resolved before Phase 1 go-live in February 2025.

3

Dev Handoff & QA

Dev Handoff & QA

Component library

Azure Devops

Design QA

Release reviews

Maintained a living Figma component library with User stories in Microsoft Azure throughout. With four frontend engineers shipping simultaneously across modules, the library wasn't optional - it was the only way to hold consistency at pace.

Friction moment

In Sprint 3, the frontend lead flagged that inline validation would require significant rework on their form component architecture. I walked them through the UAT data where users were failing contract submission 4.2 times on average with end-of-form validation. That number ended the conversation. The rework happened.

4

UAT & Client Feedback

UAT & Client Feedback

UAT facilitation

Stakeholder interviews

Backlog prioritisation

Participated in client-facing UAT sessions for 6 enterprise accounts under CJ Darcl. These weren't passive observation sessions. I was in the room translating raw user feedback into prioritised design actions that fed directly into the next sprint backlog.

Discovery finding that shaped the design

Enterprise users don't give you UX feedback. They give you operational complaints. 'This is taking too long' means the navigation has too many steps. 'I can't find it' means the IA doesn't match their mental model. Learning to translate operational language into design problems in real-time, in front of the client this is a skill I built on this project.

04 - Key Design Decisions

Three decisions. Each one a specific response to something observed.

Decision 01

Tabs over single page for complex modules.

During discovery, users were already working around the stepper: one browser tab for contract details, one for rate cards, one for SAP reference data. They had built their own parallel workflow out of the browser's native tab system.

What I rejected:

Accordion sections on a single scroll. Most natural alternative - everything on one page, sections collapse and expand. Simpler to build, familiar from SAP. Rejected because accordions still enforce top-to-bottom reading order. A finance user who only needs Rate Cards still has to scroll past Contract Details and Order Lines.

Key Insight

Accordions can't support a global completion indicator. The 40% progress bar only works with a tabbed architecture where each tab maps to a defined completion unit.

Decision 02

One detail page layout. Cross the entire platform.

FullStory analysis of TMS 1.0 showed a consistent pattern: users navigating from a shipment to its associated contract were switching tabs, opening parallel windows, or copying reference numbers into separate search bars. Every module team had designed their own isolated detail page. Different status badge placement, different action menu position, different tab structure.

Key Insight

This isn't a visual consistency decision - it's an IA decision. When the layout is predictable, users spend zero cognitive budget orienting themselves. They spend it on the actual task. By Phase 2, ops teams were navigating shipment-to-contract lookups as a single action. The same journey in TMS 1.0 required opening SAP in a separate browser.

Decision 03

Design the list for managers, not just editors

Most contract list views are designed for the person filling the form. At CJ Darcl's scale, the contract list is also a management tool. Team leads scan 50+ contracts simultaneously - deciding what needs attention, what's ready to verify, what's stalled.

What I rejected:

Saved role-based preset views - Finance View, Ops View, KAM View. The PM liked it because it demos well. Rejected for two reasons: first, someone has to maintain the presets when roles change. Second, branch managers at CJ Darcl weren't cleanly one role. They needed finance AND ops AND KAM columns simultaneously. Presets would have recreated the exact multi-tab behaviour we were trying to eliminate.

The Decision

Two decisions came directly from watching this in UAT. First is the 40% progress bar visible in every contract row without opening the record and the Second is 16+ configurable columns coverin KAM assignments.

05 - Final Design

30 modules. One platform. Here's how one of them actually works.

30 modules. One platform. Here's how one of them actually works.

Rather than walk through every screen, I want to show you how one module went from a discovery problem to a shipped system. The rest of the platform follows the same design logic.

Rather than walk through every screen, I want to show you how one module went from a discovery problem to a shipped system. The rest of the platform follows the same design logic.

The platform at a glance, 30+ modules across 6 functional domains.

Commercial

  • Contract Management

  • ETQ

  • Pricing Tables

  • RFQ Management


Operations

  • Order Booking

  • LSM

  • Shipment Tracking

  • POD

  • Transshipment

Fleet

  • Fleet Tracking

  • Fleet Load Assignment

  • Rail

  • Fleet Maintenance

  • Tyre/Battery/Fuel Management

Finanace

  • Customer Billing

  • Vendor Invoice

  • Payment Settlement

  • Shipment Costing

Intelligence

  • Freight Intelligence

  • Operational MIS

  • Data Management

Admin

  • Master Management

  • Accessory Management

  • Document Control

Module Deep Dive

Contract Management

Contract Management

This is the module I owned end-to-end. From discovery interviews through to the shipped component system. Customer contracts, vendor contracts, pricing tables, rate cards, and lease vehicle agreements - all unified in one module.

01

Discovery finding that shaped the design

Discovery finding that shaped the design

Contract creation was a multi-stakeholder task. The ops lead needed order volumes before confirming carrier allocation. Finance needed rate cards confirmed before approving vendor terms. Nobody could complete their part without input from someone else - but the system made them work sequentially.

The core decision

The core decision

A linear stepper enforces sequence. A tabbed layout with a persistent summary panel allows parallel context. I chose tabs.

Each tab Approvals are independently accessible. The summary panel shows live contract state regardless of which tab is active. Saving progress tab-by-tab means a finance user can complete rate cards and hand off to ops without either party losing context.

Progress bar

Completion state visible at list level. Ops managers handling 50+ contracts can scan and prioritise without opening a single record.

Column customiser

16+ configurable columns. Finance needs Amount and Bill Submission Rule. Ops needs Transit Days. One list view, role-specific configurations.

Verification CTA

Trigger co-located with Draft status. The action lives where the signal lives. No separate approval workflow to navigate to.

Designing for incomplete - not just complete

Enterprise contracts at CJ Darcl's scale are never filled in one sitting. A contract might be started by ops, handed off to finance for rate card completion, then returned to ops for lane configuration - across days, sometimes weeks. The 40% completion indicator at the top-right is calculated across all tabs, not just the active one. A user on the General Info tab can see the overall contract is 40% complete - meaning there are incomplete sections elsewhere they haven't visited yet.

Module 02

ETQ (Electronic Tender Query)

From registering a tender to receiving and comparing quotations. Designed the RFQ flow to support parallel supplier evaluation - viewing multiple quotes against the same tender spec without navigating away.

02

Module 03

Rail Planning Module

Cross-platform freight exports in real time. Dense data, very few actions. Used progressive disclosure to keep the default view scannable, with drill-down for detailed freight data.

03

06-Reflection

What I'd do differently. And what I'd do again.

What I'd do differently. And what I'd do again.

1

What worked

The tab segregation

As the time move ahead in the project everyone realised that showing tabs makes a lot of change in the view and that is why the modules shipped clean.

Pushing of scope

Pushing back on the 6-week scope estimate was the right call. Enterprise form complexity is almost always underestimated when scoping from requirements documents rather than actual user workflows. The re-scope to 14 weeks wasn't a delay - it's why the module shipped clean.

The Unified detail view

The unified detail view paid off by Phase 2. Operations teams were navigating shipment-to-contract lookups as a single action. That outcome doesn't show up in any individual screen. It shows up in how fast people move through the system.

2

What I'd change

Empty field visibility on the contract detail view

On the Vendor Contract General Info tab, a fully active contract still shows 8+ fields as NA - Tracking Mode, Rate Frequency, Based On, Reference Type, Reference Number, Movement Type, Tracking Preference, Customer Contract No. The reasoning at the time: show all fields consistently so users always know where to look. In practice, a screen with more NA's than actual values creates noise. Users scan past fields that don't apply to their contract type at all. I'd handle this differently now: conditional field visibility based on contract type. Show the data that matters for this contract, not the full schema of every possible contract.

3

What this project taught me

Observing vs Listening in UAT

The users who reverted to opening two browser tabs even when the unified detail view was available were telling me the navigation model wasn't intuitive enough yet. That observation drove a second pass on the detail view's entry points before Phase 2.

Enterprise users don't give UX feedback

They give operational complaints. 'This is taking too long' means navigation has too many steps. 'I can't find it' means the IA doesn't match their mental model. Learning to translate operational language into design problems in real-time is a skill I built on this projec

Open to UI/UX/Product Designer roles.

2026©All rights reserved.

Open to UI/UX/Product Designer roles.

2026©All rights reserved.

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