Description

This project, developed for the COMP1406-W20 course at Carleton University, is a Java-based application utilizing Object-Oriented Programming principles with a Graphical User Interface (GUI) implemented entirely using the JavaFX framework. A notable feature of the application is its responsive item storage and shopping cart system, which dynamically updates to reflect changes whenever users add or remove items.

One of the very first projects from my university studies, this one always reminds me of the excitement I felt each time I managed to cut down a line or two from the code. I also take pride in the optimizations I made to ensure it ran smoothly and error-free.

This was also my first project incorporating a GUI, as most of my previous programs only output results to the console. I really enjoyed designing the interface, from aligning buttons and textboxes to specific pixels to making them interactive and responsive to user input.

One of the biggest challenges I faced was with the 'Store Stock' items ordering feature. When the application first runs, all the items in the 'Store Stock' list are displayed in a fixed order, each with its own stock amount. If a user exhausts the stock of an item (for example, by adding all of that item to their cart), it disappears from the list. Normally, when the user removes that item from their cart, the item would reappear at the end of the 'Store Stock' list. However, I was able to ensure that the item reappeared in its original spot rather than at the end.

At the time, I was very proud of finding a solution to this issue. Now, with more experience, it seems less daunting, but it was a defining moment that solidified my passion for Computer Science.

  • Interactive User Interface: User can interact with various features on the application.
  • Item cart: Users can add items from the 'Store Stock' list to their cart. Both the 'Store Stock' list and the cart will accurately reflect any items added or removed by the user.
  • Most popular items: This section displays items ranked from most popular to least popular. An item's popularity is determined by the quantity sold.
  • Store Summary: This section provides an overview of total sales, total revenue, and average revenue per sale.
  • Add database that stored all the sales made even when the program is closed
  • Add user-account feature that allows user to create an account with username and password.
  • Make it easier to set up and run on any machine. The current code requires some addon Java ultilities.