Skip to content

Getting Started with omegaUp Development

Welcome! This guide will help you get started with contributing to omegaUp, a free educational platform that helps improve programming skills.

What is omegaUp?

omegaUp is an educational programming platform used by tens of thousands of students and teachers in Latin America. It provides:

  • Problem Solving: Thousands of programming problems with automatic evaluation
  • Contests: Organize programming competitions
  • Courses: Structured learning paths
  • Training: Practice problems organized by topic and difficulty

Before You Begin

If you're new to omegaUp, we recommend:

  1. Experience the Platform: Visit omegaUp.com, create an account, and solve a few problems
  2. Learn About Us: Explore omegaup.org to learn more about our organization
  3. Understand the Codebase: Review the Architecture Overview to understand how omegaUp works

Quick Start Path

Development environment overview

omegaUp uses Docker for local development. At a high level:

  • Web + API: PHP controllers and DAOs over MySQL (classic MVC; JSON APIs)
  • Judge: Go grader, runners, and minijail sandbox
  • Browser UI: Vue.js, TypeScript, Bootstrap 4 (ongoing migration away from legacy templates)
  • Problem storage: gitserver and zip/case layout as documented under Features → Problems

Where things live in the repo (quick map)

Area Path (in the main repository)
HTTP API / business rules frontend/server/src/Controllers/
Database access frontend/server/src/DAO/
Migrations frontend/database/
TypeScript / Vue frontend/www/js/
Legacy templates / i18n frontend/templates/
PHPUnit API tests frontend/tests/controllers/
Cypress E2E cypress/e2e/

Papers (architecture context)

Supported browsers (contributors and contestants)

Use a current evergreen browser (Chrome, Firefox, Safari, or Edge). The site is HTTPS-only. Very old Internet Explorer versions are not supported.

Development Accounts

When you set up your local environment, you'll have access to two pre-configured accounts:

Username Password Role
omegaup omegaup Administrator
user user Regular user

Next Steps

  1. Set up your development environment - Get Docker running and clone the repository
  2. Read the contributing guide - Learn the workflow for submitting changes
  3. Explore the architecture - Understand how omegaUp is structured
  4. Review coding guidelines - Learn our coding standards

Resources


Ready to start? Head to Development Setup to begin!