refactored upload app to be asynchronous, and changed appdashboard to poll