How imrohit44/project_synthesis_17 works
PyBank is a banking platform with a React client, a FastAPI banking service, and an event-driven fraud service. The principal workflow is authenticated account use and transfers: requests enter through the versioned API, banking logic persists financial state, and transfer events feed fraud assessment and downstream notifications. The graph also preserves the documented read-only LLM assistant and ticket-authenticated realtime delivery. Some subsystem wiring is based on README descriptions because the relevant source was not sampled; uncertain internal call edges are omitted.
Main entry points: App.tsx React application · banking.py Banking application · router.py Versioned API · kafka.py Kafka transport
Components 31
Banking client
- React application
frontend/src/app/App.tsx - Login and profile
frontend/src/app/AuthContext.tsx - Accounts and transfers
frontend/src/pages/Transfer.tsx - Assistant page
frontend/src/pages/Assistant.tsx - API and queries
frontend/src/lib/api.ts - Realtime hook
frontend/src/lib/useRealtime.ts
Banking service
- Versioned API
backend/app/api/v1/router.py - Authentication API
backend/app/api/v1/auth.py - Transfer API
backend/app/api/v1/transfers.py - Assistant API
backend/app/api/v1/assistant.py - Banking application
backend/app/application/banking.py - Authentication logic
backend/app/application/auth.py - Transfer domain
backend/app/domain/services/transfer.py - Banking database
backend/app/infrastructure/persistence/database.py
Events and risk
- Event outbox
backend/app/infrastructure/outbox.py - Kafka transport
backend/app/infrastructure/kafka.py - Fraud event consumer
services/fraud/app/infrastructure/kafka_consumer.py - Risk assessment
services/fraud/app/domain/risk.py - Fraud assessments
services/fraud/app/infrastructure/database.py - Graph risk signal
services/fraud/graph/risk.py - Risk event outbox
services/fraud/app/infrastructure/outbox.py
Assistant and notifications
- Assistant agent
backend/app/assistant/agent.py - Allowlisted tools
backend/app/assistant/tools.py - Notification consumer
backend/app/notifications/consumer.py - Notification dispatch
backend/app/notifications/service.py - Realtime API
backend/app/api/v1/ws.py - WebSocket manager
backend/app/realtime/manager.py
Other components
- Customer
- LLM provider
- WhatsApp provider
backend/app/notifications/whatsapp.py - Browser
Connections 34
- Customer → React application: uses
- React application → Login and profile: routes to
- React application → Accounts and transfers: routes to
- React application → Assistant page: routes to
- Browser → React application: renders
- Login and profile → API and queries: requests auth
- Accounts and transfers → API and queries: requests banking
- Assistant page → API and queries: requests chat
- API and queries → Versioned API: HTTP requests
- Realtime hook → Realtime API: opens socket
- Versioned API → Authentication API: routes auth
- Authentication API → Authentication logic: authenticates
- Versioned API → Transfer API: routes transfers
- Transfer API → Banking application: handles transfer
- Banking application → Transfer domain: applies rules
- Banking application → Banking database: reads and writes
- Banking application → Event outbox: records events
- Event outbox → Kafka transport: publishes events
- Kafka transport → Fraud event consumer: delivers events
- Fraud event consumer → Risk assessment: assesses risk
- Risk assessment → Fraud assessments: stores assessment
- Risk assessment → Graph risk signal: adds graph signal
- Fraud event consumer → Risk event outbox: records result
- Risk event outbox → Kafka transport: publishes result
- Kafka transport → Notification consumer: delivers events
- Notification consumer → Notification dispatch: dispatches alerts
- Notification dispatch → WebSocket manager: sends realtime
- Realtime API → WebSocket manager: manages sockets
- Notification dispatch → WhatsApp provider: sends alerts
- Versioned API → Assistant API: routes chat
- Assistant API → Assistant agent: invokes agent
- Assistant agent → Allowlisted tools: executes tools
- Assistant agent → LLM provider: requests completion
- Allowlisted tools → Banking application: reads banking data