Skip to content

GSoC 2025

omegaUp is participating in Google Summer of Code 2025! We're looking for motivated students to contribute to our open-source educational platform.

Getting Started

We encourage you to visit omegaup.org and omegaup.com to learn about our platform and features. This is an Ideas List - we expect you to complete most of the details in your proposal and you are also welcome to propose your own project idea.


Project Ideas

AI Teaching Assistant

Brief Description: We recently added the role of (human) Teaching Assistant, which has the capability of providing code-reviews to students and answering clarification questions asked by students about assignments. In this project we want to create a bot that can answer clarifications and perform code reviews both proactively and upon request. This will help tighten the feedback loop for students so they can grow more rapidly.

Expected Results: omegaUp has an AI Teaching Assistant bot that can answer clarification questions and perform code reviews, proactively and upon request.

Attribute Details
Skills Python, PHP, MySQL, LLM Prompt Engineering, REST APIs
Size 350 hours
Level Advanced
Mentors Aritra8438, heduenas

Generate Problem Editorials Using AI

Brief Description: omegaUp has a problem base with thousands of public problems, the big majority of them do not have an official solution for students to read and learn when they can't solve the problem on their own. This project consists of using generative AI and validate official solutions to the thousands of public problems. Generative AI should also be used to validate the editorial by asking it to generate code based on the editorial.

Expected Results: A high percentage (> 70%) of existing and new problems should have an official editorial that has been generated and validated using AI.

Attribute Details
Skills Python, LLM Prompt Engineering, PHP, Vue.js
Size 350 hours
Level Advanced
Mentors heduenas, pabo99

Public Courses on GitHub

Brief Description: omegaUp offers many public courses in Spanish open to everyone. They have been solely managed by omegaUp staff but we want to be able to manage them through GitHub so anyone can suggest improvements to the content (through pull requests). The Mexican Olympiad in Informatics already does this on a public course that they offer through omegaUp. We need to replicate what they have on our courses.

Expected Results: The content of public courses offered by omegaUp is managed through GitHub and anybody is able to propose improvements through pull requests.

Attribute Details
Skills git/github, Python, Continuous Integration, REST APIs
Size 175 hours
Level Medium to Advanced
Mentors heduenas, tvanessa

Cronjob Optimization

Brief Description: We have a number of cronjobs responsible for things such as updating student/school rankings, awarding badges to students, etc. Over the time they have become inefficient, error prone and hard to debug. We want to make them more efficient, increase their test coverage and improve their debugability.

Expected Results: Cronjobs become much leaner, faster and easier to maintain.

Attribute Details
Skills Python, MySQL, PHP, Unit and Integration Testing
Size 350 hours
Level High
Mentors carlosabcs, tvanessa

Integrate Problem Creator with Create/Edit Problem Workflows

Brief Description: A project from last year's GSoC introduced the Problem Creator, a visual editor that helps problem authors create and edit problems more easily. However, the Problem Creator isn't yet fully integrated with omegaUp. Currently, authors must:

  1. Write their problem using the Problem Creator
  2. Download it as a .zip file
  3. Upload it through a separate UI to add it to the platform

The editing process is similarly cumbersome, requiring authors to download a .zip, upload it to Problem Creator, make changes, download again, and upload again to update. This year, we aim to streamline these workflows by fully integrating the Problem Creator with omegaUp's create and edit problem features.

Expected Results: Authors will have access to a simple, straightforward workflow to create and edit problems without needing to handle .zip files.

Attribute Details
Skills Vue.js, TypeScript, PHP
Size 350 hours
Level Medium
Mentors Aritra8438, carlosabcs

Code Coverage Measurement for End-to-end Tests

Brief Description: We recently migrated our integration tests to Cypress. We use Codecov to measure and enforce test coverage, however our Codecov setup right now only takes into account unit tests and not end-to-end tests. In this project we want Codecov to also measure Cypress test coverage so we can enforce minimum levels of coverage.

Expected Results: Codecov reports Cypress test coverage enabling coverage levels to be monitored and minimum levels of coverage to be enforced.

Attribute Details
Skills Integration testing, TypeScript, PHP
Size 90 hours
Level Medium
Mentors pabo99, heduenas

Application Process

Our application process consists of four phases. You must complete each phase in order.

Phase 1: Complete Our Test

  1. Create an account at omegaUp.com
  2. Join our GSoC 2025 Test
  3. Solve at least 2 of 3 problems to pass

No Plagiarism

In the case of plagiarism, we will disqualify those applicants involved. Please don't share your solutions with your fellow applicants.

Phase 2: Familiarize Yourself with Our Codebase

Complete Phase 1 before starting this phase.

  1. Follow the development environment setup guide
  2. Find an interesting bug from our issue tracker, especially from "Good first issues", or reach out on Discord and we'll help find a good fit
  3. Implement your fix and submit it for review
  4. Get at least one PR merged before moving to Phase 3

Language

Most conversations in the issue tracker are in Spanish but feel free to switch the conversation to English on any issue. Google Translate does a decent job translating Spanish content.

Phase 3: Write Your Proposal

At this step you should be familiar with our development environment and code.

  1. Craft a design document using this template
  2. If working on multiple projects, mention that in your application but include only one design
  3. Send us your draft for feedback via this form (make sure anyone with the link can see and comment)
  4. We will not provide feedback to candidates who have not completed phases 1 or 2
  5. Submit your final proposal to Google

Phase 4: Interview

After design documents are submitted, we will select a short list of candidates and schedule phone interviews. The interview will consist of both behavioral and technical questions.

Important

We will only consider candidates that completed all 4 phases of the application.


Communications

Our main communication medium is our Discord channel. We invite you to join!

For questions about the development environment, codebase, or how the GSoC application process works, follow our Getting Help guide.


Frequently Asked Questions

The development environment installation script is throwing me an error

Please follow our Getting Help guide to effectively get your issue resolved.

Am I expected to speak Spanish?

Of course not. We try our best to be as inclusive as possible to non-Spanish volunteers. Please feel free to use English throughout our communication channels and in your code. Google Translate does a decent job translating Spanish content on our GitHub page.

How many spots will your organization have for GSoC 2025?

We will ask for 2 students this year, but there is no guarantee yet. We will know for sure around mid-May 2025.

How do you choose your students?

We review each application and choose candidates based on:

  1. Skill level - Demonstrated through impactful PRs to our repositories (recommended) or previous experience
  2. Work plan - High-level design following our proposal template
  3. Cultural fit - People who promote inclusion and proactively help peers on Discord

Are there any sample applications I can look at?

Two good samples are:

Can I propose a solution to multiple problems from the ideas list?

This year we ask that you include the design for only one project in your application. If you finish early during the coding phase, you are welcome to work on additional projects.

Are there more opportunities at omegaUp if I don't get selected for GSoC?

Of course! We always welcome new volunteers interested in supporting our efforts. Around the time when results are released, we will announce a plan to onboard those interested in becoming volunteers.


How to Ramp Up

If you are interested in spending this summer collaborating with us:

  1. Visit omegaup.org to learn about our work, vision, and the people being benefited
  2. Read this article published by our co-founders about the architecture and design of our platform