Open source software development, collaboration, Angular, AngularJS, Typescript, Javascript, leadership, planning, presentations
In this project I lead a team of four in my computer science senior seminar to work on an open source software project called Oppia. Oppia is a web based learning platform that allows users to browse lessons in subjects ranging from math to history. These lessons are created by users of the site, and anyone could create lessons if they have an account. The goal of Oppia is to promote education equality across all socioeconmic backgrounds. The work that my team contributed dealt with both front end and back end technologies. Oppia is built with a mix of Typescript, Javascript, Angular, and AngularJS. At the beginning of the project, my team did small technical spikes to familiarize ourselves with these technologies. My contributions mainly dealt with implementing linter tests and helping Oppia migrate from using AngularJS to Angular. My team would present our progress throughout the semester to our classmates and professors.
There were a lot of aspects that my team didn’t understand about the project since it was fairly large. However, we read documentation on the project and got involved with the Oppia developer community when we had any questions on the issues we were working on. There was a lot of self learning, planning, and revising in order to learn and get our contributions into the code. We adapted jumping into a big project and learned the basics of all of the technologies that were unknown to us (specifically Angular and AngularJS). The developer install of this project was also very challenging, and even my professor was stuck on it for a while. However with persistance and teamwork, my entire team and professor successfully installed Oppia on our local devices.
Issue | Title/Link | Overview |
---|---|---|
10616 | Introduced 'typescript-eslint/quotes' rule | Added typescript rules for @typescript-eslint/quotes. |
10700 | Refactor Object Factory HintObjectFactory | Refactored AngularJS object factory to Angular. Part of Oppia's AngularJS to Angular migration goal. |
17844 | Update CONTRIBUTORS | Fixed typo in Oppia's CONTRIBUTORS documentation to get rid of duplicate name with incorrect email. |
While contributing to Oppia's source code, I also contributed lessons to the platfrom for users of the site.
Oppia's lesson building platform is created to design lessons with checkpoints so that the user can test themselves. Developers can give users custom feedback on their answers.
Overall, this was a very challenging project to work on for me, but I feel like I learned valuable skills that will help me in the future including organization and teamwork, reading and following code documentation, working with a large scale coding project, and clear communication when describing technical issues. I am happy that Dickinson’s senior seminar gave us this opportunity to join a real-world project and the freedom to work on what we wanted to in order to contribute to a larger cause. Despite its development challenges, Oppia itself focuses on educational equality, a topic I believe is an extremely important. I am proud to have been able to contribute to this larger community outside of Dickinson and to have gained technical experience along the way.