Dealer management system and manufacturer ERP

Vehicle Maker DMS & ERP

One system from purchase order to production line to dealer showroom to workshop — with each dealer seeing only their own data, even offline.

AT A GLANCEAUTOMOTIVE & MOBILITY
Apps
Head-office web app, dealer mobile app, customer portal, website feed
Scope
~190 data models across procurement, production, sales, service and accounts
Isolation
PostgreSQL row-level security per dealer
Built with
Fastify, React, Expo, PostgreSQL, Prisma
12 MODULESBUILT AND SHIPPED

The problem

What it replaces

A vehicle manufacturer selling through dealers usually runs procurement, production, dealer supply, sales, service and warranty in separate tools. Chassis and battery serials are matched by hand, dealer credit is checked after the fact, and the head office cannot see stock or sales across the network until month end.

This platform covers the whole chain: procurement and stores, production that mints serialised vehicles, credit-checked dealer allocation and dispatch, dealer sales and finance, workshop and warranty, and accounting export — with row-level tenant isolation and an offline-capable dealer app.

Who uses it

Head office
Procurement, production, allocation, approvals and accounts, with screen- and field-level permissions.
Dealers
A floor app for stock, sales, the spares counter and the service bay, that keeps working without a connection.
Customers
A self-service portal with OTP sign-in.
Website visitors
Catalogue and dealer locator published from the system; web leads flow back into it.

Features

What the system does

01

Masters

Models, variants, colours, bills of materials, parts with fitment, price lists, tax rates, territories, dealers, outlets, warehouses and bins.

02

Procurement

Supplier scorecards, indents, RFQs and quotations, purchase orders and amendments, gate inward, QC, GRN, returns, debit notes and import landed cost.

03

Production and serialisation

Production orders and material issue; finished-goods receipt mints each chassis with its paired battery serial, followed by vehicle QC.

04

Dealer supply

Dealer indents, credit checks, allocation runs, dispatch with transporters, dealer GRN, GST invoices, dealer ledger, schemes and targets.

05

Dealer sales

Leads, test rides, quotes, bookings, retail invoices, registration, finance cases, pre-delivery inspection, trade-ins and campaigns.

06

Spares counter

Counter sales, returns, credit notes, back orders and online orders.

07

Workshop

Appointments, estimates, job cards with labour, parts and photos, job invoices, battery diagnostics and service reminders.

08

Warranty and quality

Policies, registrations, claims with evidence and RMA, recall campaigns, complaints with SLA and CSAT.

09

Accounts

Ledgers, payment vouchers, journals and batched export to the accounting package with ledger mapping.

10

Approvals and conversions

A rule-driven approval engine, and document conversion from indent to RFQ to purchase order and on down the chain.

11

Offline dealer floor

Sync packs and a durable mutation queue, with overcommit rejection and a list of sync exceptions to resolve.

12

Read-only AI assistant

Head office can ask questions in plain language; the assistant uses permission-checked tools and pseudonymises personal data before anything leaves the system.

Architecture

How the pieces fit together

A monorepo with one API, a head-office web app and a dealer mobile app. Tenant isolation is enforced by the database itself, not just by the application, and everything that leaves the system goes through an outbox.

Apps

  • Head-office appReact · Vite
  • Dealer floor appExpo · offline queue
  • Customer portalOTP sign-in
  • Brand websitecatalogue & leads feed

Platform

  • ERP & DMS APIFastify
  • Approval engine
  • Sync servicepacks & mutation queue
  • Outbox workersSKIP LOCKED
  • AI assistanttool-calling, read-only

Data

  • PostgreSQL 16row-level security
  • Audit log

Connected services

  • Accounting export
  • Online store
  • Email, SMS, WhatsApp
  • AI modelpseudonymised input
Each request sets its dealer or head-office scope on the database transaction, and PostgreSQL row-level security filters every query by it, so one dealer cannot read another’s data even if application code has a bug.
  1. Buy and buildPurchase orders become stock; production consumes it and mints serialised vehicles.
  2. AllocateDealer indents are credit-checked and allocated, dispatched and received.
  3. SellDealers take leads to booking and invoice, online or offline, and sync back.
  4. ServiceJob cards, warranty claims and recalls keep the vehicle’s history in one place.
Built with
  • TypeScript
  • Fastify
  • Prisma
  • PostgreSQL 16 (RLS)
  • React
  • Expo / React Native
  • Vitest

Built before, fitted to you

Start from an architecture that has already shipped

We have delivered this kind of system, so yours starts from a design that is known to work, not a blank page. Your workflow, your terminology and your approval chain shape what we build on top of it.

Enquire Now