A public register for civic problems. Report it, get a reference number on the spot, and follow it through every stage until a department marks it resolved.
A report is a record, not a message into a form. It gets a number, a department, a status, and a history that anyone holding the number can read.
01
A status, and a timestamped history behind it.
Every status change, assignment and priority change is written to the issue history with the time it happened, so the timeline shows who moved the report and when, not just where it ended up.
A fifth status, Rejected, closes a report that cannot be acted on. Nothing is deleted, and the entry stays in the history with the rest.
02
A reference number you can read out loud.
You are shown Issue #1024 the moment the report is filed. Anyone with that number can check the progress, with no account and no sign-in.
03
Duplicates are caught before you submit, not after.
The check runs on what the form already holds: same category, within about a kilometre, and a trigram match on the title. Existing reports come back before a second one is created.
04
AI suggests the triage. An officer decides it.
Category, priority, department and a short summary are stored beside the real fields, never instead of them. With no model key configured the report is filed exactly as you wrote it.
05
The report reaches a department, not an inbox.
Issues are assigned to a department, and an officer acts within theirs. Public views carry a first name at most, never an email address or an account id.
06
The whole register exports, and restores.
Every table exports to one versioned file, checksummed, with the option to strip email addresses before it leaves trusted hands. The same file restores the register.
Filing a report, with the duplicate check running before it saves
An officer triaging it: category, priority, department, then a status move
The dashboard the office reads, counted straight off the register
A backup taken and restored inside a single transaction
The same record, from both sides
A citizen reads one row of the register. An officer works the same row. Neither gets a private copy, which is why the history a citizen can read is the history the officer wrote.
What a citizen sees
#1024
Acknowledged
Street light out on the river path
Riverside path, near the boat club
Roads
Report filed12 Feb, 09:14
Acknowledged by Roads12 Feb, 11:02
Waiting on: work assigned
Read with the number alone. Tracking a report needs no account and no sign-in.
What an officer sees
#1024
Roads and transport
Category
Roads
AI suggested, officer confirmed
Priority
High
AI suggested, officer confirmed
Department
Roads and transport
Assigned
The model fills a second set of fields beside these, never over them. A report only counts as triaged once an officer has accepted or overridden each one.
Moves offered from here
Start work
Resolve
Reject
Only the moves the workflow allows are offered, and closing a report needs a written reason before it will save.
What the system does with a report, and what it does not do with your name.
Yes. Filing a report needs a signed-in account, so a report can be traced back to a person if a department needs to ask a question. Tracking is the part that needs no account.
You are shown a reference number, like Issue #1024, as soon as the report is filed. Enter it on the tracking page and you get the current status and the history behind it, signed in or not.
Submitted is filed and waiting. Acknowledged means a department has seen it. In progress means someone is working on it. Resolved means the department has closed it as done. Rejected means it cannot be acted on, and the report still stays on the record.
The system looks before you submit, not after. It compares the category, the location within about a kilometre, and the wording of the title, then shows you the existing reports so you can follow one instead of adding a second.
No. It suggests a category, a priority, a department and a short summary, and those suggestions are stored beside your report rather than replacing anything in it. An officer accepts or overrides them. If the model is unavailable the report is filed exactly as you wrote it.
The public view of an issue carries a first name at most. Email addresses, account ids and full names stay on the authority side, visible to the officers and administrators who act on the report.
Not through the product. A report that cannot be acted on is marked Rejected and stays in the register with its history, because a record that can quietly disappear is not a public record.
An administrator can export the whole register to a single versioned, checksummed file and restore from it. Email addresses can be replaced with stable placeholders when the file is going to leave trusted hands.