In use
The map engine moved up a version with the app running
Reused
What is solved in one view serves the rest
In one place
The rules every form is checked against
Starting point
A web client used every day has no window in which to stop. The engines it is built on move up a version, the views multiply with every municipal department that arrives and the data that comes in through them has to arrive complete at the other end. All of that happens while someone has the app open, so every change is tested against that screen and not against an empty environment.
What we did
The platform is Mejora tu Ciudad, by Radmas Technologies, S.L., and we work on its development side by side with their team, here on the web client —the part of the platform that runs in the browser of whoever uses it—: the map engine, the component system and the checking of the data that comes in.
The map engine moved up a version with the app in use. We took the piece that draws the reporting map to a new version, and the change went in with the service running.
What is solved in one view serves the rest. We organised the component system the views are built with, so that what was already solved in one gets reused in the rest instead of being written again. The client grew on what was already solved, without rebuilding the views that already worked.
The form rules are in one place. We left there the ones that decide whether what has been entered is complete and consistent —the dates that have to match each other, the fields that cannot be left empty—, so that they hold for every view at once. And the state of each view —what is loaded, what is being requested, what has to be requested again— is resolved in that same layer.
The result
The reporting map is drawn today by a new version of the engine, and the change went in with people working. What is solved in one view is reused in the rest, and what is entered in a form is checked against the same rules across the whole client.
AngularTypeScriptLeafletRxJS