Python OOP - Banking System Case Study in Python.
In this project, I created a simple version of a banking system which I incorporate some Python fundamental skills: inheritance, exception handling, logging, getter and setter methods along with SQL database that associates with the Python script in order to produce the csv as a type of data storage.
We can easily run the .py file in the command line in order to experience the app locally.
All the classes, methods, and functions are documented with docstring comments.
The project consists of 3 main files and 1 log file:
-
- banking_system.py - source code to run the application
-
- banking_system.sql - MySql database script
-
- config.json - MySql configuration json file
-
- unknown_bank_management.log - an example of logging
The classes UML diagram
The EER Diagram of the bankingsys
schema
The User interface in the command line:
Main Menu
Transaction Menu
Account Information example
I used MySQL as the database management system and you also need to install mysql_connector_repackage
in order to use Python script to connect with the MySql server. Please check this link for the installing instruction
For Mac user:
shell> pip install mysql-connector-python
For Windows user:
shell> msiexec /i mysql-connector-python-VER-pyPYVER.msi
-
The SQL schema doesn't take the slowly changing dimension in the consideration for the sake of illustrating the simple Python OOP purpose. In the reality the fact and dimension tables can expand exponentially accordingly for the various business components.
-
The
banking_system.py
script still has some flaws in terms of the syntax, exception handling and logical issue that will be updated and fixed along the way. Any comments and suggestions are very appreciated! I am still learning, Thanks All! -
I want to add more features for the banking system; for example:
Search Menu
(using account number, email, phone number, first name, or last name to list the corresponding customer information),Daily and Monthly Reports
to show the updated account information,Account Adjustment
to change or update account information by using the account number.Payment Method
to save the transaction payment record with different types of payment (Visa, Master, Paypal).
If you have any question please reach me out through my personal email: [[email protected]]
Cheers!