Inspection and Laboratory Management Software, Designed and Built by Markit Media
Markit Media designed, engineered and tested a complete inspection and laboratory management platform: inspection reports, container sheets, laboratory results, commercial invoices and certificates in one connected workflow, with eight user roles, approvals and a full audit trail.

Project snapshot
- Client
- Inspection & Laboratory Management Platform
- Industry
- Food & agriculture inspection
- Year
- 2026
- Deliverables
- Four-module web platform (operations, laboratory, invoicing, certification), 8 user roles, 5 PDF documents, automated test suite, walkthrough video
The challenge
An inspection job passes through five hands: the inspector on site, the operations team, the laboratory, finance and the person who signs the certificate. Each often keeps its own file, so the same details get retyped and figures can drift apart.
The brief we set was one system where a single job record flows through all five, every figure is checked by the software and every approval is recorded.
What Markit Media did
This was a full-stack build, and we did every part of it ourselves.
- Product and interface design in the Markit Media brand, with a work queue, progress bars and next-step guidance
- Web engineering: a Next.js, React and TypeScript application with server-side rules on every change
- Workflow and rules engineering: role-based approvals, locks, validation and an audit log
- Document engineering: five PDF documents generated on the server, in the layout of a standard export inspection report and container sheet
- Quality engineering: unit tests and an automated browser test suite that plays each role
- A narrated walkthrough video of one job from creation to certificate
By the numbers
- 4 connected modules: Operations, Laboratory, Commercial invoicing and Certification
- 8 user roles, with approvals enforced by role
- 19-table database schema, designed to move to PostgreSQL
- 5 PDF documents generated by the platform
- 49 scripted end-to-end checks across all eight roles, plus 9 unit tests
How a job moves
Every job follows the same path, and each screen shows a progress bar and tells the current user what to do next.
- Create and assign: an Operations Manager sets up the job and assigns an inspector
- Inspect: the inspector completes the report and the container sheet
- Review and lock: the manager approves the report and the job locks
- Test: the laboratory registers a sample, enters results and a second person approves them
- Invoice: Finance builds the invoice from the job and the samples
- Certify: a certificate is drafted from approved data, reviewed and approved
Operations: the inspection report and container sheet
We rebuilt the inspection form field for field: sampling, single and double packing with top and bottom stitching and package condition, weighing and tare, a summary of inspection and loading today, previously and in total, lot details with seals, remarks, an attachments checklist, and the supervisor's timeline, travel and witness details.
Containers follow the container sheet: up to fifteen stack positions with the bags in each, the net tonnes, zig-zag and door seals, loading times, polymer and Kraft paper placement, silica gel, ventilators and sign-offs. Totals are calculated as the inspector types.
- Net tonnes must match bags times pack size within one per cent, or the job cannot be sent for review
- Container numbers must be four letters and seven digits, with no duplicates in a job
- Loading cannot finish before it starts, and foreign-matter packages cannot exceed the packages emptied
- Reviewed jobs lock, so an approved report cannot be changed by accident
Laboratory: results judged as they are entered
A sample is registered against the job and lot, and a template for the commodity pre-fills the parameters, methods and limits. Numeric parameters pass or fail against inclusive minimum and maximum limits, text limits such as "Absent" must match, and the verdict appears as the result is typed.
- A moisture reading of 14 against a limit of 14 passes; 14.01 fails
- Results are locked once submitted
- A second person approves, and the approver cannot be the person who submitted
- A chain of custody records each hand-over of the sample
Commercial invoicing
The invoice builds itself from the job: one line for the inspection, one per container, and sampling and analysis lines for each laboratory sample, priced from an editable service catalogue. Finance can change quantities and rates, add a tax rate and a discount, and watch the totals update. Money is calculated in whole paisa so that rounding never drifts. An invoice moves from draft to in review, approved and exported, and approved invoices export as CSV for accounting.
Certification
Three document types: an inspection and loading certificate, a testing certificate and an export compliance statement. A certificate can only be drafted from a reviewed job, and a testing certificate also needs an approved laboratory sample. Only the Certificate Approver role can approve one; an Admin cannot. Every document carries a verification code.
Control and audit
Each person sees and can change only what their role allows: Admin, Operations Manager, Inspector, Lab Analyst, Lab Approver, Finance, Certificate Approver and Read Only. Inspectors can edit only the jobs assigned to them. An audit log records who did what, and when, for every change and approval. Sign-in is private, with hashed passwords, signed session cookies and a limit on failed attempts.
Built for the field
The dashboard opens on a work queue for the signed-in role, every job explains the next step, and search is always at the top. Long forms warn before unsaved work is lost. The screens work at phone and tablet widths with no sideways scrolling.
Engineering and testing
The application is built with Next.js 15, React 19, TypeScript and Tailwind CSS 4. Every change goes through server actions that check the user's role and the allowed workflow step. Data lives in SQLite with a 19-table schema designed to move to PostgreSQL, and the PDF documents are generated on the server. The calculation rules sit in their own module so they can be tested on their own.
Nine unit tests cover the calculations: stack totals, tonnage tolerance, laboratory limits at their boundaries, invoice arithmetic and workflow permissions. Forty-nine scripted end-to-end checks then drive the application in a real browser as each of the eight roles, creating jobs, trying invalid input and confirming that a role cannot do what it should not.
Build something like this with us
If your business runs on jobs, samples, approvals and paperwork, whether that is inspection, a laboratory, quality control or any process that moves through several people, we can build a system around the way you work. Talk to Markit Media about your process.
Screens from the platform
Captured on 29 October 2026. Names, numbers and rates shown are sample data.












Services Used in This Project
Want Similar Results?
Let's discuss how we can apply the same approach to your business.



