O objetivo desse desafio é avaliar a capacidade de aprendizado de uma tecnologia legada (AngularJS) e a capacidade de mapeamento e conversão da aplicação para uma tecnologia moderna (React).
Você irá clonar o seguinte repositório: https://github.com/metaware/angular-invoicing
Nele existe uma aplicação feita em AngularJS que emite notas fiscais, fazendo alguns cálculos simples de valores, podendo adicionar e remover produtos, alterar o logo e o modo de visualização.
- Criar um repositório público baseado no repositório base acima
- Converter a aplicação de AngularJS para React, mantendo as funcionalidades presentes na aplicação original
- Documentar o passo a passo do processo usando commits bem escritos EM INGLÊS
- Quebrar a aplicação em componentes reutilizáveis, usando boas práticas de estrutura de código e pastas
- Adicionar a funcionalidade de desconto percentual em cada produto
- Criar um script em Webpack para rodar o servidor localmente e fazer uma build para produção
- Descrever os scripts da aplicação em um arquivo README.md
- Transpor toda a aplicação para Typescript
- Transferir estilos do css para styled-components
- Escrever testes unitários usando Jest
- Utilizar Recoil como biblioteca de gerenciamento de estado
- Adicionar a funcionalidade de conversão de valores por moedas (puxando de alguma API a taxa de câmbio)
- Conseguir, em algum momento da conversão, rodar na mesma build a aplicação em AngularJS e em React usando alguma das seguintes bibliotecas: react2Angular angular2react