📅 August 30, 2019
•⏱️2 min read
This system was build to help the Freetown City Council (FCC) handle complaints coming in from citizens.
Thusfar, citizens wanting to raise issues such as a rabid stray dog or a neighbour who is dumping their waste in the river have to travel to the City Council, which is costly and highly inconvenient. Complaints are registered on paper forms - and due to the volume of complaints, these forms are often lost or never addressed.
As a solution, I developed the Freetown City Council Complaints Management system, a Django web application with a HTML/CSS/JS frontend and a MySQL database.
The app allows six different divisions of the FCC, including the Police and Sanitation Departments, to:
Allowing citizens to submit complaints directly to the system is a challenging task in Sierra Leone, were most people only have a basic feature phone, and not a smartphone.
Hence I built a feature which allows citizens to submit complaints to the system via SMS. Unfortunately, SMS API providers such as Twillio, Nexmo and Clickatel are not available in Sierra Leone, and I thus had to reach for Textit, a tool which allows you to use an Android phone has an automated SMS channel.
I built an SMS chatbot on Textit - allowing citizens to text a number submit a complaint to the chatbot.
I then built a Python script which queries Textit's API for any new SMS submissions, parses them and converts them to complaint objects and adds them to the app's MySQL database. This scripts runs every 10 minutes using Heroku Scheduler. The complaints will automatically by assigned to a division and appear in the division's complaints tracker, such that it can be solved. The complainants number is automatically captured, enabling follow-up.