Despite the harsh reality presented by this project, we also gained much new experience in designing the architecture of a product. All things considered, our application is relatively small and it required much thought on how different user interfaces, objects, and threads interact.
On the technical side of things, we furthered our programming knowledge in areas such as threading, UI design, sockets in java, object locking and synchronization, and working in a large development group.