This ATM project is a banking terminal application that allows users to perform basic transactions such as withdrawals, deposits, and balance inquiries using a Java application. It includes additional features to assist visually impaired users through text-to-speech and speech recognition functionalities.
- Java: Core programming language
- JavaFX: Used for the graphical user interface (GUI)
- CMUSphinx: For speech recognition
- MySQL Workbench: For managing the database
The program operates with a smart card reader that is managed using the javax.smartcardio package. This reader is used to authenticate users by reading chip cards.
In order to run the program, you must first create a mock database that contains a set of card credentials. These can include blank cards (such as transportation cards, expired bank cards, etc.).
Please note that in the current version of this project, the database access credentials (usernames and passwords) are stored in plain text within the Database class. This is because the project is designed for educational purposes only.
Additionally, the methods used to hash passwords, such as SHA-256 and MD5, are not considered secure enough for production environments. Both methods are vulnerable to attacks, and a more robust encryption approach should be implemented in future versions.
There are several dependency-related issues that need to be addressed for the program to work smoothly. These include:
- Managing external libraries and versions properly to avoid conflicts.
Some planned improvements for the project include:
- Enhancing the interface to make it more intuitive and responsive.
- Fixing thread-related errors in the speech recognition functionality.
- Improving security by properly securing database credentials and implementing stronger password hashing methods.
- Making the project fully exportable as a standalone application to avoid dependency conflicts.
- ... to be continued.



