Skip to content

petsi-each/bxcomp2024-site

Repository files navigation

retro_music

Site do BXCOMP 2024

Website PET-SI

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!



🖱️ Tecnologias

React Next JS TailwindCSS

HTML5 CSS3 JavaScript NodeJS

GitHub Actions Github Pages Git

Figma



🖌️ Design

Veja no Figma



🚀 Inicie com o projeto

📦 Instalação

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

⚙️ Execução

  • 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



📓 Gerenciar informações

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.

ℹ️ Armazenamento de informações

  • Etapas

    As etapas são armazenadas em etapas.json.

  • Equipes

    As equipes são armazenadas em equipes.json.

  • Desafios

    Para adicionar desafios, você deve:

    1. armazenar os arquivos no path específicado abaixo
    2. 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 path para quatro arquivos: enunciado, resolução, entrada e saida. Esses arquivos devem ser armazenados em public/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.in

    O arquivo de saida deve ser public/etapas/<n da etapa>/<nome da pasta do desafio>/saida.out

    O arquivo de resolucao deve ser public/etapas/<n da etapa>/<nome da pasta do desafio>/resolucao.c

    O arquivo de enunciado deve ser public/etapas/<n da etapa>/<nome da pasta do desafio>/enunciado.pdf

    Ex.: 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.


🥇 Durante o campeonato

  • Liberar a etapa:

    Em etapa.json, alterar o campo estaLiberada da etapa concluída de false para true.

  • Contabilizar a pontuação:

    Os pontos das equipes são armazenados em um array pontos onde 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 adicionar 0 para 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.

    image



🫂 Contribuidores

About

📺 Site do BXCOMP 2024

Resources

License

Stars

Watchers

Forks

Contributors 9

Languages