Este teste foi desenvolvido para avaliar suas habilidades práticas em tarefas comuns do dia a dia de um desenvolvedor júnior. Através deste desafio, você terá a oportunidade de demonstrar seu conhecimento na criação de banco de dados, definição de relacionamentos entre tabelas e entidades, além de aplicar boas práticas de desenvolvimento em um ambiente Docker. O objetivo é simular uma situação real de desenvolvimento de uma aplicação simples, onde você deverá criar as estruturas necessárias e garantir que o sistema esteja funcionando corretamente por meio de testes. A conclusão bem-sucedida desta tarefa refletirá seu domínio de conceitos importantes para a vaga.
Dentro do arquivo init.sql
, crie as seguintes tabelas:
- id – Tipo:
Int
, autoincremental, chave primária (PK). - firstName – Tipo:
Varchar(100)
, não nulo. - lastName – Tipo:
Varchar(100)
, não nulo. - email – Tipo:
Varchar(100)
, não nulo.
- id – Tipo:
Int
, autoincremental, chave primária (PK). - title – Tipo:
Varchar(100)
, não nulo. - description – Tipo:
Varchar(100)
, não nulo. - userId – Tipo:
Int
, não nulo (chave estrangeira referenciando a tabelauser
).
Dentro da pasta src/Entity
, crie as entidades correspondentes às tabelas User
e Post
.
Dentro de src/index.ts
, configure dois endpoints users
& posts
Configure o Dockerfile
da aplicação para garantir que ela seja construída corretamente no ambiente Docker.
Execute os seguintes comandos para testar a aplicação:
-
Subir a aplicação utilizando Docker Compose:
docker compose up --build docker exec -it <Container Name> /bin/sh
Dentro do container, execute o teste:
npm test
Crie um Pull Request para a brach master nos enviando o código