Google Season Of Docs — Final Report

NamyaLG
6 min readDec 17, 2022

In this blog, I will share an overview of the tasks I accomplished during the Google Season of Docs 2022 term. The contribution lasted from May 2022 — November 2022.

Final report!

Goal of the project

Building technical documentation, case studies, and testing existing documentation

The scope of the project outlined by the project maintainers : https://github.com/moja-global/mentorship/blob/main/google-season-of-docs/GSOD-2022-Project.md#projects

Project 1 caught my attention, and I began working on developing a proposal for the same. Fast forward to May 2022, I was accepted as Technical Writer 1. (I will cover the details of writing my proposal extensively in another blog)

Acceptance email !

Tasks accomplished

My tasks were broadly divided into 5 milestones — with a mix of technical writing as well as coding and implementation.

The following are in chronological order of completion

Refactor the moja global technical documentation

Pull requests

  1. https://github.com/moja-global/moja_global_docs/pull/184

Integration of a feedback funnel into the technical documentation

  • Built a feedback funnel and integrated it into the technical documentation. The feedback funnel is included at the end of every theory section, while on every page for code/installation sections
Feedback funnel
  • The feedback collected is logged in the Google Sheet Feedback Funnel [Provides access to the Google Sheet containing feedback logs as well as the App Script]
  • This has been implemented using Google Apps Script, and the UI added to the Sphinx source code

Pull requests

Generating source documentation for the GCBM

  • Built and hosted the technical documentation of the GCBM on Github pages.
  • Went over multiple iterations before using Doxygen and altering the default theme ( Find more about this in Month 1 and Month 2 )
  • Initially, Sphinx-based documentation was developed using Breathe as a bridge between Doxygen and Sphinx, however, due to the difficulty involved in representing class diagrams, associations, and generating the documentation, the decision was made to use Doxygen only, based on the custom theme: https://jaideep777.github.io/Plant-FATE/html/index.html
  • The documentation hosting pipeline has been integrated into the CI — on each push/PR, Github Actions will build the latest version of the documentation and deploy it to Github Pages
  • Built a simple CLI utility based on lex to ensure that the files documented have no additional side effects and the code is unchanged. The idea is to strip the documented code of single line and multi-line comments and check if there is a diff between the files https://github.com/Namyalg/diff-checker-code-comments
  • The documentation is hosted at https://moja-global.github.io/moja.canada/

Pull requests

Integrating a spell checker into the CI pipeline

  • The initial plan was to integrate vale into the CI pipeline. However, due to some limitations, it was decided against using it. The idea behind integrating vale, was to ensure that the documentation followed the style guide
  • Presently, codespell has been integrated on pre-commit. codespell checks for trivial spelling errors and corrects them automatically on pre-commit.

Pull requests

Deploying the Sphinx Handbook on Github pages

  • Setup the repository for the Handbook based on the theme furo.
  • The Handbook is a comprehensive guide of the moja global ecosystem. Building the Handbook was the second project proposed by the maintainers
  • Link to the Handbook : https://github.com/moja-global/Handbook
  • Hosted the moja global Handbook developed on GitHub pages.
  • It has been integrated into the CI, on every change to the Handbook, it will automatically be deployed to GitHub pages.

Blogs and Case studies

  • Authored a blog on FLINT Cloud, the significance and importance of the project in the moja global ecosystem, and recent project updates.
  • Covered the mid-review progress by mentees under the programs — GSoC, GSoD, LFX, and Outreachy
  • Looking to cover the end-review reports and publish them all on the community website

Pull requests

Stress testing FLINT.Cloud with Locust

  • Stress testing is used to test the robustness of a system. Along with the LFX mentees, I worked on stress testing the FLINT and GCBM examples with locust.
  • Locust (https://locust.io) is extremely user friendly, and it is possible to load test your application within seconds.
  • It was found that GCBM does not handle concurrent simulation requests, this will be a focus in future enhancements to the GCBM.

API development for FLINT.Cloud and strategizing the future of FLINT.Cloud

  • FLINT.Cloud (https://github.com/moja-global/FLINT.Cloud) is a project that aims to demonstrate continuous deployment for FLINT, the flagship software of moja global
  • Actively involved in the migration of the simulation from taking only static inputs to dynamic inputs
  • Propose new endpoints for renaming the input table names and attributes

Pull requests

Documentation development for GCBM.Belize and GCBM.Colombia

  • Developed sphinx documentation websites for GCBM Belize and GCBM Colombia.
  • The documentation contains an introduction to the projects and installation instructions on Windows and Docker.

Pull requests

Refactor README for GCBM.Belize and GCBM.Colombia

  • The documentation contains an introduction to the projects and installation instructions on Windows and Docker.
  • Update the README to follow the standard moja global template
  • Verify installation instructions to run the simulation on Windows, document steps to run it on Docker, and finally run the Postprocessing scripts on completion of the simulation

Pull requests

Community Engagement and Weekly meetings

  • Conducting weekly community meetings to interact with the contributors and onboard new contributors
  • Educate the new contributors about the moja global ecosystem and the existing projects
  • The community meetings encompass discussions around documentation, UI, DevOps, etc
  • We have seen many new contributors joining and making meaningful contributions.
  • Organized a session on Outreachy along with a past Outreachy mentee for the benefit of the applicants
  • Organized “Demo Day”, where the mentees from the various programs — GSoC, GSoD, Outreachy, and LFX will present their work to the community [GSoC is complete, the other programs are scheduled for the coming weeks]

Takeaways and Gratitude

I have had a very steep learning curve throughout the term. Though the term spanned from May — November 2022, I began working and understanding more about the expectations of the project from late 2021. I got to work on technical and non-technical aspects.

The technical aspects included the art of documentation, working with documentation generators and so on.

The non-technical aspects included driving the community, reviewing pull requests, communicating with the maintainers of the projects and so on.

I am extremely thankful to the entire moja global community for giving me the opportunity to be a Google Season Of Docs Intern. Understanding the usecase of technology in area of combating climate change has been truly fascinating.

I would like to express deep gratitude to Dr. Andrew O’Reilly-Nugent (TSC Director), Shubham Karande (LFX ’21 intern), and Harsh Mishra (TSC Community Manager and GSoD ’21 intern) for guiding me along the way, providing feedback on the ideas I proposed and most importantly believing in me !

I would also like to thank the other community members I interacted with — Shloka Gupta, Padmaja Bhol, Yash Kandalkar, Janvi Thakkar, Sanjay Singh Rajpoot and Radis Toumpalidis

Closing and project evaluation

Link to the project completion summary published : https://github.com/moja-global/mentorship/blob/main/google-season-of-docs/GSOD-2022-Report.md

We have been listed as a successfully completed documentation project on the official Google Season Of Docs website : https://developers.google.com/season-of-docs/docs/participants

--

--

NamyaLG

Tech-enthusiast | Runner_for_life | #NoHumanIsLimited