Low level design for a simple banking system.
Create a simple banking system that allows users to perform the following operations:
- Credit: Add money to their account.
- Debit: Withdraw money from their account.
- Check Balance: View the current balance in their account.
- Exit: End their session or transaction.
- Transaction Format: The amount entered by the user will be in the
xD yCformat, wherexandyare amounts andDandCsignify "Dollars" and "Cents" respectively. Examples include10D 20C,10D, or20C. Displayed amounts should also use this format.
- Multiple Users: Support transactions for multiple users.
- Multiple Currencies: Handle multiple currencies beyond just dollars and cents.
- What are the typical transaction limits for credit and debit operations?
- How should the system handle currency conversion if multiple currencies are involved?
- What security features are required to protect user accounts and transactions?
- How will the system ensure data consistency across multiple sessions?
- Is there a need for real-time transaction processing?
- Go implementation example: Simple Banking System in Go