Hey everyone, I'm Aritra, a sophomore pursuing an M.Sc. degree in Computer Science at CMI. This summer, I am working on migrating the unofficial CDP to the official site of OmegaUp (here) as a part of GSoC 2024. I also participated in GSoC '23 with Mathesar, you can find the related blogs here. In this blog, I will share my GSoC acceptance experience with OmegaUp.

A little bit about Myself:

I love Mathematics and Algorithms. My favorite subject is Complexity theory. Besides, I spend my leisure time playing football, watching soccer matches, enjoying anime and reading manga. I also (less frequently) contribute to the open-source repositories.
If you want to know me better, you might want to visit my LinkedIn profile, GitHub profile or go through my portfolio. There you will find numerous ways to get in touch with me. I will write more blogs on GSoC '24, you can find them here.
Phew! Enough introduction. It's time to share my GSoC acceptance experience again.



Google Summer of Code

Pre-GSoC period:

When I planned on applying for GSoC this year, it was already a bit late. While browsing through the organizations, I selected some of them (that aligned with my interest) like OmegaUp, Keploy and Oppia to start contributing. After going through the selection criteria of OmegaUp, I was a bit amazed as it required the candidates to attend a programming contest first. An applicant needed to solve 2 out of 3 problems to be eligible for further rounds.

  • Round 1: Solve 2 out of 3 in a programming contest :3
  • Round 2: A Merged PR.
  • Round 3: Writing a (good) proposal.
  • Round 4: Interview, yay!
Transparent and crisp selection procedure, isn't it? I liked it too.

OmegaUp

My Introduction to OmegaUp:

My first introduction to OmegaUp was through the official discord server of OmegaUp. The channels were (are) super-active and contributor-friendly. From the very beginning (setting up OmegaUp dev env) to the selection process, the admins and the candidates helped me a lot.
The contest was pretty interesting. I initially managed to solve two questions (1st and 3rd), though out of interest, I solved the 2nd one later. After clearing the first round, I started trying to contribute to the codebase. There were many good first issues to start with and maintainers were super helpful in assigning us the perfect one. After 3 of my PRs were merged, I started writing proposal. Once I have written a draft proposal, I've submitted it to the mentors for review to get their feedback. After some days of waiting, I received an email requiring me to schedule an interview. Carlos and Juan took my interview (which lasted for 45 minutes) and asked me some non-technical and 2 technical (development-related) questions.
One more thing, PRs not only make you eligible for selection but also give you a greater understanding of the codebase, which will help you later anyway. So my suggestion will be to work on solving as many issues as possible. Here are my PRs, that are already merged.

OmegaUp

An overview of my project:

So, what is OmegaUp? omegaUp is a non-profit organization (501c3) aimed to increase the number of talented Software Engineers in Latin America.
OmegaUp had 5-6 projects related to the online judge of OmegaUp. Among those, I chose the migration of the CDP project as I personally had difficulty using the unofficial CDP. You can find the official announcement here. Also, here is the proposal that I submitted and will use throughout the project.
One of the main components of the OmegaUp platform is the competitive programming online judge. An online judge has 3 main components: problem, code and the verdict of the code on that problem. Currently, to create a problem on OmegaUp, we have to rely on the zip file that can be created through the expertise of the problem creators (which makes it difficult for the new users ) or via the unofficial CDP. The Github repo that deployed the site is public and now a Public Archive. So, it can’t be an official tool for OmegaUp. Moreover,

  • If a user finds a bug on the website, as it’s a public archive, it’s not possible to make a pull request.
  • No newer feature can be added to the website.
  • The fate of the site largely depends on the author's availability.

Currently, after a problem is created, if we need to modify the same, we need to again upload the zip file to the CDP, modify it and upload the modified zip file on the problem-edit page on OmegaUp.
Enabling users to directly generate a problem (without generating the intermediate zip file) may help a lot of users and make the edit problem action much easier and intuitive.
So, the motivation behind this project is migrating the whole CDP to the OmegaUp website. This project aims to make the OmegaUp problem creation easier, more intuitive and more versatile as well as backwards-compatible.

Thanksgiving:

All of these wouldn't be possible without the support of my parents, friends and teachers. Thanks to Nandini for never letting me lose my hope. I'm thankful to them.
I am immensely grateful to Juan for such good mentoring. With every comment and suggestion of him in my PRs, I have learnt a lot. He assigned me some of the issues which gave me an in-depth understanding of the codebase.
Carlos was super helpful during my interview. There were a lot of bad things that happened in the interview (my VSCode got uninstalled at the very beginning) and Carlos supported me throughout. With every question, he mentioned the answer he was expecting.
I would also like to thank Hugo and Vanessa for reviewing and merging my PRs. Lastly, I would like to thank all the mentors and applicants (specifically Ahmed and Kartik) of the OmegaUp organization for their constant support.