The goal of this project is to demonstrate the knowledge of how to build a non-trivial OOP program with Java Swing GUI as a front end.
1) Must have a Java Swing front-end GUI
2) Must utilize the OOP paradigms: encapsulation, inheritance, polymorphism, abstraction
3) Must utilize at least 2 of the following ADTs: List, Tree, Stack, Queue / PQ, Deque, Map, Set
4) Must define at least 5 custom classes (writing a custom data structure counts as 1)
5) Must write at least one sort algorithm, and use at least one search algorithm w/ running time ofO(log2n) or O(1)
6) Must validate all inputs from the user (input validation); no bad input possible
7) Must save and load information from a file(s)