Working prototype/proof-of-concept for a simple, user-friendly service to alert all of government of key change of circumstances.
In a super-simple 4-page process (one of which is confirmation of details and another is a success message), the user can notify the government of a death, birth or change of address.
This information is then distributed to all the appropriate government departments, either using a simple api, or by email (if the department hasn't implemented the api yet). These departments, who will have their own processes and requirements for such changes, can then deal with the information appropriately, which may be just updating their records and emailing an acknowledgment, asking for additional action (e.g. visiting a registry office for confirmation of entry) or sending back a pre-filled form for a live signature.
For this prototype, the following was implemented: 1. The main TellUsOnce application, including entry of submitter details and of change notification details (only death notification has been fully done, but adding change of address/birth notifications is trivial), some validation of required fields, preview screen to allow details to be edited prior to final submission, confirmation of submission, including listing the departments that have been notified.
There is also flexible and easy configuration of the mapping of notification type (death, birth, change of address) to departments and to the method of communicating the information to the department (via email or api). Finally there is a basic admin screen with information about the submitted notification.
Note, after a visitor submits a change notification is submitted, a series of department notifications are created by the application (one for each relevant department) and these are put in a queue for processing. This means the user doesn't need to way for the department notifications to be sent, and allows for the delivery method to be temporarily unavailable. 2. A queue processor, which takes the department notifications from the queue (oldest first), and communicates with the department in the appropriate method (as set in the department-notification_type mapping configuration). When the notification is successfully sent to the department, the item is removed from the queue and the notification is marked as processed (with date-time of processing recorded).
- A sample Department Recipient application, accepting information from the queue processor (basic authentication is built in), and then performing some basic processing with it. For the purposes of the prototype, the user's postcode is used to look up the nearest registry offices near to them, retrieved using the Registry Office Locator, and then the submitting user is emailed with this information, together with notification that the department's records have been updated.
The TellUsOnce application was written in RubyOnRails by Chris Taggart and Rob McKinnon at the DotGovLabs two-day hackday. It was deployed to Slicehost (for the main application and queue processor) and Heroku (for the sample Department Recipient app). There are acceptance tests (using Cucumber) and comprehensive unit tests (using Shoulda) for the main TellUsOnce app/queue processing functionality).
Ideas for taking this project forward
Rather than the typical huge government centralised IT application that cost millions of pounds and years to build and often fail to work properly, this app shows the benefits of using simple decoupled systems whose strength comes from the communications between them.
In particular, the approach shows that a working prototype can be written, tested and deployed in less time than it would take to arrange the meetings to discuss the requirements for scoping out of a typical government project. This means that issues/improvements can be discussed with a working, concrete prototype rather than vague, often poorly understand concepts.
Estimated costs for taking this project forward
About the data used for this project
Registry office data (which was scraped, parsed and published via an api by another team)
Add photos by tagging them with rewiredstate:project="tellusonce-gov"