Projeto desenvolvido para avaliação de capacidades em uma vaga fullStack.
A empresa Ebytr está passando por problemas de produtividade/controle porque as pessoas colaboradoras vêm tendo dificuldade na organização de suas tarefas individuais. Por esse motivo, a diretora de produto Carolina Bigonha decidiu implantar uma nova forma de organizar as tarefas. Você foi a pessoa contratada para desenvolver um sistema capaz de auxiliar as pessoas colaboradoras a se organizar e ter mais produtividade. Na Ebytr o time de desenvolvimento utiliza a Stack MERN para criar suas aplicações. Foi combinado com a Ebytr que você utilizará essa mesma Stack para resolver o problema de organização e produtividade da empresa. Abaixo estão (i) os requisitos técnicos, (ii) as funcionalidades, (iii) critérios de avaliação do desafio e (iv) algumas dicas importantes.
- Front-End em React;
- Back-End em NodeJS, com MongoDB;
- Arquitetura em camadas;
- Visualizar a lista de tarefas;
- Esta lista deve ser ordenável por ordem alfabética, data de criação ou por status;
- Inserir uma nova tarefa na lista;
- Remover uma tarefa da lista;
- Atualizar uma tarefa da lista;
- A tarefa deve possuir um status editável: pendente, em andamento ou pronto;
Pré-requisitos para rodar o projeto:
- NPM
- mongoDB
Copie o ssh do projeto git@github.com:cae07/TodoBackEnd.git
-
Abra um terminal no seu computador e utilize os comandos abaixo na ordem que são apresentados:
-
git clone git@github.com:cae07/TodoBackEnd.git
-
cd TodoBackEnd
-
npm install
-
npm start
Foi feito o deploy da aplicação no Heroku
, mas na falta desse, rodará na porta 3001.
├── README.md
├── index.js
├── tests
│ ├── Integration
│ │ ├── createUser.test.js
│ │ ├── login.test.js
│ │ ├── tasks.delete.test.js
│ │ ├── tasks.get.test.js
│ │ ├── tasks.post.js
│ │ └── tasks.put.js
│ │
│ ├── Unity
│ │ ├── controller
│ │ │ ├── tasks.get.test.js
│ │ │ ├── tasks.post.js
│ │ │ └── tasks.put.js
│ │ │
│ │ ├── models
│ │ │ ├── tasks.post.js
│ │ │ └── tasks.put.js
│ │ │
│ │ └── services
│ │ ├── tasks.post.js
│ │ └── tasks.put.js
│ │
│ └── connectionMock.js
│
├── services
│ ├── helpers
│ │ └── tasks.helpers.js
│ ├── auth.service.js
│ ├── tasks.service.js
│ └── user.service.js
│
├── Model
│ ├── connection.js
│ ├── tasksModel.js
│ └── userModel.js
│
├── Middlewares
│ ├── auth.js
│ └── handleError.js
│
├── Dictionary
│ ├── errorMessages.js
│ └── status.js
│
├── Controller
│ ├── index.js
│ ├── loginController.js
│ ├── tasksController.js
│ └── userController.js
│
├── package-lock.json
└── package.json
- NodeJS
- express
- body-parser
- cors
- dotenv
- joi
- jsonwebtoken
- mongodb
Ao fazer login ou criar novo usuário, é retornado um token
que é necessário para usar qualquer uma das outras rotas. Sendo necessário enviar pelo headers
como authorization
.
recebe como parâmetro um json com os campos
{
"email": precisa ser válido e não pode ser vazio,
"password": mínimo 6 dígitos e não pode ser vazio,
}
recebe como parâmetro um json com os campos
{
"email": precisa ser válido e não pode ser vazio,
"password": mínimo 6 dígitos e não pode ser vazio,
}
Apenas necessário fazer o login de usuário antes de chamar a rota
recebe como parâmetro um json com o campo
{
"task": não pode ser vazio,
}
recebe como parâmetro um json com o campo
{
"id": id da tarefa a ser atualizada e não pode ser vazio,
"task": não pode ser vazio,
"status": não pode ser vazio,
}
recebe como parâmetro um json com o campo
{
"id": id da tarefa a ser deletada e não pode ser vazio,
}
- npm start
- npm run test-integration
- npm run test-unity
https://github.com/cae07/TodoFrontEnd