Projeto realizado como teste técnico para vaga de desenvolvedor.
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto é bom ter um editor para trabalhar com o código como VSCode
APP_FRONTEND_URL=http://localhost:4200
APP_URL="http://localhost:3333"
APP_ENV=development
TYPEORM_CONNECTION= mysql
TYPEORM_HOST=localhost
TYPEORM_PORT=3306
TYPEORM_DATABASE=avaliacao
TYPEORM_USERNAME=root
TYPEORM_PASSWORD=
TYPEORM_ENTITIES = src/app/**/*.entity.ts
TYPEORM_MIGRATIONS = apps/api/src/database/migrations/*.ts
TYPEORM_SYNCHRONIZE = true
TYPEORM_LOGGING = true
TYPEORM_MIGRATIONS_DIR = apps/api/src/database/migrations
TYPEORM_SEEDING_SEEDS=apps/api/src/database/seeds/*.ts
MAIL_DRIVER=smtp
MAIL_HOST=
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=
MAIL_FROM_EMAIL=
MAIL_FROM_NAME=NTM
MAIL_TO_ADIM=
TZ=UTC
RECAPTCHA_SECRET_KEY=
JWT_SECRET_KEY=7d7635f1ad876fbc1f8d8e5a36cc982c
STORAGE="./storage"
# Clone este repositório
$ git clone https://github.com/matheuscassiano/avaliacao-fullstack
# Acesse a pasta do projeto no terminal/cmd
$ cd avaliacao-fullstack
# Instale as dependências com npm
$ npm install
# Rode as migrations
$ npm run migration:run
# Rode as seeds
$ npm run seed:run
# Para executar a api rode <http://localhost:3333/api>
$ npm start api
# Para executar o front rode <http://localhost:4200>
$ npm start front
Ao rodar o projeto, também é possivel visualizar as rotas pelo Swagger: http://localhost:3333/api
{
/* Usuário válido */
"email": "yagocaleb@gmail.com",
"password": "123456789"
}
Retorna todos os itens de conhecimentos cadastrados (Git, React, PHP, NodeJS, DevOps, Banco de Dados, TypeScript)
Cadastrar os itens de conhecimento. Recebe:
{
"name": "MongoDB"
}
Edita os itens de conhecimento já cadastrados. Recebe um id na rota e:
{
"name": "PostgreSQL"
}
Deleta os itens de conhecimento já cadastrados. Recebe um id na rota.
Retorna todos os usuários cadastrados.
Cadastra usuários. Recebe:
{
"name": "Matheus Cassiano",
"email": "matheuscassiano9@gmail.com",
"password": "098123765",
"cpf": "121.987.484-10",
"knowledge": [1, 2, 3],
"phoneNumber": "(82) 98739-1037"
}
Retorna um usuário especifico. Recebe um id na rota.
Edita um usuário especifico. Recebe um id na rota e:
(Somente são necessários os campos que serão alterados)
{
"name": "Matheus Cassiano",
"email": "matheuscassiano9@gmail.com",
"password": "098123765",
"cpf": "121.987.484-10",
"knowledge": [1, 2, 3],
"phoneNumber": "(82) 98739-1037"
}
Deleta um usuário especifico. Recebe um id na rota
Retorna um usuário especifico. Recebe um nome na rota.
Retorna o token de acesso JWT para acessar as demais rotas. Recebe:
{
"email": "matheuscassiano9@gmail.com",
"password": "098123765"
}
Realiza o login e guarda o token JWT. Recebe:
{
"email": "matheuscassiano9@gmail.com",
"password": "098123765"
}
Responsavel por cadastrar novos usuários: Recebe o nome da pessoa na rota, seguida de registrar e :
{
"name": "Matheus Cassiano",
"email": "matheuscassiano9@gmail.com",
"password": "098123765",
"cpf": "121.987.484-10",
"knowledge": [1, 2, 3],
"phoneNumber": "(82) 98739-1037"
}
Responsavel por mudar o status de Não Validade para Validado e exibir os dados de um determinado usuário. Recebe o nome de quem for ser aprovado na rota, seguido de validar e : (validatedAt recebe o timestamps atual do sistema)
{
"name": "Matheus Cassiano",
"email": "matheuscassiano9@gmail.com",
"password": "098123765",
"cpf": "121.987.484-10",
"knowledge": [1, 2, 3],
"phoneNumber": "(82) 98739-1037",
"validatedAt": "2021-06-19 10:51:43.000000"
}
Lista todos os seus usuários em ordem alfabetica e seus status