Part 1: Primero Open Source

Nidhi Kumari
4 min readJul 13, 2020

--

Open Source is a very beautiful concept that helps every developer to grow and learn a lot and for junior developers like me, open source is a community where we can implement our technical skills and learning to contribute to a big project. Oh! But I am not here to tell you just about Open Source :) In this blog, I will be writing about Primero Open Source and more specifically about Primero v2 project.

Primero is an application designed to help child protection workers and social workers in humanitarian and development contexts manage data on vulnerable children and survivors of violence. It is an open-source project, that means any contributor can work on it if they want to solve some bugs or can reach out to the community.

Why I am writing about it? I am not an employee in UNICEF but a junior developer who got the chance to work on Primero Project under Google Summer Of Code Programme. My main task is to work on accessibility issues in Primero to make it accessible to everyone.

What did I learn?

I learnt a lot from dealing with a large codebase to working on bugs to finally writing tests for those bugs. I learnt how to search for a particular component in a massive codebase. Communicating with the team in a timely manner. I will be writing here separately both my Technical as well as Non-Technical learnings.

Technical Learnings:

1. What is Accessibility?

The main aim of my project is to target web accessibility that means making your website or app user-friendly for everyone. It means somebody with any kind of disability can use our application without getting stuck.

Web accessibility does not only help those who are permanently disabled like people with visual impairments, with hearing impairments but also those who have some kind of temporary disability like-broken arm, broken specs. You can read more about it here.

2. How to find the component where the bug is coming from?

As the code base is in React JS, I use Devtools to target the element and then I use React Devtools to find the component, where the component is and how is the component getting rendered.

3. Material-UI

Design Library used for Primero V2 is Material UI. So, I studied the MUI documentation thoroughly. I solved many issues that were coming from the MUI Tables.

4. Accessibility Testing Tools

I used many Accessibility Testing Tools to find out the accessibility issues like pa11y, Axe, IBM accessibility tool. You can read more about it here

5. Writing the Tests

Test writing was one of the most difficult tasks for me. I used to get stuck many times. To write tests, I learnt how to use Black Box and White Box Testing. You can read about it here.

Non-Technical Learnings:

1. Project planning and managing time accordingly

In the Community Bonding Period, I worked with my mentor Ian Lawrence on creating a backlog document for the tasks that we need to do in the coding period, then we also had a group call with my mentors Jan Panchalingam, Robert MacTavish and the Tech Lead Pavel Nabutovsky. They helped me to plan a proper structure before starting with the tasks. Ian also helped me to make proper documentation of sprint tasks.

2. Art of effective & agile communication with mentors

I learnt about agile communication and the way we can use it in our project to finish the project goals and tasks on time.

3. Professionalism & Working in teams with senior devs/managers

Whenever I had a doubt, it was easy for me to reach out to the senior developers and my mentors. We have a dedicated chat room where I can ping my mentors and they help me to finish my tasks. I work remotely and I am in a timezone that has a very large time difference with the time zone where my mentors are. But I never had a problem in that manner, thanks to my mentors.

This is about the GSoC Phase 1. To read more about the project, you can refer to this link. In Phase 2, I will be working on solving android accessibility issues and after that, I will work on creating a pa11y server for UNICEF. Hope you liked this blog. Do give it a clap if you liked it. You can reach out to me here. Thanks :)

--

--

Nidhi Kumari

GSoC'20 & GSoC’19 @DIAL_community | Intern @Ushahidi | Open Source enthusiast | JS lover ❤️ |