Este é um projeto desenvolvido para o desafio técnico da Konsi. Ele consiste em uma aplicação simples que permite buscar benefícios associados a um CPF em uma API externa e exibir os resultados em uma nova tela. O projeto utiliza Fastify, TypeScript, Redis, RabbitMQ, Elasticsearch e Handlebars para a renderização das views.
- Node.js (versão 18 ou superior)
- NPM ou Yarn para gerenciamento de pacotes
- Docker
-
Clone o repositório para sua máquina local:
git clone https://github.com/dev-mariana/konsi.git
-
Acesse o diretório do projeto:
cd konsi
-
Rode o docker compose para criar os containers:
docker compose up -d
-
Instale as dependências:
npm install ou yarn install
-
Crie um arquivo .env na raiz do projeto e coloque as variáveis de ambiente:
- NODE_ENV="development"
- PORT=3000
- BASE_URL="api-externa"
- EXTERNAL_API_USERNAME="username da api externa"
- EXTERNAL_API_PASSWORD="password da api externa"
- RABBITMQ_CONNECTION="connection rabbit mq"
- RABBITMQ_QUEUE="nome da fila"
- REDIS_URL="connection redis"
- ELASTICSEARCH_URL="connection elasticsearch"
-
Iniciar o servidor:
npm run dev ou yarn dev
- Enviar fila com os dados da lista de benefícios para o RabbitMQ e salvar no Redis:
{
"tax_id": "869.230.000-41"
}
- Fazer busca dos dados de benefícios salvos no Redis, enviados para a fila do RabbitMQ e indexados no Elasticsearch:
curl --location 'http://localhost:3000/api/benefits/search?taxId=12345689101'