{"id":22253624,"url":"https://github.com/renanfachin/rs_ignite_api-rest-nodejs","last_synced_at":"2026-05-07T11:34:47.859Z","repository":{"id":234428064,"uuid":"627543640","full_name":"RenanFachin/RS_IGNITE_api-rest-nodejs","owner":"RenanFachin","description":"Módulo 2 - Bootcamp de especialização em nodeJS (IGNITE) pela rocketseat. Uma aplicação criada em nodejs utilizando typescript, knex e testes e2e.","archived":false,"fork":false,"pushed_at":"2023-04-17T18:57:49.000Z","size":802,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T12:30:51.945Z","etag":null,"topics":["fastify","ignite-nodejs","ignite-rocketseat","knexjs","nodejs","typescript","vitest"],"latest_commit_sha":null,"homepage":"","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/RenanFachin.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-04-13T17:27:24.000Z","updated_at":"2023-04-20T17:48:54.000Z","dependencies_parsed_at":"2024-04-19T09:56:21.572Z","dependency_job_id":"e345f1e4-8b50-40a6-991c-fdcaf61ccfc2","html_url":"https://github.com/RenanFachin/RS_IGNITE_api-rest-nodejs","commit_stats":null,"previous_names":["renanfachin/rs_ignite_api-rest-nodejs"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RenanFachin/RS_IGNITE_api-rest-nodejs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RenanFachin%2FRS_IGNITE_api-rest-nodejs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RenanFachin%2FRS_IGNITE_api-rest-nodejs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RenanFachin%2FRS_IGNITE_api-rest-nodejs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RenanFachin%2FRS_IGNITE_api-rest-nodejs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RenanFachin","download_url":"https://codeload.github.com/RenanFachin/RS_IGNITE_api-rest-nodejs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RenanFachin%2FRS_IGNITE_api-rest-nodejs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32735299,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-07T02:14:30.463Z","status":"ssl_error","status_checked_at":"2026-05-07T02:14:29.405Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["fastify","ignite-nodejs","ignite-rocketseat","knexjs","nodejs","typescript","vitest"],"created_at":"2024-12-03T07:19:13.414Z","updated_at":"2026-05-07T11:34:47.839Z","avatar_url":"https://github.com/RenanFachin.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg \n    alt=\"Logo Explorer\" \n    title=\"Explorer\" \n    src=\"https://i.imgur.com/jgM1K5Z.png\"\n  \u003e\n\n  \u003cbr\u003e\n\n  \u003ch2 align=\"center\"\u003e\n    API REST com NodeJS\n  \u003c/h2\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\n## API REST com NodeJS\nProjeto desenvolvido durante o módulo 2 do bootcamp de especialização em nodejs realizado junto a rocketseat.\n\nEste módulo consiste em desenvolver uma aplicação de transações (criar, listar todas, listar específicas e um resumo de todas). Para desenvolver esta aplicação, foi utilizado o microframework Fastify, knex como query builder e typescript.\n\nAlém disto, foram desenvolvidos testes end to end para testar as rotas da aplicação.\n\nTópicos abordados: `ESModule`, `Typescript`, `ESLint`, `Banco de dados - Knex, migrations, querys`,`Variáveis de ambiente`,`Validação de dados - ZOD`, `Fastify - Plugins, cookies e prehandlers`, `Testes automatizados - Tipos de testes, vitest, supertest`, `Build do projeto - TSUP` e `Deploy da aplicação`\n\n\n## Requisitos Funcionais\n\n  - [x] O usuário deve poder criar uma nova transação;\n  - [x] O usuário deve poder obter um resumo da sua conta;\n  - [x] O usuário deve poder listar todas transações que já ocorreram;\n  - [x] O usuário deve poder visualizar uma trasnsação única;\n\n## Regras de negócio\n\n  - [x] A transação pode ser do tipo crédito que somará ao valor total, ou débito subtrairá;\n  - [x] Deve ser possível idenficar o usuário entre as requisições;\n  - [x] O usuário só pode visualizar transações o qual ele criou;\n\n## Instalação\n\n```bash\n# Faça o clone do repotório\n  git clone git@github.com:RenanFachin/RS_IGNITE_api-rest-nodejs.git\n\n# Instalar as dependências do projeto\n  npm install\n\n# Executando o projeto no ambiente de desenvolvimento\n  npm run dev\n  \n# Rodar as migrations do projeto para criar o banco de dados\n  npm run knex -- migrate:latest\n```\n\n## Insomnia do projeto\n\n[![Run in Insomnia}](https://insomnia.rest/images/run.svg)](https://insomnia.rest/run/?label=API-node-js-TEST\u0026uri=https%3A%2F%2Fraw.githubusercontent.com%2FRenanFachin%2FRS_IGNITE_api-rest-nodejs%2Fmain%2Fexport.json%3Ftoken%3DGHSAT0AAAAAABV4J7KLCHDKOY6B4OGZONSWZB5R4JA)\n\n## Testes e2e\nOs testes foram desenvolvidos utilizando `vitest` e `supertest`\n\n\n## Rotas\n- Criar nova transação\n```bash\nPOST /transactions\n```\n\n- Listar todos usuários\n```bash\nGET /transactions\n```\n\n- Listar transação específica usuários\n```bash\nGET /transactions/:${transaction_id}\n```\n\n- Mostrar um resumo geral das transações do usuário\n```bash\nGET /transactions/summary\n```\n\n## Ferramentas utilizadas\n  - `NodeJS`\n  - `Fastify`\n  - `Sqlite`\n  - `Typescript`\n  - `Knex`\n  - `tsup`\n  - `zod`\n  - `vitest`\n  - `eslint`\n  - `supertest`\n  - `dotenv`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenanfachin%2Frs_ignite_api-rest-nodejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenanfachin%2Frs_ignite_api-rest-nodejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenanfachin%2Frs_ignite_api-rest-nodejs/lists"}