Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/acmachado14/nest-ci

API para consultar informações sobre feriados em diferentes regiões do Brasil.
https://github.com/acmachado14/nest-ci

continuous-integration docker-compose typescript

Last synced: 6 days ago
JSON representation

API para consultar informações sobre feriados em diferentes regiões do Brasil.

Awesome Lists containing this project

README

        







Descrição | Pré Requisitos | Rodando | Regras de Negocio | Testes | Enrega Contínua






Descrição

Solução para o [problema da instruct](https://github.com/instruct-br/teste-backend-remoto-2020-07) utilizando entrega contínua para verificação do código a cada push.
Este projeto consiste em uma API para consultar informações sobre feriados em diferentes regiões do Brasil. Com ele, é possível obter detalhes sobre feriados estaduais, municipais e nacionais, facilitando a gestão de eventos e planejamento de atividades.
A aplicação é construída usando Nest.js e integra um banco de dados PostgreSQL para armazenar e recuperar informações sobre feriados em diferentes localidades.

- - - -


Pré Requisitos

Para facilitar a instalação de todas as dependências do projeto e executar de uma forma simples e rápida, foram utilizadas as seguintes ferramentas:
- [Docker](https://docs.docker.com/get-docker/)
- [Docker-compose](https://docs.docker.com/compose/install/)

Porém é possível rodar o projeto de outra forma, segue as dependências para tal:
- [Node 18](https://nodejs.org/en/download)
- [PostgreSQL](https://www.postgresql.org/download/)

- - - -


Rodando

### Docker

1. Apenas executar o comando para inciar a API (porta 3000), o docker fará o restante do trabalho 🧙‍♂️
```
make server
```

### Node e PostgreSQL
Aqui, é necessário já possuir o postgresql instalado e devidamente configurado.

0. Copiar o conteúdo do .env.example para um novo arquivo .env
1. Instalar as dependencias
```
npm install
```

2. Executar as migrações do banco de dados
```
npx prisma migrate dev
```

3. Executar as seeds para preencher o banco
```
npm run seed:fill
```

4. Rodar o projeto
```
npm run start
```


Regras de Negocio

Para solucionar o problema, não faria sentido cadastrar um feriado para sempre (com exceção dos feriados nacionais), sendo assim no .env é definido uma variável YEAR_RANGE que vai definir por quanto tempo aquele feriado será válido.
Outra variável inserida foi a CURRENT_YEAR visto que os testes dados pelo problema foram anos anteriores, o padrão foi de 2020 nos testes.

As tabelas do banco de dados se relacionam da seguinte forma:


Testes

Os testes foram extraídos do repositório original e adaptados para a estrutura do Jest, para executá-los basta rodar o comando:

```
make tests
```
ou

```
npm run test:e2e
```
Existe uma maior quantidade de testes para o problema, eles podem ser visualizados na pasta de [testes](./test) do sistema. Esses mostram um pouco mais da validação das rotas, vale a pena dar uma olhada.


Entrega Contínua

O código passa por três verificações:

### Build 📦
Para verificar as dependências do projeto, se é possível rodá-lo.

### Lint ✨
Verificar o padrão do código, garantindo que todo o código esteja coerente e de facil entendimento para todos.

### Test 🧪
Rodar os testes unitários do sistema e garantir que todos passem.

Essa verificações/etapas removem o problema comum de “Mas, na minha máquina funciona”.