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?
    1. Duracloud Credentials
    2. 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
    1. Download zip
    2. Unzip into directory
    3. execute run.sh / run.bat
    4. 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)
  1. 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.
  2. Identify the directories to back up
    • Directory configuration flow
      1. select a directory
      2. optionally specify description of the directory
      3. specify whether or not local deletes should be synchronized to DuraCloud
      4. optionally add one to n rules associated with the directory or its children
        1. specify the kind of rule (apply tag(s), apply metadata key/value pairs)
        2. 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
      1. specify frequency of sync and monitor
      2. encrypt data?
        1. yes
          1. have duracloud generate keypair
          2. upload self-generated keypair
Settings
  1. UI must provide a way for the user to adjust the following settings
    1. change frequency of sync monitor
    2. add/update/delete directories and associated rules and settings (such as deletion synchronization)
Current State Display
  1. Show status of tool
    1. Current uploads
      1. file name
      2. progress bar
      3. estimated time remaining for a particular item
    2. Count of queued items
    3. Sum of queued data: ie sum of sizes of queued files
    4. Progress bar showing the amount of queued data to be synced.
    5. Errors
      1. list of files that could not be transfered.
      2. retry selected files
      3. ignore selected files
User Operations (see state model diagram below)
  1. Start Sync, Stop Sync, Pause Sync, Restart Sync (clean start)
  2. Restore from DuraCloud
    1. Restore All
    2. Restore Selected directories
History

Some ideas:

  1. Show Summary Activity for last hour, week, month, quarter, year filterable by
    1. date
    2. activity type
      1. user action (stop, start, restore, add/remove update directory/rule)
      2. uploaded content items
      3. downloaded content items
      4. item status - success/failure
      5. path (directory + filename)
  2. Show upload graph: file count/bytes over time
    1. 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

  • No labels