Skip to content

Latest commit

 

History

History
68 lines (43 loc) · 3.89 KB

README.md

File metadata and controls

68 lines (43 loc) · 3.89 KB

Banking-system

Python OOP - Banking System Case Study in Python.

Screen Shot 2021-09-02 at 5 13 06 PM

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:

The classes UML diagram

classes banking_system

The EER Diagram of the bankingsys schema

Screen Shot 2021-09-05 at 11 54 21 AM

The User interface in the command line:

Main Menu

Screen Shot 2021-09-02 at 4 53 43 PM

Transaction Menu

Screen Shot 2021-09-02 at 4 52 29 PM

Account Information example

Screen Shot 2021-09-02 at 4 52 09 PM

Requirements:

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

Thoughts & Future works:

  • 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).

Any code comments and contributions are very welcome!

If you have any question please reach me out through my personal email: [[email protected]]

Cheers!