O BXComp é o tradicional Campeonato de Programação para Calouros do Curso de Sistemas de Informação da EACH-USP organizado pelo PET-SI (Programa de Educação Tutorial). Em 2024, o BXCOMP está em sua 14ª edição com o tema de Desenhos e Animações!
Requisitos:
- Node.js 18.18 ou versões mais atuais
- Git
git clone git@github.com:petsi-each/bxcomp2024-site.git
cd bxcomp2024-site
npm i- Modo de produção:
npm run build
- Modo de desenvolvimento:
npm run dev
O projeto estará rodando localmente no link que aparece no terminal. Geralmente, será http://localhost:3000
Todas as informações dinâmicas do site estão armazenadas em arquivos JSON em src/data. As atualizações nos arquivos JSON se propagam para o resto do site.
-
Etapas
As etapas são armazenadas em
etapas.json. -
Equipes
As equipes são armazenadas em
equipes.json. -
Desafios
Para adicionar desafios, você deve:
- armazenar os arquivos no path específicado abaixo
- adicionar o path dos arquivos em
etapas.json
Em
etapas.json, há um array que determina quais desafios pertencem a qual etapa e as suas informações.Além disso, cada desafio referencia o
pathpara quatro arquivos: enunciado, resolução, entrada e saida. Esses arquivos devem ser armazenados empublic/etapas/<n da etapa>/<nome da pasta do desafio>⚠️ O NOME DA PASTA DO DESAFIO DEVE ESTAR EM KABEB CASE (ou seja, letras minusculas com - no lugar do espaco, sem caracteres especiais.)O arquivo de entrada deve ser
public/etapas/<n da etapa>/<nome da pasta do desafio>/entrada.inO arquivo de saida deve ser
public/etapas/<n da etapa>/<nome da pasta do desafio>/saida.outO arquivo de resolucao deve ser
public/etapas/<n da etapa>/<nome da pasta do desafio>/resolucao.cO arquivo de enunciado deve ser
public/etapas/<n da etapa>/<nome da pasta do desafio>/enunciado.pdfEx.: O desafio com nome "dESAFIO DE DESENHOooo" da etapa 2 deve armazenar seus arquivos em
public/2/<n da etapa>/desafio-de-desenhoooo/. -
Regulamento
Por fim, o regulamento e o suas última atualizações são armazenadas em
regulamento.json.
-
Liberar a etapa:
Em
etapa.json, alterar o campoestaLiberadada etapa concluída defalseparatrue. -
Contabilizar a pontuação:
Os pontos das equipes são armazenados em um array
pontosonde o índice é o número da etapa.Em
etapas.json, colocar a quantidade de pontos da equipe na respectiva posição do seu array de pontos. Não esquecer de adicionar0para as equipes que tiveram menos que 2 (dois) dos membros chegando antes do horário limite.Ex.: Essa equipe fez 1 ponto na etapa 0, 6 na etapa 1 e 2 na etapa 2.
