For solving task 1 I used materials from Spring official sources. For URL uploading, I referenced the materials I found on Baeldung.
For task 2 - I implemented "session" by checking when file was last modified - if the "last modified" is before session started, the file is not shown. While this is not the "ideal" solution, but it still works.
For task 3 - I used Dreamix guide for Jython to integrate Python script directly into Spring. I did not implement any machine learning or anything for "prediction". Instead, I simply get the first 10 bytes of the file and use them as a "seed" for a random integer generator.