GSoC Journey: Week 01 of Coding Period

Senthilathiban
3 min readMay 30, 2024

--

Hello folks,

Myself Senthil Athiban, a final year undergraduate student at Madras Institute of Technology. This blog represents a continuous series documenting my journey through GSoC. If you haven’t already read my community bonding blogs, I encourage you to check out my previous blogs here. I have been selected as a GSoC student at OpenMRS for the Validation Rule Builder for the Form Builder project. My primary mentor is Dennis Kigen, and my backup mentor is Hadijah Kyampeire.

Week 1: May 27 — June 01

As the coding period for Google Summer of Code begins on May 27th, 2024, it’s time to get my hands dirty with coding. After weeks of preparation, including understanding the project requirements, setting up the development environment, and familiarizing myself with the codebase, I’m excited to start contributing to the project in a meaningful way.

1. Overview of the Week

In the first week of the coding period, I started to work on my project by initializing the rule-builder component. After receiving feedback from the UI/UX team and my mentors, I finalized the design and objectives of the rule-builder component.

2. Tasks Completed

  • Built the rule builder component by utilizing the carbon design.
  • The Rule Builder is built with the following features: i) adding multiple conditions and actions, ii) editing and deleting the existing conditions and actions, iii) a toggle button that indicates the required functionality of the form field, and iv) reflecting the change in the schema dynamically.
  • Created a Global Store: Used React Context to dynamically store and easily retrieve rules for each field.
  • Progress Presentation: Shared my progress on the rule-builder design with my mentors during a call, including a live demo, and received positive feedback from both mentors.
  • First Pull Request (Draft): Submitted my first pull request: O3–323.
  • Demo: https://www.loom.com/share/4f0a9855b73b4dd28b172c912e06299e

3. Challenges Faced

  • Optimal Placement of the Rule Builder: It took some time to determine the best and most intuitive placement for the rule builder so users could easily understand and utilize its features.
  • Creating the Schema: Developing a schema for storing rules required two iterations to optimize readability and efficiency.
  • Storing Rules Without a Backend: Since the project doesn’t rely on a backend, I used the React Context API to store rules globally, allowing for easy retrieval and editing of form fields.

4. Lessons Learned

  • Gained a better understanding of the project’s architecture.
  • Learned about schema design and optimization for scalability.
  • Developed a user-friendly interface by understanding the user’s perspective.
  • Acquired technical knowledge of optimization using useCallback and state management to avoid prop drilling.

5. Plans for Next Week

  • Make changes based on mentor reviews of my PR.
  • Integrate dynamic schema updates based on user input from the rule-builder.

6. Additional Notes

Coding is not just about writing lines of code; it’s about how well a programmer understands a problem, approaches it, plans the solution, incorporates feedback, and finally writes the code. I have learned that introducing a new feature should make sense to the users and provide them with an overview of its functionality. Without considering these aspects, building a feature is not a good practice at all.

Thanks for reading my blog. Happy Coding :)

About Me

I’m Senthil Athiban, a final-year undergrad from India. Days are for VS Code, nights for GitHub — a constant journey of coding and exploration, fueled by passion and curiosity.

GitHub: https://github.com/senthil-k8s

LinkedIn: https://www.linkedin.com/in/senthil-athiban-m/

Twitter: https://twitter.com/senthil_k8s

--

--