Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jhon-henkel/bank-transference-api-challenge
Desafio API transferência bancária entre contas
https://github.com/jhon-henkel/bank-transference-api-challenge
java
Last synced: about 1 month ago
JSON representation
Desafio API transferência bancária entre contas
- Host: GitHub
- URL: https://github.com/jhon-henkel/bank-transference-api-challenge
- Owner: Jhon-Henkel
- License: mit
- Created: 2023-09-26T23:01:16.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-27T00:57:21.000Z (about 1 year ago)
- Last Synced: 2023-09-27T07:14:36.896Z (about 1 year ago)
- Topics: java
- Language: Java
- Homepage:
- Size: 16.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Desafio Back-end Transferência bancária entre contas
Temos 2 tipos de usuários, os comuns e lojistas, ambos têm carteira com dinheiro e realizam transferências entre eles. Vamos nos atentar **somente** ao fluxo de transferência entre dois usuários.
Requisitos:
- Para ambos tipos de usuário, precisamos do Nome Completo, CPF, e-mail e Senha. CPF/CNPJ e e-mails devem ser únicos no sistema. Sendo assim, seu sistema deve permitir apenas um cadastro com o mesmo CPF ou endereço de e-mail.
- Usuários podem enviar dinheiro (efetuar transferência) para lojistas e entre usuários.
- Lojistas **só recebem** transferências, não enviam dinheiro para ninguém.
- Validar se o usuário tem saldo antes da transferência.
- Antes de finalizar a transferência, deve-se consultar um serviço autorizador externo, use este mock para simular (https://run.mocky.io/v3/eda53610-258d-4265-bcca-89e4e07782bb).
- A operação de transferência deve ser uma transação (ou seja, revertida em qualquer caso de inconsistência) e o dinheiro deve voltar para a carteira do usuário que envia.
- No recebimento de pagamento, o usuário ou lojista precisa receber notificação (envio de email, sms) enviada por um serviço de terceiro e eventualmente este serviço pode estar indisponível/instável. Use este mock para simular o envio (http://o4d9z.mocklab.io/notify).
- Este serviço deve ser RESTFul.
### Payload
Faça uma **proposta** :heart: de payload, se preferir, temos uma exemplo aqui:
POST /transaction
```json
{
"value" : 100.00,
"payer" : 4,
"payee" : 15
}
```Projeto realizado seguindo um mini-curso no Youtube (https://www.youtube.com/watch?v=QXunBiLq2SM)
### Endpoints desenvolvidos
- POST /users
```json
{
"firstName": "Name",
"lastName": "LastName",
"document": "00000000000",
"email": "[email protected]",
"userType": "COMMON",
"password": "12345678",
"balance": 10
}
```- GET /users
- POST /transactions
```json
{
"senderId": 1,
"receiverId": 2,
"value": 10
}
```