Skip to content

Commit

Permalink
docs: 🔥 remove references to CLI or app (#1013)
Browse files Browse the repository at this point in the history
## Description

This PR goes through all the files and removes any reference to app or
CLI, unless it describes using core to build apps or CLI.

<!-- Select quick/in-depth as necessary -->
This PR needs an in-depth review.

## Checklist

- [x] Updated documentation
- [x] Ran `just run-all`

---------

Co-authored-by: martonvago <[email protected]>
  • Loading branch information
lwjohnst86 and martonvago authored Jan 29, 2025
1 parent da0a6b8 commit 3e9c6ce
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 200 deletions.
10 changes: 5 additions & 5 deletions docs/design/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ There are two main sections of this design documentation:
describes the high-level requirements, components, use cases,
expected users, and how the system will be organized and structured.
- [Interface](interface/index.qmd): The interface section gives a much
more detailed description of the software interface for the
architecture. The detail is at the level of exact Python functions
and CLI commands, as well as their arguments, inputs, and outputs.
more detailed description of the design of the software interface.
The detail is at the level of exact Python functions, as well as
their arguments, inputs, and outputs.

## Purpose

Expand Down Expand Up @@ -61,8 +61,8 @@ Overall, Sprout must:
data are stored should be flexible based on the needs and
restrictions of the user.
- Be able to handle a variety of data file sizes: While the size of
research data usually does not compare to that found in industry, it can
still become large enough that it requires special care and
research data usually does not compare to that found in industry, it
can still become large enough that it requires special care and
handling.
- Store data in a format that is open source, integrates with many
tools, and is storage efficient: Sprout is first and foremost a data
Expand Down
97 changes: 0 additions & 97 deletions docs/design/interface/app-urls.qmd

This file was deleted.

13 changes: 4 additions & 9 deletions docs/design/interface/index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,11 @@
title: "Interface"
---

This section of the documentation focuses on how the architectural
design will be implemented. It is split into the following set of
This section of the documentation focuses on how the interface
will be implemented. It is split into the following set of
documents:

- The main [Outputs](outputs.qmd), including the files, folders, and
other artifacts that will be produced by Sprout.
- The [core Python functions](python-functions.qmd) that form the
basis of Sprout and that are designed to be used in Python code as
well as form the foundation of the CLI and web app.
- The CLI commands (to be developed).
- The [app endpoints and pages](app-urls.qmd) that includes the exact
page URLS and their content, functionality, and interaction with
other pages.
- The [Python functions](python-functions.qmd) that form the core of
Sprout and its extensions.
10 changes: 2 additions & 8 deletions docs/design/interface/outputs.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,6 @@ Sprout is designed to structure, organize, and store data in a
standardized, coherent, and consistent way. At the base of how data is
structured and stored are the files and folders. So, this document
describes the main file and folder structure output when using Sprout.
It is split into two sections:

- the file system when used either locally or via the code-based way
(through Python or the command line) in a user-controlled and
terminal-only server, or
- the file system when used as a web app on a server.

We follow our [naming scheme](/docs/design/architecture/naming.qmd), as
well as the [Frictionless Data
Expand Down Expand Up @@ -113,8 +107,8 @@ Sprout creates and uses these files:
will contain some basic information from the `datapackage.json` file
that is structured in a human readable, auto-generated way. This
file is largely used to a) adhere to interoperable principles and b)
serve potentially as the basis for displaying information for a data
package's landing page in the Sprout web app.
serve as the basis for displaying human-readable information about
the data package.

`./resources/<id>/raw/<timestamp>-<uuid>.<extension>.gzip`

Expand Down
67 changes: 8 additions & 59 deletions docs/guide/packages.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@ order: 1
jupyter: python3
---

At the core of Sprout is the [{{< glossary "data package">}}](../glossary.qmd), which is a standardized way of structuring and sharing data. This guide will show you how to create and manage data packages using Sprout.
At the core of Sprout is the
[{{< glossary "data package">}}](../glossary.qmd), which is a
standardized way of structuring and sharing data. This guide will show
you how to create and manage data packages using Sprout.

