Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
.vscode
12 changes: 12 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
PORT
MONGO_USER
MONGO_HOST
MONGO_PASSWORD
DATABASE
DATABASE_COLLECTION
MONGO_PORT
MONGO_EXPRESS_PORT
MONGO_INITDB_ROOT_USERNAME
MONGO_INITDB_ROOT_PASSWORD
ME_CONFIG_MONGODB_ADMINUSERNAME
ME_CONFIG_MONGODB_ADMINPASSWORD
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules
.env
82 changes: 22 additions & 60 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,61 +1,23 @@
# **TESTE DE BACKEND**

## SITUAÇÃO-PROBLEMA

Você acabou de ser contratado para uma vaga de desenvolvedor backend de uma empresa que revende cervejas do mundo inteiro. O desenvolvedor anterior corrompeu completamente o banco de dados e a API anterior e sobrou apenas um arquivo .JSON com todas as informações do banco. Seu líder confiou a tarefa de recriar a API e o banco de dados a você.

Neste teste, você deverá criar uma API com endpoints a serem consumidos via REST e um banco de dados, utilizando os dados fornecidos no arquivo. ````db.json````.

---------------------------------------------------------------------

## REQUISITOS OBRIGATÓRIOS:

- Seja original, projetos suspeitos de serem copiados serão descartados.
- Queremos ver o seu código, e não o de outros.
- Criar coleção no Postman (seu teste será testado por aqui).

## GIT

- Faça um fork deste repositório.
- Crie uma branch para codar as suas features.
- Faça um pull-request quando o teste for finalizado.

##### **NOTA: Será avaliado também se o nome da branch, títulos de commit, push e comentários possuem boa legibilidade.**

-----------------------------------------------------

## FRAMEWORK -

- Servidor: Express (Javascript/Typescript) *<u>**OU**</u>* Gin (Golang)
- Banco de dados: MongoDB, DynamoDB, MySQL, Postgres...

-----------------------------------------------------

## PROJETO

- Api deve conter pelo menos 1 endpoint para cada operação crud (Create, Read, Update, Delete).
- Um endpoint para listagem de conteúdo.
- Banco de dados a escolha do dev.

-------------------------------------------------------

## REQUISITOS DIFERENCIAIS:

- Seguir os princípios de SOLID.
- Fazer o teste em GoLang.
- Codar um código performático.
- Utilizar inglês no projeto todo.
- Utilizar Injeção de dependências.
- Criar um frontend que consuma a API
- Fazer deploy do mesmo (heroku, aws, google cloud ou outro da preferência).



---

## ENTREGA

- Faça um pull request e nomeie-o como no ex.: Teste de (Seu nome aqui).
- Envie um email para schmidt@repenso.eco e kevin@repenso.eco com o link do pull request, do deploy (tanto do front quanto do back se feito), e anexe a coleção do postman.
- Assim que avaliarmos seu teste, enviaremos uma devolutiva de sucesso ou falha, e caso seja aprovado, um link para agendar sua entrevista técnica.
## HOW TO RUN THE APPLICATION:

#### **execute for create the database with docker-compose**
```bash
docker-compose --env-file ./.env up -d
```
**OBS: it's important that you have the ".env" created with its proper values**

#### **execute for install all project dependencies**
```bash
npm install
```
#### **execute for populate the database with db.json**
```bash
ts-node ./src/config/database/populate-db.ts
```
**OBS: it's important that you have the "ts-node" globally install in your machine**

#### **execute for to up application**
```bash
npm run dev
```

29 changes: 29 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
version: '3.1'

# rodar o command 'docker-compose --env-file ./.env up -d' para conseguir subir o banco de dados com as variaveis de ambiente

services:

mongo:
image: mongo
container_name: mongo-database
restart: always
environment:

MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
MONGO_INITDB_DATABASE: ${MONGO_DATABASE}

ports:
- ${MONGO_PORT}:${MONGO_PORT}

mongo-express:
image: mongo-express
container_name: mongo-express-name
restart: always
ports:
- ${MONGO_EXPRESS_PORT}:${MONGO_EXPRESS_PORT}
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: ${ME_CONFIG_MONGODB_ADMINUSERNAME}
ME_CONFIG_MONGODB_ADMINPASSWORD: ${ME_CONFIG_MONGODB_ADMINPASSWORD}
ME_CONFIG_MONGODB_DATABASE: ${MONGO_DATABASE}
Loading