Skip to content

Instantly share code, notes, and snippets.

@mridul-netizen
Last active August 21, 2021 18:23
Show Gist options
  • Save mridul-netizen/e732dfeae3b1201cdbbb23377467a6bd to your computer and use it in GitHub Desktop.
Save mridul-netizen/e732dfeae3b1201cdbbb23377467a6bd to your computer and use it in GitHub Desktop.
This gist contains all of my work done during Milestones 1 and 2 of GSoC peroid.

Google Summer Of Code 2021(oppia)

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, making it possible for students to learn by doing while getting feedback.

About the project

Oppia uses Angular as it's frontend framework. TypeScript used in Angular provides the project with a compiler option called strict. This turns on a set of type checking rules and is referred to as strict mode.

Why Enable Strict Mode?

This is because code that passes these checks has several benefits:

  • The code becomes more self-documenting
  • Edge cases are caught, thus reducing potential runtime errors
  • The written code will be more robust

My project was to enable strict typescript checks for files present in the codebase. The project was divided into two milestones, for each milestones a set of around files were made strictly typed.

Milestone 1

Added strict typing for a set of 120 files.

PRs involved

Milestone 2

Added strict typing for a set of another 120 files.

PRs involved

Documentation

I wrote a guide on strict types covering all major cases encountered in codebase and published it in Oppia wiki. You can read it here.

Issues / Bugs found

I was also a part of release testing team in Oppia. Here are the various issues found by me while release testing and developing Oppia.

Summary

It was an awesome learning experience working with Oppia this summer. Special thanks to Srijan Reddy Vasa who was my mentor for helping me whenever I faced any problem in completing this project. I would also like to thank Oppia for giving me this opportunity.

I would also like to acknowledge the help from other members of the community, who were always available whenever needed, just a small chat away. I strongly intend to continue contributing to Oppia.

Also, thanks to Google for this amazing program.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment