Giter Site home page Giter Site logo

alexandrebeato / bankflix Goto Github PK

View Code? Open in Web Editor NEW
96.0 7.0 15.0 3.39 MB

Aplicação que simula um banco digital, contendo a área do cliente e administrativa, permitindo depósitos e transferências entre contas do mesmo banco. | Application that simulates a digital bank, containing the customer and administrative areas, allowing deposits and transfers between accounts of the same bank.

License: MIT License

JavaScript 0.25% TypeScript 15.87% HTML 11.06% C# 49.80% Dockerfile 0.22% Kotlin 0.13% Swift 0.12% Objective-C 0.01% Dart 18.40% Ruby 1.05% Shell 0.03% SCSS 3.07%
ddd cqrs repository-pattern domain-notification domain-events dependency-injection dotnet-core rest-api angular mongodb

bankflix's Introduction

trivelum logo

Build status

Começando

Para executar a aplicação:

git clone https://github.com/alexandrebeato/bankflix.git
cd bankflix
docker-compose up --build -d

A aplicação angular (front-end) poderá ser acessada através do endpoint http://localhost:5001/ e a api (back-end) pode ser acessada via endpoint http://localhost:5002/.

Sobre

O projeto Bankflix simula um banco digital, contendo a área do cliente e administrativa, permitindo depósitos e transferências entre contas do mesmo banco..

Dê uma estrela! ⭐

Se você gostou do projeto ou se ele te ajudou, por favor dê uma estrela ;)

Atenção

Este não é um projeto para ser utilizado em produção. Ele é apenas uma demonstração do uso das tecnologias e da arquitetura em que foi construído. Existem ajustes e melhorias a serem feitos.

Dados para acesso da agência

CNPJ: 03569262000160

Senha 123456

Informações importantes

  • Todos os valores internamente são tratados como centavos convertidos para R$ apenas na exibição ao cliente
  • Os eventos orquestrados por filas terão um delay de 30 segundos apenas para percepção do uso da fila.
  • O contexto de AGÊNCIA não possui CQRS para demonstrar que pode-se manter diferentes padrões conforme a necessidade.
  • É possível acompanhar o ACK manual com sistema de filas re-inserindo a transação na fila caso haja alguma falha.
  • Os containeres não estão utilizando volumes, portanto ao matá-los irá causar a perda dos dados.
  • A aplicação pode levar alguns segundos para iniciar pois o serviço de filas (RabbitMQ) leva alguns segundos para liberar para conexões. Existe uma política de Retry utilizando Polly para que a aplicação inicie apenas quando o serviço estiver funcionando corretamente.

Fluxo

  • Ao iniciar a aplicação pela primeira vez será cadastrado uma agência com um usuário administrador
  • Ao criar sua conta o cliente ficará com o status pendente até que o usuário administrador aprove seu cadastro.
  • Ao aprovar ou recusar, será disparado um evento de envio de e-mail (apenas simulando, não envia realmente) notificando o cliente.
  • Ao aprovar, será criada uma conta bancária automaticamente vinculada ao cliente com saldo zerado.
  • O cliente poderá realizar depositos online (simulado, pode-se colocar o valor que quiser) que ao cadastrado ficará como pendente, sendo adicionado na fila para ser efetuado.
  • O cliente poderá realizar uma transferência para outras contas que ao solicitar a transferência ela ficará como pendente, sendo adicionada na fila para ser efetuada ou cancelada.
  • Quando o depósito ou transferência forem efetuados/recusados (cancelado) será disparado um evento de envio de e-mail (apenas simulando, não envia realmente) notificando os clientes.
  • Quando o depósito ou transferência forem efetuados com sucesso, será registrada a movimentação.-

Autor 👦

Roadmap 🗺

Item Data
Testes TBD
Aplicativo Mobile (Flutter)

License 📃

This project is licensed under the MIT License - see the LICENSE file for details

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.