← all projects

EkoZapis

A public register of environmental problems in Croatia — report pollution with photo evidence, follow publicly what happened to the report, and see resolved cases on a map. Without exposing the person who reported it.

Project

EkoZapis

A public register of environmental problems in Croatia — report pollution with photo evidence, follow publicly what happened to the report, and see resolved cases on a map.

Client / Industry

Environmental protection and public services — own product, V1 delivered.

Platform

Public register with a map, a report form with attachments and a moderation interface — REST API and web application.

Role

Product ownership + full-stack development (domain model, API, interface, deployment).

Problem

A report about an illegal dump or a discharge into a watercourse ends up in an email or a phone call and disappears there — the person reporting never learns whether anything was done, and the public has no view of how many cases are open or how many were resolved. At the same time a photograph used as evidence is sensitive: it carries EXIF data with the exact location and device, and the reporter often does not want to be named. What was needed was a register that is public without exposing the reporter or data they never meant to share.

Solution

EkoZapis carries a case from report to outcome and keeps that whole path visible. Reporting works anonymously or with an account, every status change requires a written justification, and anything published goes through processing that strips what does not need to be public.

  • Reporting with evidence — anonymously or with an account. An anonymous reporter receives an access code to follow and amend their case later, without creating an account.
  • Attachment processing — originals stay private and are retrieved only through a signed, time-limited link, while what is shown publicly are derivatives with EXIF data removed.
  • Public register and map — filtering by category, status and area, marker clustering, and a separate view of resolved cases.
  • Moderation with a trail — a mandatory justification on every decision, a case timeline and an audit log; the reporter is notified of changes by email.

Technology

PHP 8.4, Symfony 8.1, API Platform 4.2, Doctrine ORM 3, MySQL 8.4, React 19 + TypeScript, Vite, Leaflet, Docker.

Results

300

automated tests passing, static analysis clean, 72.8% line coverage.

V1

MVP delivered in full — all 18 user stories, from case submission through moderation to the public register.

no EXIF

public photographs carry no location or device metadata; originals are reachable only through a signed, time-limited link.

Need a similar project?