The application’s purpose is to create projects that gather files from various places perform some sort of processing and then save the final files into a particular location. These jobs can be scheduled to repeatedly happen, which is useful in the case of trying to periodically combine information that is consistently output to different locations, like travel requests, receipts, and budget spreadsheets. Then there is a single location, or even a single file, that contains the data needed.
Every stage of the project has multiple types of actions that can be done. In the Select Inputs stage users can enter file locations by hand, or select a plugin that will allow a user to choose an AWS S3 location. Similarly, the Select Post-Processors stage has many plugins like a malware scanner, a document combiner that will combine the same type documents into a single file, or an extractor that can take out particular keywords or images and put them into a new file. Finally, the File Output stage has plugins for the various locations to save to, which is similar to the locations that files can be gathered from.
This is a web application that originally started out as a desktop application. From that first version there were many improvements to be made. The first was a way to convey the length of the project creation process and a user’s progress through it. To this end, the progress bar along the top of the project creation wizard was added. Additionally, there needed to be a quick summary of the project as the user went along, so that they were aware of their initial inputs as they built the rest of the project. The project workflow at the bottom of the wizard gives this quick snapshot and helps the user keep track of what they have already done. Finally, the Run Schedule stage was added so that users performing the same task on a regular basis could have it performed automatically.
The web application also provides a way to perform administrative functionality such as managing users, approving projects, and controlling which plugins are available to users. As well as increasing manageability, this centralized control of the application eases the burden on pushing updates to a single location instead of across many user machines. It additionally provides usages logs and give more control to administrators to verify that users are using the system appropriately.
Pacific Northwest National Laboratory