{{< include _preamble.qmd >}}

## Creating a data package

::::: panel-tabset
### Python

The first thing you'll need to decide is where you want to store your
data packages. By default, Sprout will create it in `~/sprout/packages/`
on Linux (see [Outputs](/docs/design/interface/outputs.qmd) for
operating system specific locations), but you can change this by setting
the `SPROUT_GLOBAL` environment variable. For instance, maybe you want the
location to be `~/Desktop/sprout/` or `~/Documents`. For our example, we
will store it in our current working directory in the hidden folder
`.storage/`.
the `SPROUT_GLOBAL` environment variable. For instance, maybe you want
the location to be `~/Desktop/sprout/` or `~/Documents`. For our
example, we will store it in our current working directory in the hidden
folder `.storage/`.

```{python}
import seedcase_sprout.core as sp
Expand Down Expand Up @@ -118,54 +118,3 @@ fill in for a package.

You now have the basic starting point for adding data resources to your
data package.

### CLI

The CLI is a bit more straightforward as long as you are comfortable
using the Terminal. You can set the `SPROUT_GLOBAL` environment variable
to change the location of the data packages. For instance, maybe you
want the location to be `~/Documents/data-packages/`. You can set this
in your terminal like so:

``` bash
export SPROUT_GLOBAL=~/Documents/data-packages/
```

Then creating a new package would be as simple as:

``` bash
sprout package create
```

This will prompt you for some required fields you need to fill in, like
the title and description of the data package. If you want to skip the
prompt, you can provide the information directly in the command:

``` bash
sprout package create \
--title "Diabetes and Hypertension Study" \
--description "Data from the 2021 study on diabetes and hypertension"
```

This creates the initial structure of your new package with the ID `1`.
The output above shows that the folder of your data package `1` has been
created. This folder consists of two files: `datapackage.json` and
`README.md`. The `datapackage.json` file is empty initially, but it will
contain the metadata, a.k.a. the `properties`, of your data package.
`README.md` is a prettified, human-readable version of the content of
the `datapackage.json`.

You now have the basic starting point for adding data resources to your
data package in the location you specified:

```
~/Documents/data-packages/1/datapackage.json
~/Documents/data-packages/1/README.md
```

### Web App

::: callout-warning
In development.
:::
:::::
35 changes: 14 additions & 21 deletions index.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -28,37 +28,30 @@ div.quarto-about-jolla {
</style>
```

::: {.landing-page-block}
:::: landing-page-block
::: {#hero-heading}
:::
:::
::::

::: {.hero-banner}
::: {.landing-page-block}
::: {.hero-text}
::::: hero-banner
:::: landing-page-block
::: hero-text
## Streamlined data management for every workflow

**Sprout** is at the backbone of the [**Seedcase
Project**](https://seedcase-project.org), offering a flexible solution
to structure and manage your data.

Sprout is a **Python package** with four key modules:

- A flexible `core` encapsuling Sprout's core functionalities,
directed at developers.
- An opinionated `lib` for organising and managing data
programmatically.
- A `cli` for managing data directly from the terminal.
- An `app` providing a web interface for an easy-to-use
graphical experience.

With these options, you can choose the method that works best for your
workflow.
:::
:::
Sprout Core is a **Python package** with a flexible interface that
encapsulates Sprout's core functionalities, directed at developers and
those who want lots of control. It's designed to be easily extended and
customized to fit your needs, such as to build a command-line interface
or web app.
:::
::::
:::::

::: {.landing-page-block}
::: landing-page-block
## Want to contribute?

We’re a community-driven project and would love your feedback! Head over
Expand All @@ -69,6 +62,6 @@ share your ideas or contribute code. Your input makes us better!
<!-- TODO: Add link to a guide on how to contribute in more detail -->
:::

::: {.landing-page-block}
::: landing-page-block
## Image by [Storyset](https://storyset.com/data) {.appendix}
:::
2 changes: 1 addition & 1 deletion seedcase_sprout/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"""The Sprout application."""
"""The Sprout Python package."""

0 comments on commit 3e9c6ce

Please sign in to comment.