Este projeto é o resultado dos estudos da nossa turma da Raro Academy, edição 1 de nodejs. Ele implementa a API do bolão do campeonato brasileiro, disputa tradicional da Raro, que movimenta toda a torcida dos loucos por futebol.
Table of contents generated with markdown-toc
Para rodar esta aplicação, você precisará:
- git
- nodejs. Sugiro que esteja na versão LTS
- sugiro o uso do
npm
, para controle de pacotes. Mas se preferir, oyarn
também pode ser utilizado. - sugiro um editor de texto que dê bom suporte ao desenvolvimento com typescript.
Os comandos abaixo descrevem a instalação básica do repositório. Se preferir, você pode adotar o clone via https, renomear a pasta raiz, ou o uso do yarn
, conforme descrito acima.
git clone git@github.com:rarolabs/raro-academy-bolao-brasileirao.git
cd raro-academy-bolao-brasileirao
cp .env.example .env
# neste ponto, sugere-se preencher seu novo arquivo .env com as configurações do seu projeto
npm install
Atenção ao quarto comando da lista de comandos acima. Nele, você está criando seu arquivo de variáveis de ambiente. Preencha todas as variáveis com os dados adequados. Para os campos de secret
, sugiro:
- o campo
SECRET
, preencha com uma chave aleatória bem grande. Sugiro uma chave com 256 caracteres, gerada em sites como este. - o campo
AUTH_SECRET
, preencha com uma chave aleatória. Sugiro uma chave com 64 caracteres, gerada da mesma forma que a chave anterior.Muita atenção com este arquivo, pois ele não deverá ser versionado, pois ele possui informações sensíveis do projeto.
Comando para criação do bundle de produção. Este pacote será produzido na pasta /dist
, na raiz deste projeto.
npm run build
Comando utilizado para iniciar o projeto resultante do build
. Ou seja, este deverá executar a aplicação em modo produção. Importante notar que ele somente executa o bundle produzido pelo build. A atualização deste pacote requer que o comando de build seja executado.
npm start
Comando utilizado para iniciar o projeto em modo de desenvolvimento
npm run dev
Executa os testes de unidade do projeto. Existem três variações do comando, conforme descritas abaixo:
# Executa em modo single run, sem análise de cobertura
npm test
# executa em modo "live", acompanhando as mudanças do código. Muito útil em modo de desenvolvimento
npm run test:watch
# executa em modo "cobertura". Executa apenas uma vez, e gera um relatório de cobertura em testes de unidade do seu projeto
npm run test:coverage
Este comando é um atalho para o typeorm, que está instalado localmente, neste projeto. Como estamos usando o typeorm em projeto typescript, é necessário criar uma configuração de ambiente, conforme descrito aqui. Todos os comandos relativos ao typeorm deverão ser chamados com este atalho, e os modificadores do typeorm precedidos com --
.
Ex.:
npm run typeorm -- migration:generate -n CreateManyCampeonatosToManyUsuarios
npm run typeorm -- migration:run
Os principais pacotes utilizados nesse projeto são:
- typescript
- axios
- dotenv
- jsonwebtoken
- typeorm
A tecnologia de armazenamento de dados utilizado será o mariadb.
- Criação de usuários
- Integração de campeonatos
- Criação de apostas
- Ranking dos apostadores
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.