Hey Oppia developers,
As you my know this year Oppia accepted 18 GSoC students. All of these have passed their Milestone 1 and are already working on their Milestone 2. We want to congratulate them for their accomplishment and also wish them luck with their second milestone.
Here are the project updates from these students where you can see on what they have been working for almost 5 weeks:
- Aishwary Saxena: Write frontend tests
- I have added more frontend unit tests covering 1800 lines. Testing the code rigorously ensures that the quality of code is maintained, saving time for developers and providing a better, bug-free experience to our users (i.e the students).
- Praneeth Gangavarapu: Write frontend tests
- I have increased frontend unit tests coverage in the codebase and covered. This attempts to ensure a bug-free experience for the users and that the code is of good quality.
- Radesh Kumar: Write frontend tests
- I have added frontend unit tests and I have covered 1620 lines.
- Mridul Setia: Improve frontend type system
- Milestone 1 of my project involved covering 120 files with strict type checks. I started with covering files that have no dependencies and then gradually moved to files with higher number dependencies. The project overall involved a great learning experience about the TypeScript language, I fixed some major run-time errors and bugs.
- Eesha Arif: Improve frontend type system
- I have enabled strict mode in TypeScript which turns on a set of stricter typing rules and made sure that these checks are passing for 115 files in the Oppia codebase by declaring types, updating the code, or refactoring the files.
- Ashutosh Chauhan: Angular migration
- I have migrated Admin, Classroom, Preferences and Profile pages to Angular 2+. My work also involved migrating shared directives like the base content directive, i18nFooter or the Oppia footer.
- Rijuta Singh: Integrating the Oppia Blog with Oppia.org
- I introduced all the necessary backend work storage models, services and validations for the models, in order to integrate the blog dashboard functionality in Oppia. Controllers which will handle request from the blog dashboard frontend were also added in Milestone 1.
- Aryaman Gupta: Improve Exploration save flow: Syncing edits in the background
- I introduced functionality which ensures that edits made to an exploration by a user are propagated to all clients. More specifically, an editor’s changes are applied to the saved exploration if their changes are unrelated to existing edits that had been committed since the last draft was started.
- Apoorv Srivastava: Implement lightweight checkpointing
- In M1 of this project I created a mechanism to save the learner's progress if they exit a partially complete exploration. This is useful because Oppia's lessons can require between 15 minutes and an hour, so before the learners had to restart the exploration if they left it partially complete.
- Krishita Jain: Redesigning and updating the Learner Dashboard
- In M1 I made updates to the storage models, services and validations to include topics and stories in the Learner Dashboard page. I also added the Goals tab, Community Lessons tab and Progress tab.
- Nikhil Agarwal: Implement schema validators for the handler params
- In the Milestone 1 I have built architecture for validating handler arguments against schema. I have also written schemas for 9 different files.
- Hardik Katehara: Make backend code typed
- I have added a script to run backend static type checks, added pre-push and CI backend static type checks. I also added type annotations to some files and created a wiki to help developers getting started with backend typing.
- Aditya Dubey: Move custom JS\TS lint checks to eslint
- In Milestone 1 I migrated all JS/TS lint checks to custom Eslint checks. I also implemented e2e tests lint checks that verify if constants variable names are in all-caps, disallow invalid await, make sure that all root element selectors use HTML classes that start with "protractor-test-”.
- Abhay Garg: Introduce support for displaying copyright licenses in the app
- I introduced Maven Artifacts re-pinning mechanism which now causes a build failure if maven_install.json is not up-to-date. I also built a script that generates the list of third-party maven dependencies on which Oppia Android app depends and it finds the license links of those dependencies by scraping POM file of the Maven dependencies.
- Arjun Gupta: Implement feature flags & platform parameters
- I completed a basic architecture for providing platform parameters in the Oppia Android app. Currently we can use this implementation to provide compile time parameters (i.e. parameters that are defined locally in the app itself).
- Yash Raj: Developer options menu
- In Milestone 1, I have introduced a Developer Options Menu in the Oppia Android app. This menu provides several features such as modifying lesson progress, viewing event logs and force crashing the app. The menu is accessible as a Navigation Drawer menu item only when the app is built in debug mode.
- Farees Hussain Syed: End-to-End testing support
- I have created a sample exploration (android_interactions) in the data directory which contains all the interactions supported in android. Then I have created controller which saves the exploration in the datastore of the dev server, using this controller we can fetch the android_interactions exploration from the dev server.
- Sparsh Agrawal: Static analysis checks + Improvements
- I have added custom CI checks, they involve generic regex pattern matching, ensuring all XML files are syntactically correct and ensuring that all Kotlin files have corresponding test files.
Vojta & Vinita