Jingyu-DS / Bank_System_Python

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bank System Design

Brief Description of the Project

This project is the bank system which is based on my own understanding. The main objects in my mind are the accounts which contains different types of band accounts, the customers, the manager who can help operate the basic business types and also have his/her own unique business types, the teller who can do the basic business types and also have some unique business types which should be less than the manager but also have some limited access to some part of the information because of the identity, the assistant who also can do some basic business types and have some unique types as well as some limitations. Then, I would like to talk about the main objects in my project one by one. By the way, the operation which is a abstract class here will be talked about more later in the text.

[Account]

With an account, all the other objects can do the operations on that. In the account object, I just give it the basic implementations: withdraw and deposit. In the bank system, there should be several bank accounts—here, checking account, saving account and the reserve account. Each account has different withdraw fees. Other more advanced operations, which I think are more likely to be done by the engagement of the customers and workers, are put into other classes.

[Customer]

When a customer goes to the bank to solve some banking stuffs, the workers care about his/her identity. Several attributes are created to clarify the customer’s identity—name, authority ID, birthdate, the probable credit rating which some customers might not have if they are new to the bank. I choose to make the authority ID and credit rating private in the project because I do not want them to be modified without intention, so I restrict their accesses. Obviously, the customer can open his/her account and he/she can choose which type of account he/she would like to open. I set a minimum deposit here in order to open an account. Besides, that the age of the customer should be larger than 18 is also a requirement to open an account in the bank. The customer can withdraw the money. Also, she/he can overdraw, but my project is designed to let the customer know he/she is about to overdraw before his/her decision making. The customer can also apply for the credit card, but minimum balance and credit rating should be satisfied. The customer can apply for a loan which is less than 1000 if his/her credit rating is higher than 500.

[Manager]

The manager should be able to do the basic operations of the bank system such as deposit, withdraw and transfer between the two accounts. However, as a manager, he/she certainly have more power to do something unique. Here, I create several methods to design the unique parts of the manager’s power. The manager can have access to the customer’s information—name, ID, birthdate as well as credit rating. The manager can approve a loan based on the customer’s condition. Besides, the manager can delete an account from the bank system.

[Teller]

The teller should be able to do the basic operations of the bank system such as deposit, withdraw and transfer between the two accounts. However, I set a limit here for the transfer. The transfer the teller can do should be less than $10000. The teller can also have access to the customer’s information but only the name and birthdate. The teller cannot approve the loan and delete the account.

[Assistant]

The assistant should be able to do the basic operations of the bank system such as deposit, withdraw and transfer between the two accounts. The assistant can approve a loan like what the manager can do, but the assistant cannot have access to the customer’s information and delete the account.

About


Languages

Language:Python 100.0%