Skip to main content

Contribute Data

Use this Task Flow

Before continuing, make sure you have followed the instructions to install the strudel-cli.

From the root of your app, run the following on the command line:

strudel add-taskflow my-taskflow --template contribute-data

Generated Files

my-taskflow
├── _components
│ ├── DataFilesPanel.tsx
│ ├── DatasetView.tsx
│ ├── MetadataPanel.tsx
│ └── ValidationChecks.tsx
├── _config
│ ├── taskflow.config.ts
│ └── taskflow.types.ts
├── _context
│ ├── ContextProvider.tsx
│ ├── actions.ts
│ └── utils.ts
├── _layout.tsx
├── index.tsx
├── new.tsx
├── portal.tsx
└── review.tsx

Pages

index.tsx

URL Route: /
First page of the Contribute Data Task Flow. Displays a user registration form for users that want to contribute datasets.

portal.tsx

URL Route: /portal
User portal page of the Contribute Data Task Flow. Displays a list of the user's current uploaded datasets.

new.tsx

URL Route: /new
New dataset page of the Contribute Data Task Flow. Displays a metadata form and data upload panel for adding new data contributions.

review.tsx

URL Route: /review
Review new dataset page of the Contribute Data Task Flow. Displays a preview of the dataset information to be uploaded and performs standard validation checks on the data.

Configuration

This Task Flow can be configured from the taskflow.config.ts file in the _config directory of the generated template files.

taskflow.config.ts
import { ContributeDataConfig } from "./taskflow.types";

export const taskflow: ContributeDataConfig = {
data: {
datasets: {
/**
* Source of the data for the initial list of datasets on the portal page.
*/
source: "default/contribute-data/contributor_datasets.json",
/**
* Name of the field in the data that represents a unique identifier for each record.
*/
idField: "id"
}
},
pages: {
index: {
/**
* Title to appear at the top of the register page.
*/
title: "Register as a data contributor"
},
portal: {
/**
* Title to appear at the top of the portal page.
*/
title: "Your Dataset Uploads",
/**
* List of column definition objects for the columns in the table on the portal page.
*/
tableColumns: [
{
field: "title",
headerName: "Dataset Title",
width: 200
},
{
field: "category",
headerName: "Category",
width: 200
},
{
field: "summary",
headerName: "Summary",
width: 200
},
{
field: "doi",
headerName: "DOI",
width: 200
},
{
field: "publication_date",
headerName: "Created Date",
width: 200
},
{
field: "status",
headerName: "Status",
width: 200
}
]
},
new: {
/**
* Title to appear at the top of the new dataset page.
*/
title: "Upload a new dataset",
/**
* Text to appear underneath the title at the top of the new dataset page.
*/
description: "Description of this app section"
},
review: {
/**
* Title to appear at the top of the review page.
*/
title: "Review your new dataset"
}
}
}