Written by- Aman Kumar, Student, IIT Kharagpur
Introduction:
Participating in the Code 4 Gov Tech (C4GT) program has been an exciting opportunity for me to explore various projects and make meaningful contributions. Among the numerous projects, Glific caught my attention, as it resembled as WhatsApp – a versatile open-source 2-way communication platform. Glific aims to facilitate content delivery, enhance NGO engagement with their community. Impressed by its potential, I decided to contribute to the Glific Mobile project and began my journey towards contributing to this impactful initiative. and share my journey of progress and learning.
Getting Started with Glific:
To familiarize myself with the project, I decided to tackle the “good first issue” tagged tasks. These issues were minimal and helped me familiarize myself with the project’s code structure, backend services, and overall workflow. The first issue I worked on was the Login Functionality. In which I have added support for the Axios Client which helps in making HTTPS requests, later I utilized this to implement the login functionality itself.
After successfully resolving my first issue, I have raised my first pull request to Glific with a recorded video of the changes and results. Within a few hours, my mentor, @Shamoon, reviewed my pull request and provided feedback and requested few changes. I diligently incorporated his requested changes as it was easy to understand and convincing, and soon enough, my first pull request was successfully merged. This positive experience motivated me to contribute further. Over the next month, I resolved several issues on the regular basis, here’s the list:
- Set up Jest and wrote tests for the login screen.
- Added GitHub action file for unit testing with Jest.
- Added a splash screen displaying Glific’s logo upon app launch.
- Created side drawer according to the design using @react-navigation/drawer.
- Updated the UI for organization URL page as per designs.
- Added tabs for contacts collection and saved searches on the chat page using @reactnavigation/ material-top-tabs.
- Created and added search bar on the chat pages.
- Restrict logged-in users from accessing the login screen by separating the Auth and App
stack navigation and providing on the basis of availability of token. - Implemented a filter list on the chat page when options are clicked.
- Added a notification icon on the chat page using @expo/vector-icon.
- Implemented render a collection list logic on the collection tab using Apollo Client.
- Navigate to contact messages page with contact details and messages.
- Save server URL in async storage for API usage instead of env variable.
- Implemented theming module for reusing COLORS, FONTS, SIZES.
- Created ESlint file for recommended linting in TypeScript.
- Updated side drawer based on the designs.
- Made updates in the server URL flow.
- Added functionality to send messages.
Now, the project has evolved a lot and has an impressive range of functionalities. Check out the recording here: recording link
Supportive Community:
I have been part of various communities in the past, but the Glific community stands out as something truly unique. Personally, I have experienced a consistently positive and vibrant atmosphere, characterized by a culture of helpfulness and encouragement. Interacting with my mentor has been the best experience in the community, I found him exceptionally calm, and motivating. He generously shared his experiences and provided valuable tips on how to navigate various situations. In fact, he even suggested me to this blog about my experience. (Truly thankful for this idea ).
Future Aspirations:
Looking ahead, I am eager to continue my contributions to the Glific project even beyond the C4GT program. I hope to engage with other team members and mentors, further strengthen my skills, and contribute to the project’s continuous development towards its success, making a lasting impact in the communities.