This project aims to study object-oriented programming using the Python programming language.
To create a banking system with operations such as withdrawal, deposit, view statement, create an account, and create a user.
We have been hired by a major bank to develop their new system. This bank wants to modernize its operations and has chosen the Python language for this purpose.
- Deposit Operation: All deposits should be stored and displayed in the statement operation.
- Withdrawal Operation: The system should allow only 3 withdrawals per day with a maximum limit of R$ 500.00 per withdrawal. If the user does not have sufficient balance, the system should display a message informing them. All withdrawals should be stored and displayed in the statement operation.
- Statement Operation: This operation should list all deposits and withdrawals made in the account and, at the end, display the current balance. If there are no transactions, it should display a message informing that there have been no movements.
- Create User: The user is composed of the following information: name, date of birth, CPF (Brazilian identification number), and address. The address is a string consisting of street name, number, neighborhood, city/state abbreviation. It is not allowed to register two users with the same CPF.
- Create Account: The account is composed of the following information: agency, account number, and user. The account number is sequential, starting from 1. The agency number is fixed as "0001". A user can have multiple accounts, but an account can have only one user.
- List Accounts: This operation lists all existing accounts in the system.