Our Department of Neighborhood and Business Development launched, in partnership with Code for America, business.syrgov.net. We wrote about the site previously, and in this post will walk through some of the site’s backend, technical details.
Here are the site’s technical details:
The code is located here: https://github.com/CityofSyracuse/syracuse_biz_portal.
The site was built in Python using the Django framework.
The site is hosted using Heroku.
The content management system is Wagtail (built in Python).
The business portal allows users to search for the status of the permits that they submitted to determine where they are in the permitting process. Previously, this information was difficult to obtain online, which forced permit applicants to call the Central Permits Office for updates. We wanted to make the data more accessible to people online.
To make this happen, we developed queries in the database that tracks permits. This was a new process for us, so first we needed to learn how the database was configured. Then we had to determine the questions we wanted to answer with the data that exists.
We used a process to extract, transform, and load (ETL) data into an application programming interface (API). The ETL process allowed us to move data from one place to another, then the API uses the data to power the website.
Mark Headd wrote a great blog post about the ETL process, which is very similar to what we’ve done. You can read that post here.
To further explain things, when someone searches the status of a permit, data is taken from the database that originally looks like this:
Then queries that we wrote are used to filter and expand on the data. Some samples of the queries we wrote are located here (Now that they are in production, they have been improved).
Once the queries are run, the data format changes and looks more like this:
Finally, the website reads this data, and make it more presentable to the website user. The end product looks like this:
In less technical terms, because of this process, data is transferred from a database that is difficult to search to the easy-to-use website, business.syrgov.net. We hope that the community finds that this project is helpful!