Freetown City Council - Complaints Management System

📅 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:

  • Submit new complaints into the system. Based on the type and location of the complaint, it is automatically assigned to a division within the system

  • View and track complaints assigned to their division in the "Complaints Tracker". Users can filter complaints by category, status and location, and perfors a freetext search.

  • Assign complaints in the tracker to individual users within their Division that should be responsible for handling the complaint.

  • Mark complaints as "Active" or "Solved".

  • Add fines and post updates to complaints. The fines added by the division can be tracked in the "Fine Tracker", to ensure that all outstanding fines are collected.

  • Get an overview of their divisions performance on the Dashboard. Here users can view a weekly summary of the number of complaints solved and amount of fines collected. They can also view a map showing the distribution of their complaints across the city.

  • All changes done within the app are automatically posted to the News Feed, to ensure transparency.

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.