rproffitt commented: I didn't do it. +15
Why the down vote?
Traditionally you would identify your use cases. Upon completing this you would need to create a domain that supports the use cases. Once done with the domain you would map entities to your domain. Once that is done you would map the entities to a data structure (database tables). Upon completion of this you would start writing the code to implement the models you have created. When this is all done you can start building a front end that captures the user interaction and saves it in the database.
With regard to the languages you will need.
1) You will need something capable of server side processing. I would choose a language I am familiar with. If you are comfortable with JavaScript you can use node for server side processing (server side processing includes database interactions) - other languages like: Python, C#, Java, PHP and many more are capable of database interactions.
2) Keep the front end light, there is no need to engage in building something like a Single Page App (SPA) using Javascript. Depending on what the expectation is, you could probably get away with having pages rendered by a server side language.
3) Your persistence technology could be a number of things: Mongo, Redis, SQL and anything else capable of storing data. You might even consider a file system database depending on the requirements.
As pointed out above, make sure you understand the requirements of the assignment correctly and don't go overboard unless you …
What you might want to have a look at is how you can safely split the application you have built into smaller services. Just because you have changed a language doesn't mean you have to change your persistence store (Database). Isolate services that can safely be transitioned to the new language you use and begin migrating to the new language.
Something else to consider is just rewritting the one aspect of the system that has been negatively affected by PHP. You could also introduce Message Queues etc for inter service communication (PHP changes object that Java needs to know about). If you are going to go the Java route, I would highly recommend investigating Spring Boot and try avoid the larger Enterprise Application Servers.
Here is how to enumerate files in a directory and write their full names to the console. With a bit of modification you can add the full name of the file as the value so when selecting it you have the path to it. Rendering it to a picture box should just be a matter of supplying the url to the picture box.
DirectoryInfo dirInfo = new DirectoryInfo(@"C:\MyDirectory");
IEnumerable<FileInfo> fileList = dirInfo.EnumerateFiles();
foreach (FileInfo fileInfo in fileList){
Console.WriteLine(fileInfo.FullName);
}