Food Inspection Console for a Danish Food Control Unit
Designed and built a clickable office console for a Danish food control unit's inspection platform: a risk-based inspection plan, every inspection with its checklist, findings, sanctions and legal basis, and a publication queue that keeps a smiley report offline until the business has its own copy.
Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.
Dashboard, inspection plan, inspections list, inspection detail with 7 tabs (report, checklist, findings, samples, sanctions and hearing, delivery, audit) and the publication queue.
From no sanction through warning, injunction and prohibition to fine, police report and withdrawal of authorisation. Each carries its control result from 1 to 4 and whether it needs a hearing, a deadline or office approval.
Reports reach the smiley feed no earlier than 08:00 on the next working day after the business received them, excluding Danish public holidays. Holding or withdrawing a report needs a reason.
22 inspections, 14 findings, 13 sanctions, 11 samples, 4 hearings, 18 publications and 22 plan items, checked against 21 control points in 9 checklist sections.
Skovmark's 38 inspectors worked from a laptop app that needed a network connection, so in basements, cold stores and farm shops they wrote findings on paper and typed them up in the evening. The legal basis for a sanction was pasted from an often outdated Word document, some smiley results went online before the business had its report, follow-ups lived in a spreadsheet that missed about one in eight, and nobody could say which high-risk businesses were overdue.
Rundgang gives the unit one inspection platform: an offline tablet and phone app for the inspector's route, checklist, sanctions and on-site report, and an office console that plans from risk and frequency rules, reviews reports, releases smiley results on the publication rule and tracks follow-ups. The build covers the office console, with the inspector's work visible in every inspection record.
Danish food control runs on EU food law, the Danish Food Act and its executive orders, the smiley scheme and the Public Administration Act. Every inspection ends in a legal decision, a public result and often a follow-up, and much of it happens where there is no network.
Cold stores, basements and rural farm shops have no connection, so findings, photos and temperature readings ended up on paper and personal phones. The inspector needs the day's businesses, checklists and legal texts on the device and every change saved locally.
A warning, injunction, prohibition, fine notice, police report or withdrawal of authorisation each needs the right legal text, and decisions against a business generally need a hearing first and written reasons with appeal guidance.
The smiley is set by the most serious sanction, and a report must not appear online before the business has received it. An appeal generally does not stop publication, but the published report can show that one is pending.
Controls must be risk-based and at an appropriate frequency under Regulation (EU) 2017/625. With frequencies per risk class, campaigns, complaints and follow-ups on injunctions, the unit could not tell which high-risk businesses were overdue.
Mapped 9 user roles, from inspector and planner to legal adviser, complaints handler, the food business and the public, and 44 screens: 13 for the inspector app, 28 for the office console and 3 public pages. Defined the data model for businesses by CVR and P-number, versioned checklists and legal texts, findings, sanctions, hearings, samples, publications, follow-ups and devices, and wrote down the rules the design follows, from EU food law and the Danish Food Act to the smiley scheme, hearings under the Public Administration Act, GDPR and WCAG 2.1 AA.
Built 5 office console screens on a production dashboard kit: the dashboard with plan coverage, smiley distribution per month, today in the field and needs attention, the inspection plan with due status, risk class, frequency and campaigns, the inspections list, the inspection detail with Danish report, findings with probe readings, sanctions with legal basis and hearing, delivery and audit, and the publication queue. All actions run on local state.
The offline-first inspector app for tablet and phone with an encrypted device store, day packs and sync, and the remaining console and public screens. Integrations with CVR, DAR and Dataforsyningen maps, route optimisation, Entra ID with MitID Erhverv via NemLog-in, Digital Post, Intune, Bluetooth thermometers, Zebra label printers, the laboratory LIMS, the smiley publication feed and NemHandel invoicing, plus a full audit log of who did what, when and on which device.
Each sanction type carries its control result, so the most serious sanction sets the smiley: a warning gives 2, an injunction or prohibition 3, a fine, police report or withdrawal 4. Injunctions need a deadline, and fines and police reports wait for office approval.
Every sanction points to a legal text that the legal adviser maintains, shown in full Danish wording with its version on the report. The inspection header records the checklist and legal text versions in force when it started.
The queue shows when the business received its report, the earliest time the rule allows and the scheduled release, with tabs for scheduled, held, published, failed and withdrawn. Holds and withdrawals need a reason, and a pending appeal can be marked on the published record.
The audit tab lists every finding, sanction and handover with the user, device and whether it was recorded offline. A correction creates a new report version with its own audit entry instead of changing what the business already received.

Designed and built a clickable staff console for an Estonian city's resident services portal: service queues with eligibility results, case detail with register data pulled over X-Road, decision drafting with lawful reasons and appeal information, batch signing with eID and deadline tracking - so residents are never asked for data the state already holds.

Designed and built a clickable permitting and licensing platform for a US city's development services department: completeness checks before the review clock starts, building, zoning, fire and public works reviews running in parallel against city targets, an inspection board that checks certifications, and one record for every permit with its parcel, parties, holds, fees and inspections.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
Enterprise Software Engineering - Human + AI
Contact Us
Locations
Global Headquarters
21 Merchant Road, 3rd Floor, Singapore 058267
Main corporate office and leadership operations
North America Office
548 Market Street, PMB 12345, San Francisco, CA 94104
Client operations and business development
India Office
402 Shivalik Shilp II, SG Highway, Ahmedabad 380015
Engineering and delivery center
© 2026 - Copyright. All Rights reserved Oceanlab