Google Summer of Code (GSoC) 2019 is on and yay! I am working with Submitty for the rest of the summer. In this article, I would briefly explain/remind you of what GSoC is, what Submitty is, why I like working on Submitty and then finally my project, mentors and the community. That essentially entails, what I am working on and the people I am doing this with. Let's go!
What is GSoC?
There's a great chance you already know what GSoC is otherwise here is a quick start. Google Summer of Code (GSoC) is a remote, international program designed by Google to introduce university students to open source software development or just motivate them to continue doing open source. Google is able to do this by selecting top opensource organizations from a pool of applications. Students can then apply to the chosen organizations (orgs) by writing project proposals that would probably improve something the org is already doing, or introduce something totally new. Apart from the numerous benefits especially something like the guided practical learning that students get from GSoC, Google pays participants a stipend by installment as the program progresses every year.
To learn more about GSoC please
git checkout the following sources;
What is Submitty.
Submitty is in very simple terms, a submission system for programming assignments. So if a learning institution is using Submitty, its teachers/instructors can create programming assignments on the Submitty application which would then allow students to submit their respective solutions. Submitty has a robust automated grading system which has testing for multiple languages. In addition, instructors can still do manual grading and provide additional feedback on what has already been provided by Submitty. Submitty was created by the Department of Computer Science at Rensselaer Polytechnic Institute and Rensselaer Center for Open Source Software (RCOS).
So why do I like working with Submitty?
Being an intrigued Computer Science student I could only imagine what software product from a Computer Science department looks like! So because I think Computer Scientists don't spend a lot of time shipping typical end-user software. Just like I thought there's computer science everywhere in the codebase :), Web development? Languages and Compilers? Plagiarism Detection (AI, Machine Learning), Static Analysis? You see! Submitty is a substantiation of numerous computer science topics which comes together and ends up appearing like any other transaction-like system (basically save-query-display kind of systems). Knowing that alone is my greatest motivation for working with Submitty as I see an opportunity to improve on my Computer Science Knowledge and skills by leveraging on the tool and the people.
I won't forget to add that, despite this excitement it does not seem easy! Looking at a codebase with more than 5 programming languages (which a section in C++ hehe) with the additional knowledge of that it was written by tough computer scientist and sysadmins can be really daunting. But what's the point in doing things which are not challenging?
What will I be doing in Submitty for GSoC? Basically, I would be doing some advanced DevOps operations based on my proposal "Continuous Integration Testing(Automation) for Submitty." That includes designing infrastructure especially for tests, writing system configurations for mostly Linux systems and developing new test cases that would improve Submitty's code coverage.
I have kickoff-ed by creating a couple of docker containers which would run a buildbot master and worker to test the PHP section of the Submitty code base, despite the major challenge of buildbot not very easy to get started with, I observed some progress.
Submitty has a small, busy but effective community! We communicate in slack and GitHub and things get done :). I would be working under the mentorship of mainly Matthew Peveler and Barbara M Cutler with assistance from Andrew Aikens and Evan Maicus when there are available. So far, I am gracious for the support they are offering and their immense understanding of the timing constraints I have. (I guess because they are instructors and students and really get "the struggle")
I would report each phase of work going on right here in the weeks ahead. Until then, thanks for reading!