GUI-Order Management System

Technologies used: Java, SWING, Eclipse

Go back to main page

Purpose:

Built as a final exam project during my exchange semester at Sungkyunkwan University. The program allows vendors to purchase items from a specific shop’s database. The vendors can set a budget for their overall purchases, which can include multiple orders over a span of time. The system keeps track of users spending and orders. It is also possible to disclose your budget in different currency and the system which displays the item costs in US dollars, automatically converts the overall order cost to the user’s preferred currency.

Issues & Future Changes:

Currency Conversion:

It was my idea that the user can change the preferred currency at any time in the “account” menu. Although this functionality is implemented for conversions from dollars to any other currency, it still needs to be implemented for other currencies. For now, conversionring for example from EUR to DKK will give an incorrect conversion.

Jlist:

One of the challenging parts for me as an inexperienced programmer at the time was utilizing jlist with an event listener. My idea was to be able to show different information in the same list, when a user clicked on “show items” or “ show orders” in the menu. The problem with this was that data in the list had different event listeners attached to them and once the list was displayed and the item clicked it had only that one listener attached to it. Therefore, for example is the user changed from “show items” to “show orders” he/she would not get the right response when clicking on the order to see the order information. To solve this problem at the beginning of the code section that was responsible for adding the new event listener, I first removed any event listener that was attached to the items in the Jlist before. Problem solved! After hours of looking at documentations and stackOverflow to find a solution to this problem…

.jar File:

It was a requirement to create the application as a jar file, which appeared to be a problem for me, since my program is using file output stream to save information about users and their orders. The problem was that one cannot make changes to the jar file, therefore after hours of frustration I found that I could save the information outside of the jar file by saving the path to the jar file and using that to save information in a different folder, for example the same folder where .jar file exists.

Future Changes:
  1. Improve Currency conversion
  2. Connect the system to a database to store user information