Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/acmachado14/nest-ci
- Owner: acmachado14
- Created: 2023-12-07T13:53:44.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-06T23:36:06.000Z (about 1 year ago)
- Last Synced: 2024-11-20T21:56:58.518Z (2 months ago)
- Topics: continuous-integration, docker-compose, typescript
- Language: TypeScript
- Homepage:
- Size: 215 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
DescriçãoSoluçã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é RequisitosPara 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 NegocioPara 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:
TestesOs 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ínuaO 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”.