# 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)