You can check out the set up guide for the project here
The architecture has been briefly explained here
The image size is validated to check if it's 1024x1024. If it is not, the upload button is disabled. It also accepts only image files.
Clicking on the Upload
button will upload the image to image-service. On receiving the resource ID from image service, the ID is POST-ed to the web-server and the UI is updated on success.
Clicking on an image will load its gallery. The gallery will showcase all the cropped versions of the uploaded image. Here, every time you click on a size on the top, an image matching that size will be pulled from image-service.
You can also view the full sized image by clicking the View Full Size
link at the bottom, which will open the cropped image in a new tab.