Frontend: uploading and processing