Esse projeto tem como intuito criar uma API capaz de fornecer os dados para os eventos do frontendbr.
O desenho da API está sendo feito no Swagger. Para visualizar, você pode acessar a documentação (Em atualização)
Com isso é possível visualizar o atual draft, qualquer sugestão pode ser feita pelas issues.
As seguintes tecnologias são usadas nesse projeto:
- Node
- Express 4
- ES6
- MongoDB
- Babel (Para uso das novas features)
- Mocha + Chai + Mongo-In-Memory + pow-mongodb-fixtures
- Nodemon
Você pode, se desejar, configurar uma aplicação do github através do arquivo dev.json
, a aplicação atual aponta para o callback http://localhost:3000/auth/callback
.
Para rodar, basta executar npm i
na raiz, em seguida npm start
.
Para contribuir com o projeto é muito simples!
Você tem algumas opções:
- Para subir a aplicação para desenvolver, você pode rodar o comando
npm run dev
. Isso inicia o servidor com onodemon
, o que permite um desenvolvimento mais ágil. - Você pode rodar o linter do projeto, usando a opção
npm run eslint
. Por favor, faça isso antes de submeter um pull request. - Você pode rodar os testes do projeto, usando a opção
npm t
ounpm test
, essa opção já vai rodar o linter por padrão sempre. Por favor, faça isso antes de submeter um pull request. - Se você quiser, pode usar o comando
npm run watch
para iniciar o modo watch, que roda o lint e os testes sempre que um arquivo for salvo. Isso nos permite agilidade e feedback rápido. :)
A nossa aplicação tem dois tipos de testes, Integração e Unidade. Todos os testes estão dentro da pasta test.
Os testes de integração são todos os arquivos terminados em integration.spec.js. Todos os testes são rodados com base em um servidor conectado a uma base do mongo-in-memory. É possível fazer um load de dados nessa base, adicionado informações a pasta fixtures. Esses dados são carregados através do pow-mongodb-fixtures.
Os testes de unidade são todos os arquivos terminados em unit.spec.js.
A plataforma de Deploy escolhida, foi o WeDeploy.
Para realizar o deploy, é necessário ter instalado o CLI do WeDeploy e alterar o arquivo wedeploy.json
colocando as variáveis do Admin do Firebase. Sem isso a aplicação não ira funcionar corretamente.
Faça deploy através do comando we deploy -p eventosapi
, onde eventosapi é o nome do projeto.
Futuramente vamos configurar para que o Deploy seja feito pelo próprio TravisCI após o Build da master.
Você pode abrir uma Issue a qualquer momento e todas elas são bem vindas. Nós pedimos que você abra uma issue antes de realizar um PR, para que possamos debater sobre a sua ideia e guiar o projeto para o melhor caminho junto com você.
Nós temos algumas restrições para o merge do PR:
- O build do Travis tem que passar, sem isso não podemos realizar o merge.
- É necessário que um admin aprove o PR.
- Entendemos que todos os PRs são importantes, então se você abriu um PR e ninguêm deu um feedback em uma semana, por favor marque alguem para um follow-up. (A ideia de esperar uma semana é para não atolar ninguém com milhões de mensagens)
Dúvidas? Problemas? Quer ajudar? Sinta-se a vontade para abrir uma issue.