{"repo":"festinalli/BankMore-Challenge","free":true,"listed":false,"github":"https://github.com/festinalli/BankMore-Challenge","clone":"git clone https://github.com/festinalli/BankMore-Challenge.git","description":"Plataforma bancária event-driven com antifraude em tempo real (PyFlink + XGBoost) e arranjo PIX completo (ISO 20022, mTLS). .NET 8, Clean Arch/CQRS, Kafka.","language":"C#","stars":23,"topics":["angular","clean-architecture","cqrs","csharp","docker","dotnet","event-driven","fraud-detection","kafka","microservices"],"license":"MIT","category":"data-pipelines","readme_excerpt":"BankMore — Real-Time Fraud Detection + PIX Sistema bancário event-driven com detecção de fraude em tempo real e um arranjo PIX completo (DICT, liquidação ISO 20022, MED, QR EMVCo, PIX Automático, NFC, Open Finance), com mTLS na RSFN . Toda transferência passa por um job PyFlink 1.18 (regras duras + XGBoost ) antes de ser efetivada. Todo PIX passa por antifraude em dois níveis : scoring inline síncrono antes da liquidação (bloqueia) + análise pós-liquidação em streaming que enriquece o feature store (observa). Arquitetura limpa (Clean Architecture + CQRS + DDD) em 3 bounded contexts: ContaCorrente, Transferência e PIX. Sprints 1–10 done. Changelog resumido abaixo; decisões em docs/adr/ (0001–0019). Validação: make e2e (7 cenários de transferência) + make e2e-pix ( 10 fluxos PIX ). 📋 Changelog detalhado — Sprints 1–10 (clique para expandir) Sprint 1 done (11/05): stack 100% Docker, fluxo Solicitada → Worker. Sprint 2 done (16/05): detector com state, persistência de status no Postgres, 4 cenários e2e (feliz / auto-transf / valor alto / burst). Sprint 2.5 done (16/05): PyFlink real — JVM + KeyedProcessFunction + MapState com TTL + watermark + checkpoint EXACTLY ONCE em RocksDB a cada 60s. Sprint 3 done (16/05): ML em produção . XGBoost (ROC-AUC 0.9993) treinado no build da imagem ( ml/train.py com seed=42), servido por Flask + Gunicorn. PyFlink chama /predict síncrono com fail-open (timeout 2s → segue só com regras se ML cair). Decisão híbrida: regras DURAS primeiro (autotransf","default_branch":null,"files":null,"tree":[],"storefront":"/r/festinalli","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/festinalli/BankMore-Challenge/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}