{"id":18884747,"url":"https://github.com/leandroppf/gostack-desafio-fundamentos-reactjs","last_synced_at":"2025-07-15T22:10:37.108Z","repository":{"id":41655985,"uuid":"258773690","full_name":"leandroppf/gostack-desafio-fundamentos-reactjs","owner":"leandroppf","description":"GoStack Desafio 07: GoFinances Web","archived":false,"fork":false,"pushed_at":"2023-01-05T11:08:05.000Z","size":4623,"stargazers_count":0,"open_issues_count":21,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-24T00:37:09.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leandroppf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-25T12:46:13.000Z","updated_at":"2020-08-24T01:58:21.000Z","dependencies_parsed_at":"2022-08-10T08:13:57.967Z","dependency_job_id":null,"html_url":"https://github.com/leandroppf/gostack-desafio-fundamentos-reactjs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"rocketseat-education/gostack-template-fundamentos-reactjs","purl":"pkg:github/leandroppf/gostack-desafio-fundamentos-reactjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-fundamentos-reactjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-fundamentos-reactjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-fundamentos-reactjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-fundamentos-reactjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leandroppf","download_url":"https://codeload.github.com/leandroppf/gostack-desafio-fundamentos-reactjs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leandroppf%2Fgostack-desafio-fundamentos-reactjs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265464256,"owners_count":23770316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T07:14:05.492Z","updated_at":"2025-07-15T22:10:37.087Z","avatar_url":"https://github.com/leandroppf.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"GoStack\" src=\"https://storage.googleapis.com/golden-wind/bootcamp-gostack/header-desafios-new.png\" /\u003e\n\n\u003ch3 align=\"center\"\u003e\n  Desafio 07: GoFinances Web\n\u003c/h3\u003e\n\n\u003cblockquote align=\"center\"\u003e“Não espere resultados brilhantes se suas metas não forem claras”!\u003c/blockquote\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/leandroppf/gostack-desafio-fundamentos-reactjs?color=%2304D361\"\u003e\n\n  \u003ca href=\"https://rocketseat.com.br\"\u003e\n    \u003cimg alt=\"Made by Leandro Pedroso\" src=\"https://img.shields.io/badge/made%20by-Leandroppf-%2304D361\"\u003e\n  \u003c/a\u003e\n\n  \u003cimg alt=\"License\" src=\"https://img.shields.io/badge/license-MIT-%2304D361\"\u003e\n\n  \u003ca href=\"https://github.com/leandroppf/gostack-desafio-fundamentos-reactjs/stargazers\"\u003e\n    \u003cimg alt=\"Stargazers\" src=\"https://img.shields.io/github/stars/leandroppf/gostack-desafio-fundamentos-reactjs?style=social\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## :rocket: Sobre o desafio\n\nNesse desafio, o objetivo era continuar desenvolvendo a aplicação de gestão de transações, a GoFinances. Para esse desafio foi utilizado React.js junto com TypeScript, utilizando rotas e envio de arquivos por formulário.\n\nEssa aplicação se conecta com o backend do [Desafio 06](https://github.com/leandroppf/gostack-desafio-typeorm-upload), e exibe as transações criadas e permitindo a importação de um arquivo CSV para gerar novos registros no banco de dados.\n\n### Layout da aplicação\n\nEssa aplicação possui um layout criado pela equipe da Rocketseat.\n\nO layout pode ser acessado através da página do Figma, no [seguinte link](https://www.figma.com/file/EgOhyj1Inz14dhWGVhRlhr/GoFinances?node-id=1%3A863).\n\n### Funcionalidades da aplicação\n\n- **`Listar as transações da sua API`**: Sua página `Dashboard` deve ser capaz de exibir uma listagem através de uma tabela, com o campo `title`, `value`, `type` e `category` de todas as transações que estão cadastradas na sua API.\n\n- **`Exibir o balance da sua API`**: Sua página `Dashboard`, você deve exibir o balance que é retornado do seu backend, contendo o total geral, junto ao total de entradas e saídas.\n\n- **`Importar arquivos CSV`**: Na sua página `Import`, você deve permitir o envio de um arquivo no formato `csv` 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](https://github.com/Rocketseat/bootcamp-gostack-desafios/blob/master/desafio-database-upload/assets/file.csv).\n\n### Específicação dos testes\n\nO template também possui testes automatizados e um dos objetivos é que o código criado passe em todos os testes listados abaixo:\n\n- **`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 de `income`, `outcome` e o total da subtração de `income - outcome` que são retornados pelo balance do seu backend.\n\n* **`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.\n\n- **`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 nome `Importar`.\n\n- **`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 de `import`, e que seja possível exibir o nome do arquivo enviado para o input.\n\n---\n\nDesafio concluído no dia 25/04/2020 por Leandro Pinto Pedroso Filho\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandroppf%2Fgostack-desafio-fundamentos-reactjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleandroppf%2Fgostack-desafio-fundamentos-reactjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleandroppf%2Fgostack-desafio-fundamentos-reactjs/lists"}