Introdução ao desenvolvimento omegaUp
Bem-vindo! Este guia irá ajudá-lo a começar a contribuir para o omegaUp, uma plataforma educacional gratuita que ajuda a melhorar as habilidades de programação.
O que é omegaUp?
omegaUp é uma plataforma de programação educacional usada por dezenas de milhares de estudantes e professores na América Latina. Ele fornece:
- Solução de problemas: Milhares de problemas de programação com avaliação automática
- Concursos: Organize competições de programação
- Cursos: caminhos de aprendizagem estruturados
- Treinamento: pratique problemas organizados por tópico e dificuldade
Antes de começar
Se você é novo no omegaUp, recomendamos:
- Experimente a plataforma: Visite omegaUp.com, crie uma conta e resolva alguns problemas
- Saiba mais sobre nós: Explore omegaup.org para saber mais sobre nossa organização
- Entenda a base de código: Revise a Visão geral da arquitetura para entender como o omegaUp funciona
Caminho de início rápido
-
Configuração de desenvolvimento
Configure seu ambiente de desenvolvimento local usando Docker. Este é o primeiro passo para começar a contribuir.
-
Aprenda como bifurcar o repositório, criar ramificações e enviar solicitações pull.
-
Preso? Aprenda como fazer perguntas de maneira eficaz e obter ajuda da comunidade.
Visão geral do ambiente de desenvolvimento
omegaUp usa Docker para desenvolvimento local. Em alto nível:
- Web + API: controladores PHP 8.1 e DAOs sobre MySQL 8 (MVC clássico; APIs JSON)
- Juiz: Go grader, runners e minijail sandbox — um serviço separado (
omegaup/quark) que o back-end chama por HTTP - IU do navegador: componentes de arquivo único Vue 2.7, TypeScript, Bootstrap 4, renderizados dentro de um shell de servidor Twig 3
- Armazenamento de problemas: gitserver e layout zip/case conforme documentado em Recursos → Problemas
Onde as coisas ficam no repositório (mapa rápido)
| Área | Caminho (no repositório principal) |
|---|---|
| API HTTP/regras de negócios | frontend/server/src/Controllers/ |
| Acesso ao banco de dados | frontend/server/src/DAO/ |
| Migrações | frontend/database/ |
| TypeScript/Vue | frontend/www/js/ |
| Modelos legados/i18n | frontend/templates/ |
| Testes da API PHPUnit | frontend/tests/controllers/ |
| Cipreste E2E | cypress/e2e/ |
Artigos (contexto da arquitetura)
- [omegaUp: Sistema de gerenciamento de concursos baseado em nuvem] (http://www.ioinformatics.org/oi/pdf/v8_2014_169_178.pdf) (IOI Journal, 2014)
- libinteractive — tarefas interativas
Navegadores suportados (colaboradores e concorrentes)
Use um navegador evergreen atual (Chrome, Firefox, Safari ou Edge). O site é somente HTTPS. Versões muito antigas do Internet Explorer não são suportadas.
Contas de Desenvolvimento
Ao configurar seu ambiente local, você terá acesso a duas contas pré-configuradas:
| Nome de usuário | Senha | Função |
|---|---|---|
omegaup |
omegaup |
Administrador |
user |
user |
Usuário regular |
Próximas etapas
- Configure seu ambiente de desenvolvimento - Coloque o Docker em execução e clone o repositório
- Leia o guia de contribuição - Aprenda o fluxo de trabalho para enviar alterações
- Explore a arquitetura - Entenda como o omegaUp está estruturado
- Revise as diretrizes de codificação - Aprenda nossos padrões de codificação
Recursos
- Site: omegaup.com
- GitHub: github.com/omegaup/omegaup
- Discord: Junte-se ao nosso servidor Discord para suporte da comunidade
- Problemas: Relatar bugs ou solicitar recursos
Pronto para começar? Vá para Configuração de desenvolvimento para começar!