frontendbr-eventos-api
Esse projeto tem como intuito criar uma API capaz de fornecer os dados para os eventos do frontendbr.
Draft
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.
Run
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
.
Dev
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. :)
Testes
A nossa aplicação tem dois tipos de testes, Integração e Unidade. Todos os testes estão dentro da pasta test.
Testes de integração
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.
Testes de unidade
Os testes de unidade são todos os arquivos terminados em unit.spec.js.
Deploy
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.
Pull-Request e Issues
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.