Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bush1d3v/tsbank_api

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.
https://github.com/bush1d3v/tsbank_api

bcrypt clean-architecture crud dotenv express javascript jest jsonwebtoken jwt knex nodejs nodemon pg postgresql restful-api solid tdd typescript yarn yup

Last synced: 3 months ago
JSON representation

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.

Awesome Lists containing this project

README

        

# ⛰️ TSBANK API

![License](https://img.shields.io/static/v1?label=license&message=MIT&color=orange)  
![Yarn version](https://img.shields.io/static/v1?label=yarn&message=v1.22.21&color=yellow)  
![Repository size](https://img.shields.io/github/repo-size/bush1D3v/tsbank_api?color=green)  
![Pull request](https://img.shields.io/static/v1?label=PR&message=welcome&color=blue)

## 🔍 Sobre o Projeto

A **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.

## 🛠️ Tecnologias e Ferramentas Utilizadas


typescript
nodejs
postgresql
jest  
express  
nodemon  
dotenv  
jsonwebtoken  
cors  
bcrypt  
insomnia  
beekeeper  
swagger
knex  
docker

## 🏗 Estrutura e Arquitetura

O 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**.

## 🔏 Autenticação

Para 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.

## 📃 Documentação da Aplicação

A seguir, temos o link da **documentação oficial** da nossa aplicação no **Swagger**:

https://tsbank-api.onrender.com/

> 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".

## 🐳 Docker

Com 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.

Para isso, segue a lista de funções de cada script:

> `docker-build`: Constrói a imagem docker do projeto
`docker-start`: Sobe e roda/só roda o container tsbank_api
`docker-stop`: Para o container tsbank_api
`docker-test`: Sobe um container alternativo chamado tsbank_api_tests, roda os testes e exclui o container após a execução dos mesmos

# 🖋️ Contribuindo para a TSBank API

Agradecemos 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.

## 💻 Como Contribuir

### 🌳 Forkando o Repositório

Antes de começar, você **deverá** forkar o repositório do projeto para **seu perfil**.

### 🖨 Clonando seu Repositório

Após o Fork, você **precisará** clonar o repositório forkado para seu **ambiente de desenvolvimento local**:

```
git clone https://github.com/{seu-usuario}/tsbank_api.git
cd tsbank_api
```

### ⏬ Instalando Dependências

Certifique-se de ter Node.js instalado no seu sistema. Em seguida, instale as dependências necessárias:

```
npm install
```

ou

```
yarn install
```

ou

```
pnpm install
```

### 🆕 Criando uma Branch

Antes de iniciar qualquer trabalho, crie uma branch separada para a sua contribuição. Use um nome descritivo para a sua branch:

```
git checkout -b feature/nova-funcionalidade
```

### 🔨 Fazendo Alterações

Faça as alterações necessárias no código, adicione novos recursos ou correções de bugs.

### 🧪 Testando

Garanta que suas alterações não quebraram nenhum recurso existente. Execute os testes e certifique-se de que todos passam:

```
npm run test
```

ou

```
yarn test
```

ou

```
pnpm test
```

### 📝 Documentando

Mantenha a documentação atualizada. Se você adicionou novos recursos, verifique se eles estão devidamente documentados no Swagger.

### 📊 Compromissos e Push

Após concluir suas alterações e testá-las, faça um commit das alterações:

```
git add .
git commit -m feat(nomeDoArquivo): Nova funcionalidade
```

Em seguida, envie suas alterações para o repositório:

```
git push origin feature/nova-funcionalidade
```

### 📨 Solicitando um Pull Request (PR)

Vá 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.

### 👁 Revisão e Fusão

Apó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.

## 💼 Diretrizes Gerais

- Mantenha o código limpo e legível.
- Siga as boas práticas de desenvolvimento.
- Respeite as convenções de nomenclatura existentes.
- Documente adequadamente as alterações, recursos ou correções.

#

**_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._**