Last November "Fundația Comunitară Oradea" (http://www.fundatiacomunitaraoradea.ro) offered a few grants for ideas that can be put into practice within a year, to make the community we live in a better place. I was one of the lucky few whose project was approved and I wanted to share my way of thinking when developing for the project.
The proposed project was all about the process of continuous feedback to and from local authorities on the state of the city through a web app specially crafted for this purpose: change through technology.
In most fields continuous feedback is used as an early indicator of progress and as a way to track down and identify mistakes in the process, but in the case of a city, the problem is that once it is big enough, it is nearly impossible to track everyone"s opinion in a precise way without major investments in trained individuals. That was exactly the idea behind the project: a way to gather people"s opinions and complaints regarding the urban environment they live in, at a smalls cost.
The first question I needed to answer for my project before I started was: how are things done now? To my surprise, I found out the city I live in (Oradea) already had a system on the local website where one could address inquires/requests to the local authorities regarding the city problems, through a simple web-form with about 12-15 input fields that you can fill up with information like: name, address, description, email, description of issues and/or other personal data. By studying the annual reports of the city, it was clear that with all that information in place, no one was thinking the obvious: statistics.
Here was the first opportunity to bring value with the proposed project: why not take the input data and create statistical value out of it: a centralized map with all the city"s problems sorted by different social issues, departments in the city hall or even by neighborhoods. And what better way to map problems, than letting users add their issues directly on the map, with a click or tap?
Once the map is created, users should have to possibility to visualize and vote up and down other issues; that way, problems of importance would be highly voted and could have priority.
With the map and voting system in place, the project still needed to create a feedback line between city officials and its users. To achieve this, for each issue reported the web app will show a start rating systems when either party wants to close a reported issue (mark it as solved or abandon it), with a small input box, so both the user and the city responder can rate the experience.
For the community user base, it would mean a way of ranking the local departments and its responders and for the local administrators, it would offer a way to filter ill-mannered or abusive users; from a statistic point of view, it would mean a way to represent on a chart satisfaction in dealing with a certain type of problem (environmental, social, law related) as rated by users; that way, city officials will know in what to invest more.
To create an application that is easy to use, with self-explanatory UI and available to a range of devices without changing the experience from one device to another, the choice was a responsive web app build with ASP.NET MVC with the view based on Foundation 5. The map provider selected was OpenStreetMap, as this application would also be open sourced after development is complete, so other communities can benefit from it.
After discussions with city workers and officials who are working with people, we found the following features a must have: e-mail confirmation, CAPTCHA, profanity filter, a way to report abusive users with a three strike rule and support for multiple languages. All this functionality is easily developed using the selected technology and it can easily scale when deployed. That is it, a simple web app in MVC that brings more statistical value to city officials than they will know what to do with.
So, when developing your next project, don"t think only of the task at hand, but think in the terms of adding value to your application, value that can turn a bunch of input fields in a statistics tool.