Solving Community Problems with Open Source Tech Solutions

A quick definition: when I talk about open source technology, I am not necessarily referring to open source technology stacks like Python. I am referring to software solutions that can be freely distributed.

Today we focus a lot on problems on a national scale. However, many of these issues can be addressed locally. Subjects like hunger and poverty which seem like national pandemics are being fought by organizations at the community level.

These organizations have issues of their own. Issues like how food banks accept and distribute donations and how community programs manage their data. Out-of-the-box technical and software solutions are often times out of the reach due to cost or technical capability.

My Experience with Open Source Tech and Police Data Management

I found this out first hand when I was working on a class project at Oklahoma State University. I was conducting an interview with the Perkins Police Department about how they managed their evidence and incident reporting. The short answer: entirely on paper in a backroom.

Perkins PD would absolutely benefit from a law enforcement data management software. However, this is nowhere within reach of their operating budget.

chart

This bothered me. There had to be a lower cost system for Perkins PD to manage their data. With the help of the Wentz Foundation and OSU Scholar Development, I set out to create one.

After a second interview with the department, I found that the department could benefit from organizing their data into incident reports, individual dossiers, and an evidence inventory. Based on the recent, negative climate surrounding police-community relations, I also decided to add a statistics module that logs police interactions by demographics. This could help discussions within the community to be focused on data instead of allegories, hopefully leading to more productive conversations.

I also found that they, and many other tiny departments across the state, use out of the out-of-the-box version of Windows. This inspired me to use the .NET stack because it would consistently work on Windows platform. I decided to use the C# and XAML coding languages to build my application. I also settled on using an internal Microsoft Access database for the program to insulate the data from web-based attacks.

I named the program that I built over the course of the school year Guardian. Here are some screenshots of the application.

The application allows officers to enter reports, evidence, and information on individuals they interact with, and then relate and consolidate the information all in one place.

There was one major hurdle that I encountered, however. According to Oklahoma State law, police departments that utilize the central state law enforcement database (called ODIS) cannot use other, third-party data management software. Because of this, the software is not currently in use in the state of Oklahoma.

However, that’s only a minor setback! The program is in a beta version, but I believe that there is plenty of value Guardian can provide to small, rural departments. I am more than willing to meet with or be referred to a department in another state that could use the program! (Hit me up on the Contact page)

How to Implement your own Open Source Solutions

Using my experience as an example, here are the consolidated steps you can follow to apply your programming knowledge to improving your community.

  1. Identify a problem in your community. Simply talking with community leaders or representatives of nonprofits is a fast way to find issues.
  2. Identify the specific needs that aren’t being met. This will usually require a follow-up interview with the organization from Step 1.
  3. Evaluate current open source technology options and how they could meet those needs. Does the organization need something flexible like Python or would they benefit from the structure of ASP.NET? Perhaps a combination using the Java stack? Could the organization use a mobile application built in Swift?
  4. Develop a solution using your development framework of choice. Make sure to use good programming practices!
  5. Work with a community organization to implement these needs. As you saw in my example, sometimes there are hurdles that really need to be identified in Steps 1 and 2.

A little investigating into community challenges can reveal all sorts problems that can be abetted or solved with small applications. All you have to do is look and get started coding!

 

 

Leave a comment