Product
Dealer Management
An operating system for agricultural equipment dealerships.
- UNASSIGNED
- IN_PROGRESS
- AWAITING_SPARES
- AWAITING_BILLING
- COMPLETED
The problem
Seven conversations. One machine.
Servicing one machine involves seven parties. In most dealerships that is seven separate conversations.
- 01
Nobody can see where a machine is, what has been done and what is being waited on — without asking around.
- 02
Warranty decisions from the manufacturer block or blur the service work in the workshop.
- 03
Parts get issued, used, returned and claimed with no single record of what happened to each one.
04One machine's journey
Follow one machine through the whole system.
- 01 / 11
Customer
Phone, WhatsApp or walk-in
A customer reports a problem with a machine. The dealer looks them up by phone or chassis number.
Product screen - 02 / 11UNASSIGNED
Service request
Admin / Supervisor
A ticket is created with the machine, meter reading, location and priority. A parking slot is assigned automatically.
Product screen - 03 / 11IN_PROGRESS
Job card
Supervisor
Issues reported, inspection checklist, work instructions and estimated hours are recorded on a job card.
Product screen - 04 / 11
Technician
Technician
A technician is assigned and the machine moves into a service bay. Work is logged against the job card.
Product screen - 05 / 11
Parts
Supervisor
Spare parts are selected from inventory and added to the job card. Warranty-eligible parts can go to the manufacturer in parallel.
Product screen - 06 / 11AWAITING_SPARES
Store
Store assistant / supervisor
Parts are sent to the store, issued to the technician, and later marked used or returned.
Product screen - 07 / 11
Warranty
Supervisor
Warranty parts are sent for approval with photos and a description. Service does not wait for the decision.
Product screen - 08 / 11
Manufacturer
Manufacturer
The manufacturer approves or rejects each part. Approved parts become non-billable; rejections must be acknowledged.
Product screen - 09 / 11
Warehouse
Manufacturer warehouse
Approved parts are issued from the manufacturer warehouse with a verification photo, and the dealer acknowledges receipt.
Product screen - 10 / 11AWAITING_BILLING
Billing
Finance
Service is completed, billable and non-billable parts are classified, an invoice is generated and payment is confirmed.
Product screen - 11 / 11COMPLETED
Vehicle release
Finance
A gate pass is issued, the parking slot is released and the machine leaves the service center.
Product screen
The system
Every role gets a working surface. Every action leaves a record.
Admin · Supervisor
Service management
Every service request starts as a ticket: customer, chassis number, request type, priority, description, location and meter reading. The ticket is the thread the rest of the system hangs from.
- Requests arrive by phone, WhatsApp or walk-in
- Customer and vehicle looked up by phone or chassis number; created if new
- Request types: breakdown and service; priorities: normal, high, urgent
Supervisor
Job cards
A job card turns a request into executable work: issues reported, inspection checklist, work instructions, estimated hours and the assigned technician.
- Auto-generated job card number; meter reading and service type carried over
- Vehicle handover checklist: fuel level, meter seal, side doors, tool box, video taken
- Section-by-section complaints from cutter bar to engine and body
Supervisor · Technician
Parts
Parts are selected from inventory onto the job card. Each part carries two independent tracks — its store status and its manufacturer status — so the two flows never get mixed up.
- Store status: REQUESTED → SENT TO STORE → ISSUED → USED / RETURNED
- Manufacturer status: NOT SENT → SENT → APPROVED / REJECTED → ACKNOWLEDGED
- Only parts in REQUESTED can be sent to store; duplicates on a job card are prevented
Store assistant · Store supervisor
Store
The store sees pending requests grouped by ticket, issues what is available and marks what isn't — with a reason — so the supervisor knows immediately.
- Issue parts to the technician; mark unavailable with a required reason
- Cannot issue when stock is zero or a part was already issued on the same job card
- Store supervisor acknowledges returns; inventory is updated
Supervisor
Warranty
Warranty-eligible parts are sent for approval with photos and a description. Approval runs in parallel — service does not wait for the manufacturer.
- Photos and a description are required to submit
- Approved parts become non-billable; rejected parts stay billable until acknowledged
- A rejection must be acknowledged before a part can be resent
Manufacturer
Manufacturer
Manufacturers review requests across dealers with the vehicle, customer and photo evidence in front of them, and decide part by part.
- Approve or reject each part; rejection reason is required
- Bulk approval across selected requests
- Complete lifecycle view of every part sent for approval
Manufacturer warehouse
Warehouse
Approved parts are issued from the manufacturer warehouse to the dealer with a verification photo, and the dealer acknowledges receipt to close the loop.
- Issue single or bulk; recipient name and verification photo are required
- Dealer store supervisor acknowledges receipt → PART RECEIVED
- Issuance history per dealer; favourite dealers for quick filtering
Finance
Finance
When service is complete, billable and non-billable parts are classified automatically. Finance generates the invoice, confirms payment and issues the gate pass.
- Billable = parts used minus manufacturer-approved minus returned
- Guided flow: Generate invoice → Confirm payment → Issue gate pass
- Payment method and reference recorded (UPI, cash, cheque)
Supervisor
Physical workshop tracking
The system knows where the machine is. Parking slots and service bays are allocated and released automatically as the request moves through its lifecycle.
- Parking slot assigned when the request is created
- Service bay assigned at job card creation; parking slot released
- Bay released and parking reassigned at service completion
One connected operational story.
AService lifecycle
Tracked from creation to vehicle release. Each status is a real gate.
- UNASSIGNED
- IN_PROGRESS
- AWAITING_SPARES
- AWAITING_BILLING
- COMPLETED
- UNASSIGNED — Ticket created. Parking slot assigned.
- IN_PROGRESS — Job card created, technician assigned, service bay allocated.
- AWAITING_SPARES — Parts sent to store, waiting for issuance.
- AWAITING_BILLING — Service completed and submitted to finance.
- COMPLETED — Gate pass issued. Machine released.
BParts
Two independent tracks per part: store and manufacturer.
Dealer / store
- REQUESTED
- SENT TO STORE
- ISSUED
- USED / RETURNED
Manufacturer
- SENT FOR APPROVAL
- APPROVED / REJECTED
- ISSUED FROM WAREHOUSE
- PART RECEIVED
CPhysical workshop
The machine's physical place — parking slot or service bay — moves with its record.
Physical
- PARKING
- SERVICE BAY
- PARKING
- EXIT
Digital record
- UNASSIGNED
- IN_PROGRESS
- AWAITING_BILLING
- COMPLETED
DWarranty
Warranty runs in parallel. Service does not wait for the manufacturer.
EFinance and release
Payment is confirmed before a gate pass is issued, with a documented warranty-only exception.
- SERVICE COMPLETE
- FINANCE
- GATE PASS
- MACHINE RELEASE
Roles
Nine roles. Two levels.
Platform roles work across dealers; tenant roles work inside one.
- System adminPlatform
- ManufacturerPlatform
- Manufacturer warehousePlatform
- Dealer adminTenant
- SupervisorTenant
- TechnicianTenant
- Store assistantTenant
- Store supervisorTenant
- FinanceTenant
07Engineering
Beautiful software needs strong foundations.
What a user sees is the top layer. Underneath: APIs, rules, data and infrastructure.
- EXPERIENCERole-specific dashboards: supervisor, technician, store, manufacturer, warehouse, finance.
- APPLICATIONReact + TypeScript front end.
- APIsNode.js / Express with JWT authentication and role checks on every route.
- BUSINESS LOGICState-driven workflows with validated transitions and preconditions.
- DATAPostgreSQL with Drizzle ORM. Normalized domain model, tenant_id on every record.
- INFRASTRUCTUREMulti-tenant deployment with tenant isolation.
Dealer Management — as documented
- PostgreSQL + Drizzle ORM
- Multi-tenancy with strict tenant isolation
- Role-based access control
- Normalized domain architecture
- State-driven workflows
- Immutable parts event history
- Physical resource tracking (parking slots, service bays)
08Trust
Systems people can rely on.
Not a promise about security — a chain of controls you can follow.
IDENTITY
Every user belongs to one tenant and one role.
PERMISSIONS
Role checks on every route.
WORKFLOW
Transitions are validated — no gate pass without payment.
AUDIT
Timestamps and user IDs on key actions; parts events are immutable.
ACCOUNTABILITY
Who did what, when.