This past Saturday, September 12, 2020, was the 8th annual National Day of Civic Hacking.
This event allows for civic leaders, public servants, designers, coders, and engaged citizens to all gather and partner with local government and community groups to come up with solutions to common challenges within our communities.
In honor of this day, I joined a local Hackathon put on by Open Seattle, Code for PDX, Open Eugene, and DemocracyLab to participate in some “Civic Hacking”. This was my second time participating in a hackathon and I was looking forward to contributing to a project for the better of the community.
There were many interesting projects to choose from and I ended up choosing Accessifiers.
Accessifiers: About the Project
Accessifiers is a crowd-sourced application for accessibility ratings will help users and organizations adopt and use more accessible applications.
The problem that Accessifiers is trying to solve is that users with accessibility needs (eg visually impaired or hearing impaired) need a way to search and review different accessibility apps that are available to them. Additionally, organizations looking to be more inclusive can also use this information to determine which apps to support/ use and software providers can address any accessibility issues their apps may have.
The main reason I was attracted to this particular project was the technologies they were using. I have recently been learning C# and was eager to find a way to apply my new skills. I have also been wanting to learn the ASP.NET Core framework which is what this project uses. They additionally use a React front-end and I am very comfortable with that framework as it was a large part of my Bootcamp curriculum.
My Hackathon Tasks to Complete
After my introduction to the project I was given the following tasks to implement into the project:
- Back-end: Storage layer for search (using locally stored mock data)
- Back-end: Search implementation (that supports auto-suggest)
I was excited to work on the back-end tasks and gain more experience in ASP.NET. The following describes the steps I took to achieve my goals:
- created a JSON file to act as the locally stored mock data
- wrote out some dummy app data for testing, making sure the data was consistent with the already implemented app class
- added some methods to the IAppStore interface to allow for search behaviors
- created a new localstorage class, which implemented the IAppStore interface (This way we can later use different storage classes for production and development)
- wrote methods that could read the JSON file for the dummy data and then filter through them on different search criteria
- added a search controller and search endpoints to the API
- using the localstorage class, the API endpoint allowed users to look up apps based on three types of searches: 1. by app name (complete) 2. by incomplete app name, and 3. by app category/type
This hackathon was a very busy day! I learned so much in a day and the whole experience was very fruitful. My main goal was to jump into an existing project and contribute my skills. I was able to do just that and gain experience in technologies I’ve been interested in.
What made this hackathon experience different from my last is that my previous project was new. There was no existing code base to jump into. Accessifiers on the other hand already had the skeleton laid out along with a design for the app. This made it much more challenging (and more rewarding). There was more time spent discussing the project and the structure of the code, asking questions, and playing around with the code before I was ready to jump into coding.
I’m very grateful for this experience especially for when I start working as a software developer. I will need to be able to jump into a large project and find my way. This hackathon and project showed me how to do just that! I’m looking forward to staying with the project and continuing to contribute. Going forward I hope to get a chance to work with other teams such as designers, front-end users, etc.
In the end, I’m very proud to have submitted my very first pull request to an Open-source Project!