{"id":16632811,"url":"https://github.com/jerp86/gostack-fundamentos-node","last_synced_at":"2026-04-19T22:33:04.536Z","repository":{"id":42880244,"uuid":"256352522","full_name":"jerp86/gostack-fundamentos-node","owner":"jerp86","description":":fire: Desafio utilizando Node.js e TypeScript incluindo ferramentas como ts-node-dev, ESLint, Prettier, EditorConfig :rocket:","archived":false,"fork":false,"pushed_at":"2022-03-26T13:03:34.000Z","size":1178,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-26T10:48:43.669Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/jerp86.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-16T23:26:24.000Z","updated_at":"2021-06-10T19:13:29.000Z","dependencies_parsed_at":"2022-08-27T09:30:28.269Z","dependency_job_id":null,"html_url":"https://github.com/jerp86/gostack-fundamentos-node","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"rocketseat-education/gostack-template-fundamentos-node","purl":"pkg:github/jerp86/gostack-fundamentos-node","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fgostack-fundamentos-node","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fgostack-fundamentos-node/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fgostack-fundamentos-node/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fgostack-fundamentos-node/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jerp86","download_url":"https://codeload.github.com/jerp86/gostack-fundamentos-node/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jerp86%2Fgostack-fundamentos-node/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32025736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-10-12T05:10:31.157Z","updated_at":"2026-04-19T22:33:04.516Z","avatar_url":"https://github.com/jerp86.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg alt=\"GoStack\" src=\"https://storage.googleapis.com/golden-wind/bootcamp-gostack/header-desafios.png\" /\u003e\n\n\u003ch3 align=\"center\"\u003e\n  🔥 Desafio: Primeiro projeto Node.js 🚀\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e“Para quem fica melhor a cada dia, ficar pronto é utopia”!\u003c/blockquote\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"GitHub language count\" src=\"https://img.shields.io/github/languages/count/jerp86/gostack-fundamentos-node\"\u003e\n\n  \u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/jerp86/gostack-fundamentos-node?logo=javascript\u0026color=yellow\"\u003e\n\n  \u003cimg alt=\"GitHub repo size in bytes\" src=\"https://img.shields.io/github/repo-size/jerp86/gostack-fundamentos-node?color=green\"\u003e\n\n  \u003cbr\u003e\n\n  \u003cimg alt=\"Codacy Badge\" src=\"https://api.codacy.com/project/badge/Grade/46bffb8abc1b4de9a992d3adf392eaad\"\u003e\n\n  \u003cimg alt=\"GitHub code size in bytes\" src=\"https://img.shields.io/github/last-commit/jerp86/gostack-fundamentos-node\"\u003e\n\n  \u003ca href=\"https://www.linkedin.com/in/jerp/\"\u003e\n    \u003cimg alt=\"Made by Jerp86\" src=\"https://img.shields.io/badge/made%20by-Jerp86-%2304D361\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n# Indice\n\n- :rocket: [Sobre o Desafio](#rocket-sobre-o-desafio)\n- :memo: [Específicação dos testes](#memo-específicação-dos-testes)\n- 👨‍💻️ [Tecnogias utilizadas](#%EF%B8%8F-tecnogias-utilizadas)\n- 📦️ [Como baixar o projeto](#%EF%B8%8F-como-baixar-o-projeto)\n\n---\n\n## :rocket: Sobre o Desafio\n\nO projeto **Fundamentos Node.JS** é o primeiro desafio do curso **Bootcamp GoStack** da [Rocketseat](https://rocketseat.com.br/), utilizando a técnica e tendência de [TDD (Test Driven Development)](https://pt.wikipedia.org/wiki/Test-driven_development).\n\nNesse desafio, foi criado uma aplicação para continuar treinando  do que foi aprendido até o momento no Node.js junto ao TypeScript, utilizando o conceito de models, repositories e services!\n\nEssa aplicação deve armazenar transações financeiras de entrada e saída, que deve permitir o cadastro e a listagem dessas transações.\n\nFoi utilizado o template que está disponível nessa [url](https://github.com/Rocketseat/gostack-template-fundamentos-node) onde haviam 3 (três) testes que deveriam ter sido resolvidos para ganhar a nota total do desafio.\n\n---\n\n## :memo: Específicação dos testes\n\nEm cada teste, tem uma breve descrição no que a aplicação deve cumprir para que o teste passe.\n\nPara esse desafio, foi proposto os seguintes testes:\n\n- **`should be able to create a new transaction`**: Para que esse teste passe, a aplicação deve permitir que uma transação seja criada, e retorne um json com a transação criada.\n\n- **`should be able to list the transactions`**: Para que esse teste passe, a aplicação deve permitir que seja retornado um objeto contendo todas as transações junto ao balanço de income, outcome e total das transações que foram criadas até o momento.\n\n- **`should not be able to create outcome transaction without a valid balance`**: Para que esse teste passe, a aplicação não deve permitir que uma transação do tipo `outcome` extrapole o valor total que o usuário tem em caixa, retornando uma resposta com código HTTP 400 e uma mensagem de erro no seguinte formato: `{ error: string }`\n\n---\n\n## 👨‍💻️ Tecnogias utilizadas\n\nO projeto foi desenvolvido utilizando as seguintes tecnologias:\n\n- [Node.js](https://nodejs.org/)\n- [TypeScript](https://www.typescriptlang.org/)\n- [Express](https://expressjs.com/)\n- [UUIDv4](https://www.npmjs.com/package/uuidv4)\n- [Visual Studio Code](https://code.visualstudio.com/)\n- [ESLint](https://eslint.org/)\n- [Prettier](https://prettier.io/)\n- [Editor Config](https://editorconfig.org/)\n\n---\n\n## 📦️ Como baixar o projeto\n\n```bash\n  # Clonar o repositório\n  ❯ git clone https://github.com/jerp86/gostack-fundamentos-node.git\n\n  # Entrar no diretório\n  ❯ cd gostack-fundamentos-node\n\n  # Instalar as dependências\n  ❯ yarn\n  # ou pode utilizar npm\n  ❯ npm install\n\n  # Iniciar o projeto\n  ❯ yarn dev:server\n  # ou pode utilizar npm\n  ❯ npm dev:server\n\n  # Iniciar os testes\n  ❯ yarn test\n  # ou pode utilizar npm\n  ❯ npm test\n```\n\n---\n\n\u003ch4 align=\"center\"\u003e\n  Feito com ❤️ por Jerp86 👋️ \u003ca href=\"mailto:jerp4@hotmail.com\"\u003eEntre em contato!\u003c/a\u003e\n\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.linkedin.com/in/jerp/\"\u003e\n    \u003cimg alt=\"José Eduardo Rodrigues Pinto\" src=\"https://img.shields.io/badge/LinkedIn-jerp-0e76a8?style=flat\u0026logoColor=white\u0026logo=linkedin\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.facebook.com/jerpbtu\"\u003e\n    \u003cimg alt=\"José Eduardo Rodrigues Pinto\" src=\"https://img.shields.io/badge/Facebook-jerpbtu-1778F2?style=flat\u0026logoColor=white\u0026logo=facebook\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.instagram.com/jerpbtu/\"\u003e\n    \u003cimg alt=\"José Eduardo Rodrigues Pinto\" src=\"https://img.shields.io/badge/Instagram-@jerpbtu-833AB4?style=flat\u0026logoColor=white\u0026logo=instagram\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://twitter.com/jerpbtu\"\u003e\n    \u003cimg alt=\"José Eduardo Rodrigues Pinto\" src=\"https://img.shields.io/twitter/follow/jerpbtu?style=flat\u0026logoColor=white\u0026logo=Twitter\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerp86%2Fgostack-fundamentos-node","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjerp86%2Fgostack-fundamentos-node","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjerp86%2Fgostack-fundamentos-node/lists"}