https://desafio_ebytr.surge.sh
É necessário possuir docker
e docker-compose
instalados na máquina com as permissões corretas para o usuário.
cd app && docker-compose -f docker-compose.yml up -d --build
npm run compose:up
cd app && docker-compose -f docker-compose.yml down --remove-orphans
npm run compose:down
Até o momento 05/07/22 apenas o frontend roda localmente:
cd app/frontend && npm i && npm start
O fluxos que estão funcionais (localmente p/ testes) são:
-
O fluxo de sign in e login.
-
Criação e exclusão de tarefas.
-
Edição de tarefas
graph TD;
Login-->SignIn;
SignIn-->Login;
Login-->MyTodo;
Nome e email. É utilizada uma senha que deve retornar um token.
Data de criação, Título e Status. No banco de dados a tarefa deve possuir o id do dono.
- React React-Router
- Redux React-Redux redux-devtools-extension
- Eslint
- NodeJS
- ShellScript
- Docker Docker-Compose
-
Dockerização do banco de dados
-
Dockerização do backend
-
Dockerização do frontend
-
Editar Tarefa
-
Ordenar Tarefa pela Data de Criação
-
Ordenar Tarefa pelo Título
-
Ordenar Tarefa pelo Status
-
Excluir Tarefa
-
Adicionar Tarefa
-
Criação do React Front Básico
-
Configuração do linter
-
Router
-
Redux
-
Login
npm i -S prop-types
npm i react-router-dom@v5
npm i react-redux redux redux-thunk
npm i composewithdevtools
npm i redux-devtools-extension
Requisitos técnicos:
- Front-End em React;
- Back-End em NodeJS, com MySQL;
- Arquitetura em camadas;
Funcionalidades:
-
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;
Critérios de avaliação
Nosso time irá avaliar a sua entrega olhando, principalmente, para os itens abaixo:
- Atendimento aos requisitos técnicos e funcionais;
- Seu projeto deve rodar sem erros;
- Entendimento dos conceitos das camadas adotadas;
- Código e componentes reutilizados;
- Habilidade em escrever testes (mínimo 30% de cobertura);
- Boa legibilidade do código;
- Separação do front e backend;
- Mensagens de commits bem descritas e commits com um escopo nítido;
- Referências de códigos de terceiros;
- Instruções nítidas no README do projeto para setup e execução da aplicação e dos testes.
Dicas importantes!
-
Ter uma boa cobertura de testes Front e Back;
-
Aplicar boas práticas de escrita de código;
-
Documentação do projeto (README), que inclua:
-
Passo a passo para instalar e executar o projeto. Incluindo instruções especiais para instalar dependências e/ou bancos de dados, se houver;
-
Endereço da aplicação no Heroku, se houver (ou outro serviço de deployment);
-
Ter um linter configurado;
-
O projeto deverá ser entregue via repositório pessoal no GitHub (utilize boas práticas de criação/nomeação de branches, além de mensagens de commits bem descritas e commits com um escopo nítido).
frontend:
npm -i -D
./node_modules/.bin/eslint --init
npm i -D eslint-config-trybe-frontend