An open API service indexing awesome lists of open source software.

https://github.com/vagnercardosoweb/nlw5-devquiz-api

API para integrar o APP DevQuiz desenvolvido em Flutter na NLW5 da Rocketseat.
https://github.com/vagnercardosoweb/nlw5-devquiz-api

express flutter nlw5 node postgresql rocketseat typescript

Last synced: 10 months ago
JSON representation

API para integrar o APP DevQuiz desenvolvido em Flutter na NLW5 da Rocketseat.

Awesome Lists containing this project

README

          

NLW5 - DevQuiz - API


Diagrama db

# Projeto

Projeto tem como objetivo integrar o app desenvolvido em [Flutter](https://flutter.dev/) durante a NLW5
da [Rocketseat](https://rocketseat.com.br), evento voltado a te levar ao próximo nível como desenvolvedor.

# Tecnologias

- [Express](https://expressjs.com/pt-br/)
- [TypeScript](https://www.typescriptlang.org/)
- [PostgreSQL](https://www.postgresql.org/)

# Pré requisitos para rodar o projeto.

- Node v14
- npm ou yarn
- Docker

# Configurando o projeto

```shell
# Clonar o projeto
git clone git@github.com:vagnercardosoweb/nlw5-devquiz-api.git

# Entra na pasta do projeto
cd nlw5-devquiz-api
```

Agora você deve configurar as variável de ambiente.

- Copie o `.env.example` pra `.env`
- Configure as variávies, caso esteja utilizando docker o banco já está configurado para rodar local.
- Cria duas chaves seguras e mude em `APP_KEY` e `API_KEY`.
- Caso queira o rastreamento do [sentry](https://sentry.io/welcome/), você deve configurar o `SENTRY_DSN`.
- A env `APP_ENV` deve ser development para funcionar as `migrations` em ambiente de desenvolvimento.

**APP_KEY**: chave para proteger a criptografia do token JWT.

**API_KEY**: chave para proteger as chamadas as apis quando não tem um token do usuário (JWT).

# Rodando o projeto

```shell
# Ligando o projeto
yarn dev:docker

## caso esteja utilizando npm:
npm run dev:docker

# Rodando as migrations
docker exec nlw5-devquiz-api sh -c "yarn db:migrate"
```

- Todas rotas é protegida por TOKEN, quando não precisa está autenticado deve passar a chave que está no `.env` chamada `API_KEY`.
- Na documentação em todas rotas tem um **CADEADO** ao clicar vc insere o token e terá acesso as rotas.
- As rotas que precisa de autenticação você deve passar o **token** retornado no login.

# Documentação da API

A documentação pode ser acessada atrávez [http://localhost:3333/docs](http://localhost:3333/docs)


Swagger

## Licença

Esse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE.md) para mais detalhes.

---

Feito com ♥ by Vagner Cardoso