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:
- Write their problem using the Problem Creator
- Download it as a
.zipfile - 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
- Create an account at omegaUp.com
- Join our GSoC 2025 Test
- 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.
- Follow the development environment setup guide
- 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
- Implement your fix and submit it for review
- 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.
- Craft a design document using this template
- If working on multiple projects, mention that in your application but include only one design
- Send us your draft for feedback via this form (make sure anyone with the link can see and comment)
- We will not provide feedback to candidates who have not completed phases 1 or 2
- 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:
- Skill level - Demonstrated through impactful PRs to our repositories (recommended) or previous experience
- Work plan - High-level design following our proposal template
- 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:
- Carlos Cordova's proposal from 2018
- Vincent Fango's proposal from 2018
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:
- Visit omegaup.org to learn about our work, vision, and the people being benefited
- Read this article published by our co-founders about the architecture and design of our platform
Related Documentation
- Development Setup - Set up your environment
- Contributing Guide - How to contribute
- Architecture Overview - System architecture
- Getting Help - Community support