Glific Internship

Glific Admin

AUGUST 26, 2024

Share

Hi! My name is Harshal Agrawal, and I am a rising senior at Stanford University in Palo Alto, California, studying computer science and finance. This summer, I was a software engineering intern with Glific as a Stanford CS + Social Good fellow.  

I was a remote intern and stayed in Jersey City, NJ, for the duration of the internship! I had a blast this summer working with members of the team, including my mentors Akhilesh Negi, Amisha Bisht, and Anandu Pavanan. Additionally, I want to thank Radhika Bhagwat and Donald Lobo for their guidance and advice. 

While I worked on a few projects this summer, I would like to highlight one in particular for consideration: building out a geolocation webhook. For context, a lot of Glific partner NGOs have expressed a need to provide their beneficiaries with location-specific content. 

For example, a NGO seeking to register students for free tuition might need to know what schools these students attend. Existing Glific functionalities would allow the students to manually enter their school name; however, differences in school name spelling, capitalization, and spacing could make it hard for the NGO to do any further processing internally. If the NGO knew the student’s location, however, it could show the student a pre-populated list from which the student could select their school name instead of manually typing it out. 

 WhatsApp currently enables users to share their location as an attachment, but this location is shared as longitude and latitude coordinates. Glific enables NGOs to collect this information from users using the location interactive message. The purpose of my project was to create a webhook that can take input in the form of latitude and longitude coordinates and output city, state, address, etc. using Google Maps APIs. 

I developed the webhook in Elixir, as is the entire Glific codebase, and used the reverse geocode webhook from Google. Additionally, I wrote test cases to make sure the webhook is working as expected. One of the hardest challenges in developing this solution was configuring the API key so that it is not exposed when pushing the code to Github. Because Glific is open-source, the repository on GitHub is public and cannot contain API keys. To solve this, I followed guidance from previous projects and configured the file changes such that the function takes the API key from the user’s local.env file, which developers can configure given permission from Glific. 

I am very happy to have taken this project from start to finish and proud to see it merged into the existing codebase. For the next steps, I would advise that other map services be considered for backend API use. Google is relatively expensive compared to open-source maps, and perhaps NGOs are willing to compromise on accuracy for cost reductions. Figure 1 contains a cost analysis I performed.

From a learning perspective, this internship was exactly what I hoped it would be. As students, we learn about programming from a theoretical perspective, and the context of our homework is limited in scope. At the most, our homework contains working on mini-projects that are 5–6 files extensive, and we never have to work on code collaboratively using Github. As I seek to transition into full-time roles post-grad, I really wanted experience working with large codebases and learning how to code collaboratively. This internship gave me exactly the experience I was looking for, and I appreciated the patience of my mentors, Anandu and Akhilesh, in helping me learn these new technologies. 

I really enjoyed the flexibility of the internship with regards to learning new technology, trying out new solutions, and asking questions. The remote nature of the internship and the time zone differences did make collaboration tough at times, but we were able to overcome this by setting two standby times (one at night and one in the morning). I am very grateful to the Glific team for this wonderful experience, and I look forward to continuing my professional development in the non-profit sector!

One response to “Glific Internship”

  1. Glific says:

    […] with these students was not only a valuable learning experience for them (Blog) but also for us, especially for team members mentoring for the first time. Read our developer […]

Leave a Reply

Discover more from Glific

Subscribe now to keep reading and get access to the full archive.

Continue reading