Launchers / Single-sign-on   in   Python/QT5/Selenium   and   Excel/VBA/IE

If one is managing his/her personal finances using multiple Brokers, Banks, Credit Unions then it's useful to take efforts to make automation for routine/repetitive activities such as:
  (a) Logging-In,   (b) Trade Order-Entry,   (c) Downloading Portfolios,   (d) Making Transfers,   (e) Getting Account-balances     etc.
I use many - perhaps too many - financial institutes. So, I've created Launchers to do these routine/repetitive operations with a click of a mouse, and I've developed mechnism for 'single-sign-on' that handles the two-factor authentication required using security questions. The coding is done in Python and VBA. For Python GUI I've used QT5, and in Excel I've used Buttons/VBA/IE.
Common concern with the application that logs into one's financial institute, via single-sign-on/automation, of course is safe storage of the usernames/passwords. I've done coding to store various usernames/passwords using "Crypto.Cipher" module of Python. I follow the model of supplying a single 'master' key to decypher various usernames/passwords. The encryption used is "AES", and it's suggested that even using a few supercoumpters it would take years for someone to decypher the usernames/passwords. (Therefore ... nope ... I'm not concerned about this at all !!   The master key is stored in my brain, and there's no known way for anyone to intercept the commands transmitted by my brain to my fingers, for typing-in the master key   *smile*.)
In many organizations, products like "LastPass", "FirstPass", "OKTA" are used as means of 'single-sign-on' ... This is my personal version of 'single-sign-on' with much more functionality !! (Designing/developing ones's own product has advantage/freedom to do exactly what I want, rather than being constrained by what's offered in an off-the-shelf product.)   In the product like OKTA there are "Chicklets" ... well ... following are my personal/custom chicklets (especially I like the chicklets I've made for "Bank / CU Launcher" in column #3 below) ... I click the chicklet/menu ... and ... voila... operation happens ...

The QT5 or Button front-end is backed by Selenium Web-Automation, where the various key-stokes / mouse-clicks are 'played' for different operations like "Download" history, "Transfer" funds, "Enter" trade etc. I prefer using APIs over Selenium, but lots of financial institutes are geared for front-end operation using UI, therefore the Selenium is the compromise solution.


Financial Launcher


I use this launcher to login, download portfolio, enter trades with my brokers for Mutual Funds.

After invoking via GUI Chicklet, I use Selenium to invoke Chrome driver, and do further automation.

The GUI is given below.





Broker Launcher


I use this launcher GUI in Excel to login to Brokers - specifically for doing Mutual Funds trades.

After clicking the Buttons, I invoke VBA code, which in turn invokes IE driver.

The GUI is given below.





Bank / CU Launcher

I use this launcher to login, transfer funds etc with my Credit Unions, Banks.

The GUI screengrab given below shows the chicklets I click to login. Each chicklet is for the Credit Union / Bank. (The left-hand-top is to enter key, right-hand-bottom is to quit.)




The GUI screengrab below shows the top menu + pull down menu invoked for Alliant.






This is the Windows CMD window to invoke the program: Gangal_CUs_and_Banks.py.







Copyright © 2019 Salil V Gangal, All Rights Reserved.