An auto-balancing AVL tree implementation with GUI from a school project