# JupyterFAIR GUI This is the first draft of a GUI for the JupyteLab extension. ## Persona: **JupyterFAIR Extension User** * Familiar with JupyterLab and uses it as a research computing environment. * Has some experience archiving datasets to research data repositories. * Wants to archive his/hers datasets to research data reposritories directly from JupyterLab. * Wants to download 'clone' public dataset from research data repositores directly to a JyterLab environment. ## Scenarios ### 1. Creating a new dataset A user creates a new dataset by using the context of the sidebar for the files view. The current directory on the sidebar becomes the root directory. Clicking on *Create Datase*, opens the *Create New Dataset* dialogue window. A dataset is created and a `manifest.yalm` file is added to the root directory. A user can choose a format for the metadata file (called `manifest.yalm`), and may define which files (in the root directory) to include or exclude using *wildcards* or paths. If the option *Open manifest* is marked, the manifest file will open after clicking *Create* ![new-dataset](https://i.imgur.com/kvEdzRL.png) ### 2. Editing metadata To edit the metadata of a dataset, a users edits the `manifest.yalm` file directly on a tab, and it uses the exiting save button to save changes. ![edit-metadata](https://i.imgur.com/PhZbG0J.png) ### 3. Archiving dataset to repository Once a datset has been created (a `manifest.yalm` is in the root directory). The context menu show the options *Edit Dataset Metadata* and *Archive Dataset*. * Option *Edit Dataset Metadata* will open the `manifest.yalm` file on a new tab like in **Editing metadata** * Option *Archive Dataset* **(1)** opens the *Archive Dataset* dialogue **(2)**. In **(2)**, a user chooses the target repository, and may choose to upload files inmediately or not. If this is not chosen, the metadata will be transfer to the data repository. * When the user clicks *Continue*, the *Metadata and Files* dialogue window will open **(3)** and show the list of files that will be uploaded/updated in the data repository. A user must confirm by clicking *Yes*. ![uploading-files](https://i.imgur.com/v2gzYMv.png) #### Tracking dataset status Aftes a dataset has been created, the *Extension Sidebar* shows the list of repositories to which the dataset has been uploaded and their status. **Status:** * *published*: the data was published and not further actions (changes) are possible. * *online*: a copy of the dataset exits in the repository, but some actions are posible. The compare action **(1)** will compare the local and remote copies of the dataset. The *Comparison with Data Repository* dialogue opens and shows the results of the comparison, which includes the name of the files that doesn't match, and the most recent change done in the *Local* and remote *Repository*. The user is asked if he/she wants to synchronize the copies. On clicking on *Synchronize, the *Synchronize Dataset* dialogue opens, whis warns the user about the actions that will takes place and asks for confirmation. * *draft*: the dataset only exist localy, there's no copy on any repository yet. One action is possible *arcive*. Clicking on the icon will open the *Archive Dataset* dialogue as in scenario 3. ![status-dataset](https://i.imgur.com/Z5K2hyw.png)