Client application for MySQL database made with JavaFX and MySQL applying functional programming principles. It's a simple employee management system that allows you to add, edit, and delete employees from the database.
By using a custom architecture, the application is easy to maintain and extend.
Root scene is notified via callbacks of its children nodes how it should behave on each one. Note the top menu bar:
Users must log in with their administration credentials stored in the database
Administrators are greeted by this scene. Could be extended with general data of the DB.
This scene allows administrators to add, edit, find and delete employees from the DB. It's bottom log console notifies every change or error on the backend side.
Every form dialog inherits a FormDialog class to validate its data. Their result converter is then assigned to their result callback, which indicates how the dialog should act after being ended.
Make sure you have cloned the repository and have Java 17 installed and all Maven dependencies are up-to-date.
You'll also need a Docker container running with mySQL and an accepted database loaded on it (careful, this app doesn't check if the database is compatible, you may end with unexpected exceptions!)
The image used for the container running the server is available on https://hub.docker.com/r/ubuntu/mysql. The port of mySQL should be mapped to the host port 30306.
The sample database data was loaded from https://github.com/datacharmer/test_db.
https://www.flaticon.com, for providing the main app icon and almost all icons of the app