If you increase the gamma constant in phong.fs you get a better sense of where the light is coming from. When this was done the following block was displayed:
In this you can tell that the light is shading all of the faces in disparate corners. It is possible that the corners are reversed or backwards somehow. Or that it is rendering all of the faces the same, or any number of other things. :(
The current KeyboardListener class has the functionality to test double-clicked and different mouse buttons which is not implemented in the current MouseListener. I suggest:
Rename KeyboardListener to InputHandler
Add MouseListener's display vector functionality to the new InputHandler class.
When this edge is viewed from an angle close to perpendicular to the top of the cube from either inside or outside the cube, an odd dithering appears on the top.
If the window is resized to be bigger than when it was first instantiated (line 86 of main), the box will not render in the new screen area even though the background is the correct color. The 800x600 area is centered in the lower-left. If the window is resized to be smaller than 800x600 then resized back to 800x600 or bigger, the same 800x600 border is present.
Although this isn't the most pressing of issues, adding a .gitignore file that ignored eclipse files like .project and .classpath, intellij files like .ide and gradle files like .gradle might make it easier to develop on different IDEs.