$ show banksystembg/BankSystem
This repository implements a banking system built with ASP.NET Core that enables users to create bank accounts, manage cards, transfer funds internally and between banks via a central API, and process payments. The system features a modular architecture with separate projects for the main bank web application, central API for inter-bank communication, and a demo shop showcasing payment integrations. Key capabilities include user authentication with 2FA, email notifications via SendGrid, security measures like reCAPTCHA and request encryption, and role-based administration. The solution follows layered architecture patterns with separation of concerns between presentation, service, and data access layers, utilizing Entity Framework Core for ORM and AutoMapper for DTO mapping.
The LLM identified 5 files worth highlighting for reuse:
Provides isolated AES encryption/decryption utilities with proper key generation, IV handling, and disposable resource management. Demonstrates cryptographic best practices and can be reused in any .NET application requiring symmetric encryption with minimal dependencies.
Contains reusable RSA key handling methods for importing/exporting XML keys. Isolated from business logic with no framework dependencies, making it easily extractable for projects needing RSA XML key operations while following secure cryptographic patterns.
Static utility for generating unique transaction reference numbers using timestamp and random components. Self-contained with no external dependencies beyond System.Random, demonstrating a practical approach to collision-resistant ID generation applicable across payment systems.
Generic pagination implementation supporting any IEnumerable source with efficient LINQ-based querying. Follows repository pattern principles with IPaginatedList interface abstraction, enabling reuse in any data presentation scenario requiring paging functionality.
Middleware implementing configurable HTTP security headers (HSTS, CSP, X-Frame-Options etc.) via a fluent builder pattern. Demonstrates reusable ASP.NET Core middleware construction that can be dropped into any web project for enhanced security with minimal configuration.