cat ~/production/environmental-assessment-platform/REPORT.md

Environmental Assessment Platform

A formal pollution-scoring instrument turned into an API: georeferenced water, air and land contamination cases scored against a defined criteria set.

role Tech Lead, Backendtimeline 2025category platformclient An environmental assessment body

Problem

An environmental body assessed pollution incidents on paper using a structured scoring instrument with different criteria per contamination type. The instrument was well designed and entirely offline, so nothing could be aggregated, triaged or compared across cases.

Approach

Transcribed the instrument faithfully rather than redesigning it. The assessment is polymorphic by pollution type with three mutually exclusive criteria blocks, twenty scored criteria in total, each carrying its original name inline so the mapping between the client form and the API is never lost. Four-state case workflow where a rejected case is a reviewed case rather than a deleted one.

Outcome

The client scoring instrument works as a system: cases are filed with evidence photographs and location, then triaged through an explicit review workflow.

20Scored criteria · across three pollution types
4 statesCase workflow · reviewed, not deleted
architecture --explain

How it's built

Polymorphic assessment document with three embedded value-object criteria blocks, discriminated by pollution type. The criteria counts are asymmetric because the three instruments were designed independently by the domain owner.

Transcribe the client instrument rather than normalise it

Gaseous waste is scored under water pollution because it affects water. That is a domain distinction, not a modelling mistake, and flattening the three blocks into a uniform criteria set would destroy the meaning the instrument carries.

Three asymmetric blocks are harder to aggregate across than one uniform set, the cost of keeping the domain intact.

related --by-stack

Adjacent systems

REL-001 / platform

Freelance Marketplace with Escrow

Two-sided marketplace for architecture and design work: the platform holds the money until delivery is confirmed, with bidding happening in real-time chat.

REL-002 / platform

Vehicle Rental Platform

Rent a scooter or e-bike from an app: scan the QR, the physical lock opens over cellular, ride, park in a permitted zone, pay by the minute from a prepaid wallet.

REL-003 / platform

Offline-First Pharmacy Platform

A pharmacy management system that keeps selling when the internet drops, then reconciles every till operation exactly once when it returns.