https://github.com/laisfrigerio/on36-s5-bank-api
Bank API build on top of with nestjs, typescript, typeorm, jest, supertest
https://github.com/laisfrigerio/on36-s5-bank-api
Last synced: 8 months ago
JSON representation
Bank API build on top of with nestjs, typescript, typeorm, jest, supertest
- Host: GitHub
- URL: https://github.com/laisfrigerio/on36-s5-bank-api
- Owner: laisfrigerio
- Created: 2024-08-01T01:48:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-01T04:52:34.000Z (about 1 year ago)
- Last Synced: 2025-01-20T12:06:57.858Z (9 months ago)
- Language: TypeScript
- Size: 335 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Banco de dados
Turma Online ON36 - Imersão JavaScript | Semana 5 | 2024 | Professora Lais Frigério
## Professora Lais
Eu sou engenheira de software, professora de programação e compartilho conteúdo técnico em minhas redes sociais!
Fui aluna da segunda turma do curso Eudca{devas} em 2023!
Hoje trabalho como Engenheira de Software no Nubank.
- 💌 Email: laisfrigerio.dev@gmail.com
- 📸 Instagram: [@laisfrigerio](https://www.instagram.com/laisfrigerio/)
- 💼 LinkedIn: [in/laisfrigerio](https://www.linkedin.com/in/laisfrigerio/)
- 👩💻 Github:[/laisfrigerio](https://github.com/laisfrigerio)
## Sistema
Este projeto consiste em uma API para simular um banco, com clientes e suas contas, além de toda a gerenciamento feito pelos gerentes.
O cliente possui os seguintes dados:
- Nome
- Endereço
- Telefone
- Contas
> Obs: Um cliente pode ter mais de uma conta.
Nosso banco possui 2 tipos de Conta:
- Conta Corrente
- Conta Poupança
Segue os requisitos de negócio:
- Cada cliente pode ter uma ou mais contas bancárias. As contas podem ser do tipo Conta Corrente ou Conta Poupança.
- Para a conta corrente, é necessário armazenar o limite do cheque especial.
- Para a conta poupança, é necessário armazenar a taxa de juros.
- As Contas podem fazer depósito, tranferencia e saque
Atualmente, essa API contém as seguintes rotas para clientes:
- GET http://localhost:3000/clients
- GET http://localhost:3000/clients/:clientId
- POST http://localhost:3000/clients
Também contém as seguintes rotas para cadastro de gerentes:
- GET http://localhost:3000/managers
- GET http://localhost:3000/managers/:id
- POST http://localhost:3000/managers
- DELETE http://localhost:3000/users/:id
E também possuim as seguintes rotas para um gerente gerenciar as contas dos seus respectivos clientes:
- GET http://localhost:3000/managers/:managerId/clients (Lista de seus clientes)
- POST http://localhost:3000/managers/:managerId/clients (Adicionar novo cliente)
- DELETE http://localhost:3000/managers/:managerId/clients/:clientId (Remover cliente)
- POST http://localhost:3000/managers/:managerId/clients/:clientId/accounts (Adicionar conta à um cliente)
- DELETE http://localhost:3000/managers/:managerId/accounts/:accountId (Remove conta de um cliente)
- POST http://localhost:3000/managers/:managerId/accounts/:accountId/change-type (Mudar tipo da conta)
### Tecnologias
Este projeto foi construído com as seguintes tecnologias:
- NestJs
- TypeScript
- Jest / Supertest
## Executar o projeto
- Instalação das dependências:
```sh
npm install
```
- Execução:
```sh
npm run start:dev
```
> Esse comando executa a aplicação com nodemon. A cada atualização, a aplicação é buildada automaticamente!
### Acessando rota via CURL
- GET lista de clients:
```sh
curl -X GET 'http://localhost:3000/clients'
```
- GET client pelo seu ID (uuid):
```sh
curl -X GET 'http://localhost:3000/clients/:clientId'
```
- POST cadastrando um gerente:
```sh
curl -X POST 'http://localhost:3000/managers' -H 'Content-Type: application/json' --data '{
"name": "Maria Joana"
}'
```
- GET listando todos os gerentes:
```sh
curl -X GET 'http://localhost:3000/managers'
```
- GET pegando dados de um gerente pelo seu ID:
```sh
curl -X GET 'http://localhost:3000/managers/:managerId'
```
- DELETE removendo um gerente pelo seu ID:
```sh
curl -X DELETE 'http://localhost:3000/managers/:managerId'
```
Desenvolvido com :purple_heart: por laisfrigerio