Coder Social home page Coder Social logo

bank_system_python's Introduction

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.

bank_system_python's People

Contributors

jingyu-ds avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.