“Não espere resultados brilhantes se suas metas não forem claras”!
Nesse desafio, é necessário continuar desenvolvendo a aplicação de gestão de transações, a GoFinances, praticando o React.js junto com TypeScript, utilizando rotas e envio de arquivos por formulário.
Essa será uma aplicação que irá se conectar ao backend do Desafio 06, e exibir as transações criadas e permitir a importação de um arquivo CSV para gerar novos registros no banco de dados.
Essa aplicação possui um layout.
O layout pode ser acessado através da página do Figma, no seguinte link.
É necesśaria uma conta (gratuita) no Figma pra inspecionar o layout e obter detalhes de cores, tamanhos, etc.
-
Listar as transações da sua API
: Sua páginaDashboard
deve ser capaz de exibir uma listagem através de uma tabela, com o campotitle
,value
,type
ecategory
de todas as transações que estão cadastradas na sua API. -
Exibir o balance da sua API
: Sua páginaDashboard
, você deve exibir o balance que é retornado do seu backend, contendo o total geral, junto ao total de entradas e saídas. -
Importar arquivos CSV
: Na sua páginaImport
, você deve permitir o envio de um arquivo no formatocsv
para o seu backend, que irá fazer a importação das transações para o seu banco de dados. O arquivo csv deve seguir o seguinte modelo.
Para esse desafio, temos os seguintes testes:
should be able to list the total balance inside the cards
: Para que esse teste passe, sua aplicação deve permitir que seja exibido na sua Dashboard, cards contendo o total deincome
,outcome
e o total da subtração deincome - outcome
que são retornados pelo balance do seu backend.
should be able to list the transactions
: Para que esse teste passe, sua aplicação deve permitir que sejam listados dentro de uma tabela, toda as transações que são retornadas do seu backend.
-
should be able to navigate to the import page
: Para que esse teste passe, você deve permitir a troca de página através do Header, pelo botão que contém o nomeImportar
. -
should be able to upload a file
: Para que esse teste passe, você deve permitir que um arquivo seja enviado através do componente de drag-n-drop na página deimport
, e que seja possível exibir o nome do arquivo enviado para o input.
Esse projeto está sob a licença MIT. Veja a página LICENSE para mais detalhes.