I was recently a part of a social good hackathon Code For Good 2022 earlier this year. It was a part of the recruitment process of J.P. Morgan Chase & Co. for the Software Engineer position.
What is Code For Good?
CodeForGood is a social-good hackathon organized by JP Morgan Chase and Co. every year to provide software solutions to Social-Good Organizations (further referred to as SGOs).
The participants of this event (at least for India) are Second and Third Year Engineering Students who're in the process of recruitment for a Full-Time Role or a 6-month Internship at the company. These are students from Engineering Colleges across the country who have qualified from the Coding and Video-Interview Rounds.
For more about my experience in CFG, read this article.
The Problem Statement
The organization assigned to my team was Center for Gender and Politics (CGAP). They promote gender equality in politics with the help of awareness campaigns, blogs, etc. They function across South Asia.
They wanted a software solution to increase their audience to spread awareness about their initiative.
Given that we only had 24 hours to work on a solution, we thought of working on an approach where we tried to solve as many problems for the organization as possible. Here are some of the things that we initially listed down, which we thought we could fix.
- CGAP already had a blog as a part of its website. It just needed a better, more interactive user interface.
- CGAP had volunteers who collected stories across South Asia, sometimes in their regional languages. They had them stored scattered in Google Drive. They would like to work with a centralized database.
- CGAP's blogs were newsletters generated by a MacOS tool in PDF form, i.e. images put one after the other. It wouldn't be SEO friendly. An ideal solution would be to switch to Markdown, which would also help in incorporating meta tags to help improve SEO.
The Tech Stack
As a team, we decided to proceed with the following technologies given the simplicity of setup and working procedure.
- Frontend: Next.js
- Backend: Strapi.io (comes bundled with an API and an SQLite database by default)
- Python for Web Scraping
Web Scraping using Python
We used The Guardian's public API alongside Python to automate the scraping of stories from the internet. The idea was to showcase that we can automate the collection of stories across South Asia.
According to CGAP, this is the first step of getting stories on their blog. It is also the step that takes the longest due to its complexity. Any measures in automating this would save a lot of time.
Volunteer Recruitment using a Chat Bot
We thought that providing an AI chatbot would be an intuitive approach to onboard volunteers. The submissions would be stored in a CSV file, making it easier for the administration to manage them.
We wanted a centralized database to simplify the collection and management of stories. The fact that Strapi comes with an admin panel also meant that it would make it easier for the volunteers to write articles, monitor and publish them.
Publishing articles from the backend was necessary because the collection of stories is handled from the backend too.
We aimed at having a relatively minimalist UI design for our blog front end since our primary focus was on functionality. We were able to split blogs into different categories to showcase them.
We were also showcasing articles written in regional languages.
We also had an Authentication System for Volunteers to Sign In and monitor their progress in their blogs. The stage of progress was also dynamic, i.e. retrieved from the database.
Bonus: Text Summarization
We also added a simple feature for summarizing the text to be added to article excerpts. CGAP wanted article excerpts to be somewhere around 50-60 words.
It was a lot of work to do in less than 24 hours alongside all the brainstorming, setup and making a presentation. I feel that completing this project as a team of 4 people was a huge accomplishment. The appreciation and positive feedback from the jury made it even more special.
Making it through the night, going through to the final round and winning the competition is another story. This hackathon has given me a lot of memories to cherish.