Experience for the Researcher
Platform and Interface
- java webapp
- javascript/html interface
- service layer wraps existing synctool functionality.
Installation
- What must be in place before installation can occur?
- Duracloud Credentials
- Membership in at least one account with write access
- Who will do the installation?
- Technical or non-technical (assuming non-technical)
- Where does it run?
- locally or remotely ?
- for first rev, let us assume locally
- Steps
- Download zip
- Unzip into directory
- execute run.sh / run.bat
- user presented a link to http://localhost:8080/sync
- Having a thin installation wrapper for mac and windows would probably be beneficial
- Ideally sync tool would run as a background service on the researches machine.
Setup (see set up flow diagram below)
- User provides credentials, namely her user profile name and password.
- If one account exists to which the user has write permissions on a single space, that account/space will be assumed and the user will be asked to confirm.
- If more than one such account exists, the user will be prompted to select the account.
- If the user has more than one writable space to choose from on the selected account, she will be prompted to select a space.
- Identify the directories to back up
- Directory configuration flow
- select a directory
- optionally specify description of the directory
- specify whether or not local deletes should be synchronized to DuraCloud
- optionally add one to n rules associated with the directory or its children
- specify the kind of rule (apply tag(s), apply metadata key/value pairs)
- optionally choose a subpath or specify an expression (regex, starts with, ends with, file type, etc)
- Prompt user to whether or not she wishes to proceed to advanced settings
- specify frequency of sync and monitor
- encrypt data?
- yes
- have duracloud generate keypair
- upload self-generated keypair
- yes
- Directory configuration flow
Settings
- UI must provide a way for the user to adjust the following settings
- change frequency of sync monitor
- add/update/delete directories and associated rules and settings (such as deletion synchronization)
Current State Display
- Show status of tool
- Current uploads
- file name
- progress bar
- estimated time remaining for a particular item
- Count of queued items
- Sum of queued data: ie sum of sizes of queued files
- Progress bar showing the amount of queued data to be synced.
- Errors
- list of files that could not be transfered.
- retry selected files
- ignore selected files
- Current uploads
User Operations (see state model diagram below)
- Start Sync, Stop Sync, Pause Sync, Restart Sync (clean start)
- Restore from DuraCloud
- Restore All
- Restore Selected directories
History
Some ideas:
- Show Summary Activity for last hour, week, month, quarter, year filterable by
- date
- activity type
- user action (stop, start, restore, add/remove update directory/rule)
- uploaded content items
- downloaded content items
- item status - success/failure
- path (directory + filename)
- Show upload graph: file count/bytes over time
- perhaps allow user to filter list of uploaded items by clicking on timeline.
Questions
- Encryption Settings: Can the user change their keys?
- Will an single installation of the sync tool be shared with multiple users or just one user?
- If so perhaps we need to communicate changes to the configuration - such as "so and so just added these tags/metadata to such and such directory"
Resources
Diagrams
- Initial pass at flow
Gliffy Diagram size S name Dfr Sync Tool State Model Gliffy Diagram size S name Dfr Sync Tool Setup Flow Gliffy Diagram size S name Researcher Use Cases