At Oppia, we believe that all students deserve a high-quality and effective education. Our mission is to provide high-quality education to those who lack access to it, with a focus on underserved and disadvantaged communities. We do this by working as a community to create lessons and distribute them to students who need them, in partnership with NGOs around the world. Oppia's lessons have been used by over 1 million users, and recent trials with low-income students in India have shown that students in these communities find the lessons useful, enjoyable and effective.
Core Challenge
How can we build a sustainable infrastructure that enables the community to collaborate effectively in order to produce high-quality learning experiences that are available to all students, and that result in demonstrable learning improvements? This is the problem that Oppia sets out to solve -- as a small volunteer-based tech nonprofit, we rely heavily on platform infrastructure and tooling to reduce the amount of manual work involved in lesson creation, so that we can involve more people in the community and spend more time focusing on improving the quality of the education we provide.
Current Tech Stack
Oppia is written using Python and AngularJS, and is built on top of App Engine.
More information here
Project 1 - Audio Translation
Description
The aim of the Audio Translations project is to build the infrastructure that enables members of the community to create subtitles and voiceovers for lessons in other languages. This is important because many students do not speak English fluently, so language competency is a significant barrier to entry for them when accessing online educational material.
Skills
Full-stack development; technical design
Impact
As a result of this project, lessons will become translatable into multiple languages, in both written and audio form. This will make the lessons accessible to students who do not speak English as a first language so that they can benefit from the interactive teaching that Oppia provides, whilst still keeping the lessons easy to maintain. Trials in India and Cameroon have shown that providing voiceovers in students’ native languages helps them significantly in understanding the lessons.
Project 2 - Practice session interface
Description
The aim of the Practice Sessions project is to build on Oppia’s existing skill infrastructure to create a “practice session” interface that enables students to practice the skills they have learned.
Skills
Full-stack development; technical design
Impact
We have found, from observations during a randomized trial, that students often need additional practice after encountering a skill in order to master it fully. Making “practice sessions” easily available to students will allow them to develop this mastery by practicing skills they have learned, and the immediate feedback and hints that they get will help them learn these skills faster (especially in local environments where no one would otherwise be checking their work or giving feedback on it).
Project 3 - Angular 2 migration
Description
The Angular 2 migration project aims to migrate the frontend of the Oppia codebase from AngularJS (which is now deprecated) to Angular 2 (and, later, to the most current version of Angular), in order to avoid breakage in the future.
Skills
Frontend development; familiarity with AngularJS/Angular 2; attention to detail.
Impact
As AngularJS becomes more of a “legacy” framework, we are finding it harder to bring in new contributors, who are typically familiar with more modern versions of Angular. Upgrading will also allow the codebase to support type-checking, improve performance, and ensure that security and other improvements to the library can be integrated into Oppia.
Project 4 - Creation experience
Description
The aim of the “creation experience” project is to improve the lesson creation experience for Oppia contributors and make it more bite-sized and distributable so that many people can help improve a lesson based on their abilities and interests. Current sub-goals of the project include working on an art contribution pipeline and fixing bugs in the exploration editor.
Skills
Full-stack development; technical design.
Impact
Making it easier for creators to collaborate on building lessons would reduce the burden that needs to be taken on by individual creators, and enable each contributor to help according to their strengths. In the long-term, we expect this to result in an open library of higher-quality lessons on a larger number of topics.
Project 5 - Bugfix
Description
The aim of the bugfixing team is to fix all user-facing bugs that are currently in the backlog (we have around 23 throughout the site). These bugs often affect the user experiences for learners and creators. Often, the fixes aren’t very large, but because of resource constraints, we have not had time to look into them. This would be a good project for newer contributors.
Skills
Debugging ability; frontend/backend development.
Impact
Fixing core bugs in the learner and creator experiences will make it easier and more intuitive for them to use Oppia, both for learning things, and also creating new lessons.
Project 6 - Learner Experience
Description
The aim of the Learner Experience project is to provide an intuitive experience for students, especially those who are new to using the Web for learning. The team is currently working on a redesign of the library page to split it into a “curated” and a “community” section, so that learners’ first experience with the site is with curated lessons that are really high-quality and that the community has put a lot of effort into. The team is also working on new topic pages that support skill review, practice sessions, and multiple stories that demonstrate how the skills are being applied in practice. In general, we would be open to any ideas that would help learners to learn more effectively, especially those from underserved communities.
Skills
Full-stack development (with an emphasis on the frontend). UI/UX design experience is appreciated (but not required).
Impact
Crafting a learner experience that is universally intuitive and enjoyable, even for students who have never used a computer before, is key to making Oppia lessons accessible to every student around the world. We have seen, in user studies, how small-seeming UI issues can completely derail a student’s learning experience, and we want to take steps to actively prevent that from happening.
Project 7
Description
The Developer Experience project is aimed at ensuring that all Oppia technical contributors, especially those who are contributing to open source for the first time, have a smooth and enjoyable experience working on Oppia. This involves ensuring that the testing frameworks are robust, that there are sufficient automated checks, that it is easy to setup Oppia in various environments, and that there are mechanisms to ensure that PRs are reviewed and queries are answered in a timely way.
Skills
Backend development (Python)
Impact
The work that you do on this project will not only help the Oppia developer team run smoothly, but will enable new contributors to get started quickly with the project. Many of Oppia’s technical contributors are students from various universities who have never contributed to an open source project before, and we aspire to be a welcoming environment for these students; ensuring that the development process works smoothly is an important part of this.
Project 8 - Lesson Analytics
Description
The Lesson Analytics project aims to provide creators with tools that help them detect and diagnose issues in their lessons so that they can improve them to better meet the needs of future students. This involves implementing detecting mechanisms for common issues and surfacing them to creators in a way that they can easily take action on. The project also aims to help creators understand how good their lessons are at engaging students and delivering effective education so that they can see the impact of their work.
Skills
Frontend development (AngularJS/Angular)
Impact
Incremental improvements are a very important part of the Oppia lesson creation process, since they allow creators to spend their time fixing the issues that matter most. This is one reason we expect Oppia lessons to be very effective -- after a certain point, it becomes clear what the most common misconceptions students are having are, and the lessons can then be easily extended to catch those. Making the feedback loop as tight as possible would help the lessons reach this state faster and be maximally useful to students in perpetuity.
Project 9 - Speed efficiency
Description
The Speed project aims to lower Oppia's latency as much as possible (both backend and frontend), so that all pages load fast and are bandwidth-efficient.
Skills
Performance optimization
Impact
Many of Oppia’s learners are located in areas where Internet access is costly. This is why our lessons don’t use videos -- they require more bandwidth than students can afford. As a corollary, we need to ensure that our lesson pages load very quickly and use minimal bandwidth so that they do not use up a lot of a student’s data connection.
Project 10 - Android App development
Description
The aim of the Android app project is to build a version of Oppia that can be used offline as an Android app. This is because cheaper Android phones are increasingly available to the demographic we are trying to reach, but Internet connection is still scarce, especially in rural areas. We envision a solution where a small number of phones containing lessons that are playable offline could be shared between many students in a rural village in order to provide effective education where it is lacking.
Skills
Android development
Impact
Creating an offline version of Oppia would help make the Oppia lessons universally accessible by allowing them to be played by students without Internet access. This is a large demographic that mostly includes rural and underserved areas, and the students in those areas are the very ones we want to reach.
What to expect?
Before joining a subproject, volunteers will work on a couple of starter projects to become familiar with the development workflow.
Volunteers will be working with teams to complete each subproject.
Volunteers should be committed and should keep their commitments -- so please make sure that you have time to volunteer with us. We are committed to our volunteers and will spend as much time as needed to ensure that they have a great experience.
Volunteers should be available for regular check-ins with the Oppia team (at a mutually convenient time and cadence to be determined).
Volunteers are strongly encouraged to reach out to the Oppia team if they need any support between the regular check-ins. Communication is key!
Next Steps
Do you like this organization and its project(s)? Send us an email at hello@ovio.org with relevant info about yourself! We will then reach out and introduce you to the right persons.
Are you looking for more inspiration? Visit Explore by Ovio or checkout other opportunities here.
Oppia
At Oppia, we believe that all students deserve a high-quality and effective education. Our mission is to provide high-quality education to those who lack access to it, with a focus on underserved and disadvantaged communities. We do this by working as a community to create lessons and distribute them to students who need them, in partnership with NGOs around the world. Oppia's lessons have been used by over 1 million users, and recent trials with low-income students in India have shown that students in these communities find the lessons useful, enjoyable and effective.
Core Challenge
How can we build a sustainable infrastructure that enables the community to collaborate effectively in order to produce high-quality learning experiences that are available to all students, and that result in demonstrable learning improvements? This is the problem that Oppia sets out to solve -- as a small volunteer-based tech nonprofit, we rely heavily on platform infrastructure and tooling to reduce the amount of manual work involved in lesson creation, so that we can involve more people in the community and spend more time focusing on improving the quality of the education we provide.
Current Tech Stack
Oppia is written using Python and AngularJS, and is built on top of App Engine. More information here
Project 1 - Audio Translation
Description
The aim of the Audio Translations project is to build the infrastructure that enables members of the community to create subtitles and voiceovers for lessons in other languages. This is important because many students do not speak English fluently, so language competency is a significant barrier to entry for them when accessing online educational material.
Skills
Full-stack development; technical design
Impact
As a result of this project, lessons will become translatable into multiple languages, in both written and audio form. This will make the lessons accessible to students who do not speak English as a first language so that they can benefit from the interactive teaching that Oppia provides, whilst still keeping the lessons easy to maintain. Trials in India and Cameroon have shown that providing voiceovers in students’ native languages helps them significantly in understanding the lessons.
Project 2 - Practice session interface
Description
The aim of the Practice Sessions project is to build on Oppia’s existing skill infrastructure to create a “practice session” interface that enables students to practice the skills they have learned.
Skills
Full-stack development; technical design
Impact
We have found, from observations during a randomized trial, that students often need additional practice after encountering a skill in order to master it fully. Making “practice sessions” easily available to students will allow them to develop this mastery by practicing skills they have learned, and the immediate feedback and hints that they get will help them learn these skills faster (especially in local environments where no one would otherwise be checking their work or giving feedback on it).
Project 3 - Angular 2 migration
Description
The Angular 2 migration project aims to migrate the frontend of the Oppia codebase from AngularJS (which is now deprecated) to Angular 2 (and, later, to the most current version of Angular), in order to avoid breakage in the future.
Skills
Frontend development; familiarity with AngularJS/Angular 2; attention to detail.
Impact
As AngularJS becomes more of a “legacy” framework, we are finding it harder to bring in new contributors, who are typically familiar with more modern versions of Angular. Upgrading will also allow the codebase to support type-checking, improve performance, and ensure that security and other improvements to the library can be integrated into Oppia.
Project 4 - Creation experience
Description
The aim of the “creation experience” project is to improve the lesson creation experience for Oppia contributors and make it more bite-sized and distributable so that many people can help improve a lesson based on their abilities and interests. Current sub-goals of the project include working on an art contribution pipeline and fixing bugs in the exploration editor.
Skills
Full-stack development; technical design.
Impact
Making it easier for creators to collaborate on building lessons would reduce the burden that needs to be taken on by individual creators, and enable each contributor to help according to their strengths. In the long-term, we expect this to result in an open library of higher-quality lessons on a larger number of topics.
Project 5 - Bugfix
Description
The aim of the bugfixing team is to fix all user-facing bugs that are currently in the backlog (we have around 23 throughout the site). These bugs often affect the user experiences for learners and creators. Often, the fixes aren’t very large, but because of resource constraints, we have not had time to look into them. This would be a good project for newer contributors.
Skills
Debugging ability; frontend/backend development.
Impact
Fixing core bugs in the learner and creator experiences will make it easier and more intuitive for them to use Oppia, both for learning things, and also creating new lessons.
Project 6 - Learner Experience
Description
The aim of the Learner Experience project is to provide an intuitive experience for students, especially those who are new to using the Web for learning. The team is currently working on a redesign of the library page to split it into a “curated” and a “community” section, so that learners’ first experience with the site is with curated lessons that are really high-quality and that the community has put a lot of effort into. The team is also working on new topic pages that support skill review, practice sessions, and multiple stories that demonstrate how the skills are being applied in practice. In general, we would be open to any ideas that would help learners to learn more effectively, especially those from underserved communities.
Skills
Full-stack development (with an emphasis on the frontend). UI/UX design experience is appreciated (but not required).
Impact
Crafting a learner experience that is universally intuitive and enjoyable, even for students who have never used a computer before, is key to making Oppia lessons accessible to every student around the world. We have seen, in user studies, how small-seeming UI issues can completely derail a student’s learning experience, and we want to take steps to actively prevent that from happening.
Project 7
Description
The Developer Experience project is aimed at ensuring that all Oppia technical contributors, especially those who are contributing to open source for the first time, have a smooth and enjoyable experience working on Oppia. This involves ensuring that the testing frameworks are robust, that there are sufficient automated checks, that it is easy to setup Oppia in various environments, and that there are mechanisms to ensure that PRs are reviewed and queries are answered in a timely way.
Skills
Backend development (Python)
Impact
The work that you do on this project will not only help the Oppia developer team run smoothly, but will enable new contributors to get started quickly with the project. Many of Oppia’s technical contributors are students from various universities who have never contributed to an open source project before, and we aspire to be a welcoming environment for these students; ensuring that the development process works smoothly is an important part of this.
Project 8 - Lesson Analytics
Description
The Lesson Analytics project aims to provide creators with tools that help them detect and diagnose issues in their lessons so that they can improve them to better meet the needs of future students. This involves implementing detecting mechanisms for common issues and surfacing them to creators in a way that they can easily take action on. The project also aims to help creators understand how good their lessons are at engaging students and delivering effective education so that they can see the impact of their work.
Skills
Frontend development (AngularJS/Angular)
Impact
Incremental improvements are a very important part of the Oppia lesson creation process, since they allow creators to spend their time fixing the issues that matter most. This is one reason we expect Oppia lessons to be very effective -- after a certain point, it becomes clear what the most common misconceptions students are having are, and the lessons can then be easily extended to catch those. Making the feedback loop as tight as possible would help the lessons reach this state faster and be maximally useful to students in perpetuity.
Project 9 - Speed efficiency
Description
The Speed project aims to lower Oppia's latency as much as possible (both backend and frontend), so that all pages load fast and are bandwidth-efficient.
Skills
Performance optimization
Impact
Many of Oppia’s learners are located in areas where Internet access is costly. This is why our lessons don’t use videos -- they require more bandwidth than students can afford. As a corollary, we need to ensure that our lesson pages load very quickly and use minimal bandwidth so that they do not use up a lot of a student’s data connection.
Project 10 - Android App development
Description
The aim of the Android app project is to build a version of Oppia that can be used offline as an Android app. This is because cheaper Android phones are increasingly available to the demographic we are trying to reach, but Internet connection is still scarce, especially in rural areas. We envision a solution where a small number of phones containing lessons that are playable offline could be shared between many students in a rural village in order to provide effective education where it is lacking.
Skills
Android development
Impact
Creating an offline version of Oppia would help make the Oppia lessons universally accessible by allowing them to be played by students without Internet access. This is a large demographic that mostly includes rural and underserved areas, and the students in those areas are the very ones we want to reach.
What to expect?
Next Steps
Do you like this organization and its project(s)? Send us an email at hello@ovio.org with relevant info about yourself! We will then reach out and introduce you to the right persons.
Are you looking for more inspiration? Visit Explore by Ovio or checkout other opportunities here.