{"id":18659123,"url":"https://github.com/bush1d3v/tsbank_api","last_synced_at":"2025-10-16T06:13:35.680Z","repository":{"id":201823729,"uuid":"706987894","full_name":"bush1D3v/tsbank_api","owner":"bush1D3v","description":"API RESTful com autenticação de usuário, criptografia de senha e integração a banco de dados. Levando à risca os princípios de desenvolvimento utilizados.","archived":false,"fork":false,"pushed_at":"2024-02-20T21:22:32.000Z","size":1029,"stargazers_count":18,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T17:49:14.731Z","etag":null,"topics":["bcrypt","clean-architecture","crud","dotenv","express","javascript","jest","jsonwebtoken","jwt","knex","nodejs","nodemon","pg","postgresql","restful-api","solid","tdd","typescript","yarn","yup"],"latest_commit_sha":null,"homepage":"https://tsbank-api.onrender.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bush1D3v.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2023-10-19T02:09:02.000Z","updated_at":"2025-01-12T20:29:17.000Z","dependencies_parsed_at":"2024-02-06T14:07:58.541Z","dependency_job_id":"b1a97668-7686-4118-bf17-bae73b888055","html_url":"https://github.com/bush1D3v/tsbank_api","commit_stats":null,"previous_names":["bush1d3v/tsbank_api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bush1D3v%2Ftsbank_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bush1D3v%2Ftsbank_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bush1D3v%2Ftsbank_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bush1D3v%2Ftsbank_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bush1D3v","download_url":"https://codeload.github.com/bush1D3v/tsbank_api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248476129,"owners_count":21110215,"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":["bcrypt","clean-architecture","crud","dotenv","express","javascript","jest","jsonwebtoken","jwt","knex","nodejs","nodemon","pg","postgresql","restful-api","solid","tdd","typescript","yarn","yup"],"created_at":"2024-11-07T07:35:56.713Z","updated_at":"2025-10-16T06:13:30.651Z","avatar_url":"https://github.com/bush1D3v.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⛰️ TSBANK API\n\n![License](https://img.shields.io/static/v1?label=license\u0026message=MIT\u0026color=orange) \u0026nbsp;\n![Yarn version](https://img.shields.io/static/v1?label=yarn\u0026message=v1.22.21\u0026color=yellow) \u0026nbsp;\n![Repository size](https://img.shields.io/github/repo-size/bush1D3v/tsbank_api?color=green) \u0026nbsp;\n![Pull request](https://img.shields.io/static/v1?label=PR\u0026message=welcome\u0026color=blue)\n\n## 🔍 Sobre o Projeto\n\nA **API TSBank** é uma aplicação **RESTful** que oferece suporte a operações **CRUD** simples, **gerenciamento** e **controle** de transações, geração de **extratos**, **saques**, **depósitos** e transações **entre contas**, além de ter a capacidade de atualizar **todas** as informações do usuário.\n\n## 🛠️ Tecnologias e Ferramentas Utilizadas\n\n\u003cdiv align='center'\u003e\n    \u003cimg align='center' height='50' width='70' title='TypeScript' alt='typescript' src='https://github.com/devicons/devicon/blob/master/icons/typescript/typescript-original.svg' /\u003e\n    \u003cimg align='center' height='54' width='68' title='Node.js' alt='nodejs' src='https://github.com/devicons/devicon/blob/master/icons/nodejs/nodejs-original-wordmark.svg' /\u003e\n    \u003cimg align='center' height='55' width='70' title='PostgreSQL' alt='postgresql' src='https://github.com/devicons/devicon/blob/master/icons/postgresql/postgresql-original.svg' /\u003e\n    \u003cimg align='center' height='54' width='68' title='Jest' alt='jest' src='https://github.com/devicons/devicon/blob/master/icons/jest/jest-plain.svg' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='49' width='49' title='Express' alt='express' src='https://github.com/bush1D3v/solid_rest_api/assets/133554156/ba645c20-1f19-4914-8ad0-de6c7f83ba2e' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='53' width='49' title='Nodemon' alt='nodemon' src='https://github.com/bush1D3v/solid_rest_api/assets/133554156/fd586348-7781-4e02-a4f0-fe7410ef43fb' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='49' width='49' title='Dotenv' alt='dotenv' src='https://github.com/bush1D3v/my_portfolio/assets/133554156/432ec521-c94a-4f24-964e-f62658d04581' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='53' width='55' title='JsonWebToken' alt='jsonwebtoken' src='https://github.com/bush1D3v/solid_rest_api/assets/133554156/d23ffb9d-aedc-4d68-9209-7268d7f41ce6' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='50' width='50' title='Cors' alt='cors' src='https://github.com/bush1D3v/101acessorios_api/assets/133554156/3b4cccec-065e-428a-a663-1c5939404c1a' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='48' width='48' title='Bcrypt' alt='bcrypt' src='https://github.com/bush1D3v/solid_rest_api/assets/133554156/5863bac1-a591-4776-82a4-f427681934be' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='48' width='48' title='Insomnia' alt='insomnia' src='https://github.com/bush1D3v/my_portfolio/assets/133554156/75a3fffd-792e-4250-8ef5-2abb615e38a0' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='53' width='49' title='Beekeeper' alt='beekeeper' src='https://github.com/bush1D3v/my_portfolio/assets/133554156/0d5b4b55-546c-4bc0-a25c-dfc9116fe993' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='60' width='70' title='Swagger' alt='swagger' src='https://github.com/bush1D3v/tsbank_api/assets/133554156/6739401f-d03b-47f8-b01f-88da2a9075d1' /\u003e\n    \u003cimg align='center' height='50' width='50' title='Knex' alt='knex' src='https://github.com/bush1D3v/bank_restful_api/assets/133554156/428d135b-9aeb-46e2-b6f6-94791326ff2f' /\u003e \u0026nbsp;\n    \u003cimg align='center' height='70' width='70' title='Docker' alt='docker' src='https://github.com/devicons/devicon/blob/master/icons/docker/docker-plain.svg' /\u003e\n\u003c/div\u003e\n\n## 🏗 Estrutura e Arquitetura\n\nO projeto segue os princípios da **arquitetura limpa** e leva em consideração os princípios do **SOLID**. O código foi organizado de acordo com os princípios de **modularidade**, **reutilização** e **responsabilidade única**.\n\n## 🔏 Autenticação\n\nPara usar a API, é **necessário** autenticar-se. Você deve obter um **token JWT válido** através do **endpoint de login** antes de acessar outros recursos. O token JWT deve ser incluído no **cabeçalho de autorização** de **todas** as solicitações subsequentes.\n\n## 📃 Documentação da Aplicação\n\nA seguir, temos o link da **documentação oficial** da nossa aplicação no **Swagger**: \u003cbr\u003e\nhttps://tsbank-api.onrender.com/\n\n\u003e obs: Pode ocorrer atraso no carregamento, pois se o UptimeRobot falhar, e, posteriormente, o deploy não for acessado por um certo período, uma requisição subsequente solicitará ao Render que a aplicação saia do \"Modo Sleep\".\n\n## 🐳 Docker\n\nCom a adição do Docker, você agora pode utilizar dos scripts fornecidos em `package.json` para poder construir a imagem docker e rodar os containers da aplicação e dos testes.\n\nPara isso, segue a lista de funções de cada script:\n\n\u003e `docker-build`: Constrói a imagem docker do projeto \u003cbr\u003e `docker-start`: Sobe e roda/só roda o container tsbank_api \u003cbr\u003e `docker-stop`: Para o container tsbank_api \u003cbr\u003e `docker-test`: Sobe um container alternativo chamado tsbank_api_tests, roda os testes e exclui o container após a execução dos mesmos\n\n# 🖋️ Contribuindo para a TSBank API\n\nAgradecemos pelo seu interesse em contribuir para a **TSBank API**. Sua ajuda é **valiosa** para melhorar e **expandir** nossa aplicação. Abaixo estão as **diretrizes** e os **passos** para contribuir com nosso projeto.\n\n## 💻 Como Contribuir\n\n### 🌳 Forkando o Repositório\n\nAntes de começar, você **deverá** forkar o repositório do projeto para **seu perfil**.\n\n### 🖨 Clonando seu Repositório\n\nApós o Fork, você **precisará** clonar o repositório forkado para seu **ambiente de desenvolvimento local**:\n\n```\ngit clone https://github.com/{seu-usuario}/tsbank_api.git\ncd tsbank_api\n```\n\n### ⏬ Instalando Dependências\n\nCertifique-se de ter Node.js instalado no seu sistema. Em seguida, instale as dependências necessárias:\n\n```\nnpm install\n```\n\nou\n\n```\nyarn install\n```\n\nou\n\n```\npnpm install\n```\n\n### 🆕 Criando uma Branch\n\nAntes de iniciar qualquer trabalho, crie uma branch separada para a sua contribuição. Use um nome descritivo para a sua branch:\n\n```\ngit checkout -b feature/nova-funcionalidade\n```\n\n### 🔨 Fazendo Alterações\n\nFaça as alterações necessárias no código, adicione novos recursos ou correções de bugs.\n\n### 🧪 Testando\n\nGaranta que suas alterações não quebraram nenhum recurso existente. Execute os testes e certifique-se de que todos passam:\n\n```\nnpm run test\n```\n\nou\n\n```\nyarn test\n```\n\nou\n\n```\npnpm test\n```\n\n### 📝 Documentando\n\nMantenha a documentação atualizada. Se você adicionou novos recursos, verifique se eles estão devidamente documentados no Swagger.\n\n### 📊 Compromissos e Push\n\nApós concluir suas alterações e testá-las, faça um commit das alterações:\n\n```\ngit add .\ngit commit -m feat(nomeDoArquivo): Nova funcionalidade\n```\n\nEm seguida, envie suas alterações para o repositório:\n\n```\ngit push origin feature/nova-funcionalidade\n```\n\n### 📨 Solicitando um Pull Request (PR)\n\nVá para o repositório no GitHub e crie um Pull Request para que sua contribuição seja revisada. Certifique-se de descrever suas alterações e fornecer informações contextuais.\n\n### 👁 Revisão e Fusão\n\nApós criar um Pull Request, nossa equipe revisará suas alterações e fornecerá feedback. Uma vez aprovado, suas alterações serão mescladas no projeto principal.\n\n## 💼 Diretrizes Gerais\n\n- Mantenha o código limpo e legível.\n- Siga as boas práticas de desenvolvimento.\n- Respeite as convenções de nomenclatura existentes.\n- Documente adequadamente as alterações, recursos ou correções.\n\n#\n\n**_Agradecemos pela sua contribuição e esperamos trabalhar juntos para tornar a TSBank ainda melhor. Se você tiver alguma dúvida ou precisar de ajuda, não hesite em entrar em contato conosco. Juntos, podemos criar uma aplicação mais robusta e eficiente._**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbush1d3v%2Ftsbank_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbush1d3v%2Ftsbank_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbush1d3v%2Ftsbank_api/lists"}