A GUI banking application for viewing account details, managing transactions and financial services.
The project brief document outlined that the focus of the program is to allow a user to login with their account number and pin (all number based), and perform transactions - withdrawing and depositing money.
Another feature that I added that wasn’t part of the brief was an integration with a database for storing users and their data. Instead of having user values hard coded or stored in a tex file, I decided to make a simple database to store user credentials and their bank balance.
For this project I decided to follow the event-driven programming paradigm methodology. In this paradigm, the flow of the program - the order in which the functions of the program are executed - is controlled by events. Those events include things such as mouse clicks, keypresses or message passing.
In this app everything is controlled by events. All the key presses on the number pad on the login screen are recorded and parsed to verify if the credentials match any of the users stored in the database. If details match and the user clicks the login button, they are navigated to their account window where they can perform transactions and see their details.
On the user account window, all functionality is controlled by events, in particular user clicks and selection. The user can select two translation options: withdraw and deposit, then they are required to enter a value using the number pad, and finally have to click the submit button. Like the login event, if the amount to be withdrawn is over their balance the event cannot be performed and an error is displayed.
The current program performs all the functionalities specified in the requirements, and with the features requested. Even though the project complies with the project specifications and requirements, there are functions that I would improve on in the future.
Currently the program is pretty basic and does not update the users balance after performing transactions. This is something that would make the application much more sophisticated and more functional.
Another function that the app could use would be an addition of a transaction history tab, where users can look at all their transactions.