JavaFX Application that communicates with API to generate a list of all customer's on file. The list is then exported as a CSV file for the customer so it can be imported in to their external billing software application. Application created using Java, JavaFX, SOAP Requests, XML and CSS.
Upon start of the application, the user is presented with a login screen. The user has an option to swap between light and dark mode.
The application makes a SOAP request to an API to validate the login credentials.

Upon successful login, the application stores a valid session taken for all future API requests.
Once logged in, the user clicks Get Report.

The application then makes a SOAP request to generate a list of customers and stores the list in a 2D array. The UI updates via an additional thread to let the user know it is compiling a list of customers.

After the customer list is created and stored, the application iterates the 2D array making a SOAP request for each customer to pull information from the database. This information is then added to the second layer of the 2D array. The UI updates with a progress bar.

Once the report is complete, a "Save Report" button displays. Once the user clicks the Save Report button, the application iterates through the 2D array of customer information. For each item, it utilizes a String Builder to output the customer information in to a string. Once it has iterated through all items in the array, it writes the file as a .csv to a location the user chooses.

After saving the report, the UI updates to indicate the report has been saved.
