Coodesh-Back-end-Challenge
Desafio Back-end Challenge.
Descrição
A empresa Pharma Inc, está trabalhando em um projeto em colaboração com sua base de clientes para facilitar a gestão e visualização da informação dos seus pacientes de maneira simples e objetiva em um Dashboard onde podem listar, filtrar e expandir os dados disponíveis. O seu objetivo nesse projeto, é trabalhar no desenvolvimento da REST API da empresa Pharma Inc seguindo os requisitos propostos neste desafio.
Especificação do desafio
-
A API deve importar dados utilizando https://randomuser.me/documentation, utilizando um cron-job.
-
Criar um CRUD com os endpoints:
GET /: Retornar uma mensagem "REST Back-end Challenge 20201209 Running" PUT /users/:userId: Será responsável por receber atualizações dos dados DELETE /users/:userId: Remover o user da base GET /users/:userId: Obter a informação somente de um user da base de dados GET /users: Listar todos os usuários da base de dados
-
Utilizar cron-job para importar dados da api random users.
Tecnologias Utilizadas:
- Nodejs
- Typescript
- express
- Docker
- docker-compose
- Mongodb
- Jest
Instruções de uso
-
Clonar o repositorio:
git clone https://github.com/MoacirMSJ/Coodesh-Back-end-Challenge.git
-
No diretorio raiz do projeto(coodesh-back-end-challenge) crie o arquivo .env:
- DB_USER= Usuário de serviço para o mongodb.
- DB_PASS= Usuário de serviço para o mongodb.
- DB_NAME= Nome do database do mongodb.
- DB_PORT= Porta do para acesso ao mongodb.
- DB_HOST= Hsot onde se encontra o mongodb.
- APPLICATION_PORT= Porta para a aplicação.
- NUMBER_OF_REQUEST_RANDOM_USERS= Define o numero de chamadas a api random users.
- NUMBER_OF_USERS_FROM_RANDOM_USERS= Define a quantidade de usuários que serão buscados a cada chamada a api random users.
- CRON= Define o horário(sintax) que o cron-job executará, requisitando os usuários em random users
Exemplo de .env:
DB_USER=user
DB_PASS=pass
DB_NAME=pharma
DB_PORT=27017
DB_HOST=db_pharma
APPLICATION_PORT=8080
NUMBER_OF_REQUEST_RANDOM_USERS=10
NUMBER_OF_USERS_FROM_RANDOM_USERS=100
CRON='0 0 0 * * *'
-
Suba e acesse aplicação:
Comando para subir:
docker-compose up -d
Acesse:
http://localhost:<APPLICATION_PORT>/
Acesse a documentação:
http://localhost:<APPLICATION_PORT>/api-docs
-
Parando aplicação:
Somente parar:
docker-compose stop
Para e apagar container:
docker-compose down
-
Executar Testes:
Comando:
npm run test
Referencia
challenge by coodesh