---
title: "Overview"
jupyter: python3
---

## What is Sprout?

Sprout is a Python package that is designed to help create and manage a
standardised and organised structure for storing and describing research
data. Using modern data engineering and management practices,
Sprout helps to ensure and enforce that research data are well-designed,
discoverable, well-documented, and ultimately more (re)usable for later
analyses.

Specifically, Sprout assists in the creation of a [Data
Package](/docs/glossary.qmd) which enforces best practices for both the
**data** and **metadata** in a project:

- **Data** must follow the [tidy specification for tabular
  data](https://sprout.seedcase-project.org/docs/design/interface/inputs),
  be stored in [Apache
  Parquet](https://decisions.seedcase-project.org/why-parquet/) format,
  and be found in a standardized location in the project.
- **Metadata** must follow the [Frictionless Data
  Package](https://decisions.seedcase-project.org/why-frictionless-data/)
  specification. It is created, managed, and verified programmatically
  to avoid mistakes from manual edits and to guarantee that it conforms to
  the specification.

## Why use it?

There are many tools for processing, cleaning, and transforming data,
and for storing them in databases on servers and building data
warehouses. However, few tools are specifically designed to create
structured and organised data that is directly linked to its
metadata---and even fewer assist in creating and structuring that
metadata. Without metadata, data is nearly unusable.

Sprout integrates a few key standards and practices to help build a
fantastic dataset *along with its metadata*. In that way, it ensures the
data will be more easily usable for later analysis, for finding the
right data needed for the analysis, and for better understanding of what
is actually in the data.

Since Sprout is a Python package, you can use Python as
you normally would to help build up your data and metadata. You don't
need to learn another tool nor use a new interface. It's just code.

## Learning more

This website contains documentation on Sprout's design, how to use it,
and details about the interface.

-   [How-to guide](/docs/guide/index.qmd): The guide section provides a
    step-by-step introduction to using Sprout, including installation,
    setup, and creating and managing data packages.
-   [Reference](/docs/reference/index.qmd): The reference section
    contains detailed information about the Sprout Python Package API,
    specifically the documentation of individual classes, methods, and
    functions.
-   [Design](/docs/design/index.qmd): The design section describes the
    architecture and interface of Sprout, the requirements, use-cases,
    user personas, and the [C4 model](https://c4model.com/).

If you are interested in learning more about similar tools, we have only
found a few that are related though with quite different purposes and
use-cases, such as:

-   [Open Data Editor](https://opendataeditor.okfn.org/): Is a web- and
    click-based tool for creating and editing data packages.
-   [gen3](https://gen3.org/): Is a web-based platform for building data
    commons.

## Contributors

{{< include /docs/includes/_contributors.qmd >}}
