Automotive

Repair orders for a car workshop

A car workshop opens a job per vehicle, records the diagnosis, the parts used and the labour hours, and sends the customer a quote to approve from their phone before work starts. The customer sees the status of their car without calling.

Automatically generated draft

Written by machine against our own engineering playbook. The company is invented; the decisions are the ones we would make on a real build. A reviewed blueprint goes further — nine sections, agreed line by line, and it is what the build is tested against.

Section 01 · What has to work

The core of the product is getting a customer's approval on a specific quote from their phone before any work begins on their vehicle.

Section 03 · Screens

Every screen, and what it is for.

  • ›Job Board — Workshop staff view all jobs, their status, and what needs action next. Must instantly reflect status changes. — Workshop Staff, View all jobs, see their status, and identify the next required action., Instantly reflect status changes from other users or customers.
  • ›Job Detail — Workshop staff diagnose, add parts and labor, and generate the quote. Saving line items must be instant. — Workshop Staff, Enter diagnosis details, add parts and labor line items, and generate a quote., Saving a new part or labor line item.
  • ›Quote Approval — Customer views the itemized quote and approves or rejects it. The page must load instantly from a link. — Customer, Review the itemized quote and tap 'Approve' or 'Reject'., Loading the quote details on a mobile browser.
  • ›Customer Status — Customer checks the live status of their job. The current status must be instantly visible. — Customer, View the current stage of their vehicle's repair., Displaying the correct, up-to-the-minute job status.

Anything not on this list is not in version one. That is what keeps a fixed price fixed.

Section 04 · The data model

What it stores, and who can read a row.

Job

id uuid, vehicle_id uuid, customer_id uuid, status enum('Intake', 'Diagnosis', 'Awaiting Approval', 'In Progress', 'Ready', 'Complete', 'Declined'), diagnosis text, created_at timestamptz

Access · Staff can read all jobs. Customers read jobs linked to them.

Customer

id uuid, name text, phone_number text, created_at timestamptz

Access · Staff can read all customers. A customer can read their own record.

Vehicle

id uuid, customer_id uuid, license_plate text, make text, model text, year int

Access · Staff can read all vehicles. Customers can read vehicles they own.

Quote

id uuid, job_id uuid, status enum('Draft', 'Sent', 'Approved', 'Rejected'), sent_at timestamptz, decision_at timestamptz

Access · Staff read all quotes. Customers read quotes for their own jobs.

LineItem

id uuid, quote_id uuid, type enum('Part', 'Labor'), description text, quantity numeric(8,2), unit_cost_cents int

Access · Staff read all line items. Customers read items on their quote.

Those access rules belong in the database, not in the screens. Someone who edits the address bar still cannot read a row that is not theirs — and the test that proves it blocks delivery if it fails.

Section 05 · States

Intake → Diagnosis → Awaiting Approval → In Progress → Ready for Pickup | Declined

Most scope arguments three weeks into a build are really arguments about a state nobody named at the start.

Section 06 · Where this breaks

What bites products like this one.

A mechanic adds parts on a device with intermittent workshop Wi-Fi, leading to data loss or sync conflicts with the front desk.

UI will queue updates locally and sync when connection is restored, indicating a pending state to the user.

A customer approves a quote digitally, then immediately calls to cancel, but the mechanic has already started work based on the app.

Log all customer state changes with timestamps. Reversing an 'Approved' state requires explicit action by an authorized staff member.

The price of a required part changes between when the quote is sent and when the part is ordered.

Quotes can have an expiration date (e.g., 48 hours). Staff can re-confirm pricing before adding parts to the quote.

Section 08 · Deliberately left out

What version one does not do.

  • ×Full parts inventory management and supplier ordering. — Building inventory is complex; for MVP, free-text descriptions and costs for parts are sufficient for quoting and getting approval.
  • ×Detailed vehicle and customer service history. — The core value is managing the current job. Historical data is secondary and can be added once the primary workflow is proven.

This is the section that protects the date, and the only place in the document where somebody says no. It is also why clients trust the rest of it.

Still open

What we would ask before quoting.

  • How is a returning customer's vehicle identified on intake—by phone number, license plate, or name?
  • Is there a distinction between who can diagnose a car versus who is authorized to finalize and send a quote?
  • Is labor calculated as a flat rate for a service, or is it logged as hours against an hourly rate?

Your product, not this one

Get this written for what you are actually building.

Describe it in a sentence and the generator returns the same sections for your own product. Free, no email, nothing saved to a list.

Next step

Find out if your idea fits in 10 working days.

Tell us what you want to build. We reply the same day with a straight yes, no, or here is what we would cut.

NDA available on request