O objetivo deste desafio é criar um sistema responsável por manter a conta de um ou vários produtores musical dentro da plataforma.
- Ter uma API onde o produtor se cadastra no sistema, sendo necessário informar nome, cpf e e-mail, todos os campos são obrigatórios e devem ser válidos de acordo com seus respectivos campos. O sistema, deverá gerar um número de conta bancaria para esse Produtor. A conta bancária é única e exclusiva.
- Eu preciso conseguir fazer depósito na minha conta para que possa fazer futuras transações
- Deve ser possível fazer a transferência para outra conta, se o saldo permitir
- Gostaria de visualizar meu saldo atual em tempo real, sem precisar ficar carregando a tela
- Quero acompanhar o histórico de transações em tempo real
- É preciso ter a possibilidade de emitir um comprovante padrão da minha conta, como exemplo:
Comprovante
- Número da Conta: 0001
- Conta da transferência: 0002
- Data da Transferência: DD/MM/AAAA * Valor que foi transferido: R$ 1,00
- Devera ter pelo menos 2 tabelas no banco de dados.
- A aplicação DEVE ser realizada com NestJS (e suas tecnologias disponíveis), Sequelize e MySQL.
- Deve ser possível efetuar o uso do sistema normalmente caso a API B esteja fora do ar, somente o processamento da transferência não será
- A API A, é responsável por receber as requisições do usuário, exceto a ação de processar pagamento, que será feita pela API B, sendo estimulada pela API A.
- A API B, é rsponsável por receber as requisições de pagamento, deposito e transferencia enviadas pela API A de usuário
- Path
localhost:3000**
Aqui temos a lista de endpoints com todas as informações necessárias.
** Todas as solicitações e respostas têm tipo de conteúdo como **
application / json
-
Path
GET/api/v1/users/
-
Path
GET/api/v1/users/ -
URL Parameters
Required
:ID
-
Path
POST/api/v1/users/ -
Payload
{ "key": "[value]", "key": "[value]", ``` } ```json exemplo usuario { "name": "Nome completo", "cpf": "numero do documento", "email": "email@dominio.com" }
-
Path
POST/api/v1/users/ -
URL Parameters
Required
:ID -
Payload
{ "key": "[value]", "key": "[value]", ``` } ```json exemplo usuario { "name": "Nome completo", "cpf": "numero do documento", "email": "email@dominio.com" }
-
Path
POST/api/v1/users/ -
URL Parameters
Required
:ID
- Path
localhost:4000**
Aqui temos a lista de endpoints com todas as informações necessárias.
** Todas as solicitações e respostas têm tipo de conteúdo como **
application / json
-
Path
GET/api/v1/bank/saldo/ -
URL Parameters
Required
:ID
-
Path
GET/api/v1/bank/history/ -
URL Parameters
Required
:ID
-
Path
POST/api/v1/bank/ -
Payload
{ "key": "[value]", "key": "[value]", ``` } ```json exemplo deposito { "type": "Deposito", "value": 5000, "userId": 1 }
-
Path
POST/api/v1/bank/ -
Payload
{ "key": "[value]", "key": "[value]", ``` } ```json exemplo pagamento { "type": "Pagamento", "value": 5000, "userId": 1 }
-
Path
POST/api/v1/bank/ -
Payload
{ "key": "[value]", "key": "[value]", ``` } ```json exemplo transferência { "type": "Transferencia", "value": 5000, "userId": 1, "userIdTransfer": 2 }
- Import colleciton - https://github.com/em2websolution/desafioSoundViser/blob/main/TESTE.postman_collection.json
Construir layout de um feed conforme imagem (construir layout conforme a imagem apresentada). 2. Consumir dados de api/mock. 3. Exibir na tela os dados da api no layout criado conforme Imagem. 4. Aplicar teste unitário nos inputs e outputs. 5. Sugerir uma solução ao seguinte problema: Como você faria para atualizar dados em tempo real, de vários campos simultâneos; Explo, novas curtidas, Seguidores, plays e etc.
Como sugestão poderiamos utilizar a tecnologia de
WebSockets
- Path
localhost:4200**
- Autor - Eduardo Marques
Todos os direitos reservados.