Skip to content

Commit 00e4706

Browse files
authored
Merge branch 'master' into ak-dandi-init
2 parents bd9571a + ca16905 commit 00e4706

File tree

8 files changed

+103
-22
lines changed

8 files changed

+103
-22
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
# DANDI Handbook
2-
Handbook for interacting with the DANDI Archive.
1+
# DANDI Docs
2+
Documentation for interacting with the DANDI Archive.
33

44
## DANDI Style Guidelines
55

6-
Follow the guidelines below when creating and revising text in the DANDI Handbook:
6+
Follow the guidelines below when creating and revising text in the DANDI Docs:
77

88
* **dandi-** repositories — hyphenate the names of DANDI GitHub repositories (e.g. **dandi-archive**); "Dandisets" is an exception because it is a
99
complete word
@@ -20,7 +20,7 @@ Follow the guidelines below when creating and revising text in the DANDI Handboo
2020

2121
## HOWTO
2222

23-
This handbook uses [mkdocs](https://www.mkdocs.org/) to render the handbook written as a collection of markdown files into a website.
23+
The DANDI Docs uses [mkdocs](https://www.mkdocs.org/) to render the documentation written as a collection of markdown files into a website.
2424
If you would like to render it locally, you would need to create and configure a python environment according to configuration provided in [requirements.txt](./requirements.txt) file, e.g. via
2525

2626
python3 -m venv venv && source venv/bin/activate && python3 -m pip install -r requirements.txt

docs/100_contribute_docs.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Contributing to this Handbook
1+
# Contributing to this documentation
22

33
This documentation is a work in progress and we welcome all input: if something
44
is missing or unclear, let us know by [opening an issue on our helpdesk](https://github.com/dandi/helpdesk/issues/new/choose).
@@ -11,13 +11,13 @@ and extra plugins to generate the website.
1111
To test locally, you will need to install the Python dependencies. To do that, type the following commands:
1212

1313
```
14-
git clone https://github.com/dandi/handbook.git
15-
cd handbook
14+
git clone https://github.com/dandi/dandi-docs.git
15+
cd dandi-docs
1616
pip install -r requirements.txt
1717
```
1818

19-
If you are working on your *fork*, simply replace `https://github.com/dandi/handbook.git`
20-
with `git clone [email protected]/<username>/handbook.git` , where `<username>` is your
19+
If you are working on your *fork*, simply replace `https://github.com/dandi/dandi-docs.git`
20+
with `git clone [email protected]/<username>/dandi-docs.git` , where `<username>` is your
2121
GitHub username.
2222

2323
Once done, you need to run MkDocs. Simply type:

docs/20_project_structure.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ The DANDI project is organized around several **GitHub** repositories:
1616

1717
| Repository | Description |
1818
|----------|----------|
19-
| [DANDI archive](https://github.com/dandi/dandi-archive) | Contains the code for deploying the client-side Web application frontend based on the [Vue.js](https://vuejs.org/) framework as well as a Django-based backend to run the DANDI REST API.
19+
| [DANDI Archive](https://github.com/dandi/dandi-archive) | Contains the code for deploying the client-side Web application frontend based on the [Vue.js](https://vuejs.org/) framework as well as a Django-based backend to run the DANDI REST API.
2020
| [DANDI JupyterHub](https://github.com/dandi/dandi-hub) | Contains the code for deploying a JupyterHub instance to support interaction with the DANDI archive.
2121
| [DANDI Python client](https://github.com/dandi/dandi-cli) | Contains the code for the command line tool used to interact with the archive. It allows you to download data from the archive. It also allows you to locally organize and validate your data before uploading to the archive.
22-
| [handbook](https://github.com/dandi/handbook) | Provides the contents of this website.
22+
| [DANDI Docs](https://github.com/dandi/dandi-docs) | Provides the contents of this website.
2323
| [helpdesk](https://github.com/dandi/helpdesk) | Contains our community help platform where you can submit [issues](https://github.com/dandi/helpdesk/issues/new/choose).
2424
| [schema](https://github.com/dandi/schema) | Provides the details and some supporting code for the DANDI metadata schema.
2525
| [schema Python library](https://github.com/dandi/dandi-schema) | Provides a Python library for updating the schema and for creating and validating DANDI objects.
26-
| [website](https://github.com/dandi/dandi.github.io) | Provides an overview of the DANDI project and the team members and collaborators. |
26+
| [DANDI About website](https://github.com/dandi/dandi-about) | Provides an overview of the DANDI project and the team members and collaborators. |

docs/21_models_integration.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Integrating DANDI Metadata Models Across the Ecosystem
2+
3+
**DANDI metadata models** are defined as
4+
[Pydantic models](https://github.com/dandi/dandi-schema/blob/master/dandischema/models.py)
5+
in [**dandischema**](https://github.com/dandi/dandi-schema) and transformed into
6+
[JSON schemas](https://github.com/dandi/schema). **Both** representations,
7+
the original Pydantic definitions and JSON schemas, are used across the DANDI ecosystem.
8+
The diagram below outlines how these two representations are integrated into various
9+
components, including the CLI, the backend/API, and the web interface.
10+
11+
For more information, follow the links in the diagram to the respective repositories and files.
12+
13+
14+
``` mermaid
15+
---
16+
config:
17+
layout: dagre
18+
---
19+
flowchart TD
20+
subgraph subGraph0["<a href=https://github.com/dandi/dandi-schema>dandi/dandischema</a>"]
21+
dandi_pydantic@{ label: "<a href=\"https://github.com/dandi/dandi-schema/blob/master/dandischema/models.py\">dandi/dandischema::models.py</a><br>(Pydantic models)" }
22+
dandi_validate@{ label: "<a href=\"https://github.com/dandi/dandi-schema/blob/c3007768e002c9f51ea37b5e6b3628f7f7f20943/dandischema/metadata.py#L195\">dandi/dandischema::validate()</a><br>(Validation helper)" }
23+
dandi_json_runtime["Latest JSON Schema models"]
24+
end
25+
subgraph subGraph1["<a href=https://github.com/dandi/dandi-archive>dandi/dandi-archive</a>"]
26+
dandi_archive_db[("PostgresDB")]
27+
dandi_archive_backend@{ label: "<a href=\"https://api.dandiarchive.org\">api.dandiarchive.org</a><br>(Backend/API)" }
28+
dandi_archive_frontend@{ label: "<a href=\"https://www.dandiarchive.org\">www.dandiarchive.org</a><br>(Frontend/Web UI)" }
29+
meditor["Meditor<br>(vjsf-based web form)"]
30+
dandi_archive_validate[/"Celery task to validate<br>dandiset and asset metadata"/]
31+
end
32+
33+
%% nodes
34+
dandi_cli@{ label: "<a href=\"https://github.com/dandi/dandi-cli\">dandi-cli</a><br>(Python client lib and CLI)" }
35+
ci@{ label: "<a href=\"https://github.com/dandi/dandi-schema/blob/master/.github/workflows/release.yml\">GitHub CI</a>" }
36+
dandi_json@{ label: "<a href=\"https://github.com/dandi/schema\">dandi/schema</a><br>(Versions of JSON Schema models)" }
37+
38+
%% edges
39+
dandi_pydantic -- Used by --> dandi_cli & dandi_validate & ci
40+
dandi_pydantic -- Used for generating --> dandi_json_runtime
41+
dandi_json_runtime -- Used by --> dandi_validate
42+
ci -- Generates<br> JSON Schema models<br> per model release --> dandi_json
43+
dandi_json -- Used by (for any versions) --> dandi_validate
44+
dandi_json -- Used by --> dandi_archive_frontend
45+
dandi_validate -- Used by --> dandi_archive_validate
46+
dandi_archive_backend -- Schedules --> dandi_archive_validate
47+
dandi_archive_backend <---> dandi_archive_db
48+
dandi_cli -- Extracts and uploads<br>metadata for assets --> dandi_archive_backend
49+
dandi_archive_frontend -- Generates --> meditor
50+
web_input["User input through web form"] -- Restricted by --> meditor
51+
meditor -- Stores user inputs through --> dandi_archive_backend
52+
dandi_archive_validate -- Records validation status --> dandi_archive_db
53+
54+
%% styles
55+
dandi_json@{ shape: docs}
56+
dandi_cli@{ shape: rect}
57+
ci@{ shape: rect}
58+
web_input@{ shape: manual-input}
59+
dandi_pydantic@{ shape: rect}
60+
dandi_validate@{ shape: rect}
61+
dandi_json_runtime@{ shape: doc}
62+
dandi_archive_backend@{ shape: rect}
63+
dandi_archive_frontend@{ shape: rect}
64+
```

docs/CNAME

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
docs.dandiarchive.org

docs/about/policies.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
DANDI project data access, archival, and re-distribution (see **License** below).
1717
- **Data file formats:** DANDI only accepts data using standardized formats such
1818
as [Neurodata Without Borders](https://nwb.org), [Brain Imaging Data Structure](https://bids.neuroimaging.io/),
19-
[Neuroimaging Data Model](NIDM), and other [BRAIN Initiative](https://braininitiative.nih.gov/)
19+
[Neuroimaging Data Model](https://nidm.nidash.org/), and other [BRAIN Initiative](https://braininitiative.nih.gov/)
2020
standards. We are working with the community to improve these standards and to
2121
make DANDI archive FAIR.
2222
- **Data quality:** All data are provided “as-is”, and the user shall hold

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ it tries to solve, check out the [Introduction](./01_introduction.md).
1616
To start using the archive, head over to [Using DANDI](./10_using_dandi.md) in the User Guide section.
1717

1818
If are a developer and want to know how the project is organized, check out the [Project Structure](.
19-
/20_project_structure)
19+
/20_project_structure.md)
2020
page in the Developer Guide section.
2121

2222

@@ -37,7 +37,7 @@ and use the tag [dandi](https://neurostars.org/tag/dandi).
3737
## Contributing and Feedback
3838

3939
We are looking for people to give us feedback on this documentation. If anything
40-
is unclear, [open an issue on our repository](https://github.com/dandi/handbook/issues). You can also get in touch on
40+
is unclear, [open an issue on our repository](https://github.com/dandi/dandi-docs/issues). You can also get in touch on
4141
our Slack channel, which is available to those who have
4242
registered an account on the archive.
4343

mkdocs.yml

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
site_name: DANDI Documentation
2-
repo_name: "dandi/handbook"
3-
repo_url: "https://github.com/dandi/handbook"
2+
repo_name: "dandi/dandi-docs"
3+
repo_url: "https://github.com/dandi/dandi-docs"
44
copyright: "CC-BY 4.0"
55
use_directory_urls: true
6-
site_url: https://www.dandiarchive.org/handbook/
6+
site_url: https://docs.dandiarchive.org
77

88
# Material theme
99
theme:
@@ -12,8 +12,18 @@ theme:
1212
favicon: img/favicon.ico
1313
logo: img/dandi-logo-square_sw.png
1414
palette:
15-
primary: "dark blue"
16-
accent: "light blue"
15+
- scheme: default
16+
toggle:
17+
icon: material/weather-night
18+
name: Dark mode
19+
primary: "dark blue"
20+
accent: "light blue"
21+
- scheme: slate
22+
toggle:
23+
icon: material/weather-sunny
24+
name: Light mode
25+
primary: "dark blue"
26+
accent: "light blue"
1727
features:
1828
- toc.integrate
1929

@@ -37,6 +47,7 @@ nav:
3747
- DANDI CLI and Python API: https://dandi.readthedocs.io
3848
- Developer Guide:
3949
- Project Structure: "20_project_structure.md"
50+
- Models Integration: "21_models_integration.md"
4051
- Notes: "40_development.md"
4152
- REST API Swagger: https://api.dandiarchive.org/swagger
4253
- REST API Redoc: https://api.dandiarchive.org/redoc
@@ -51,10 +62,10 @@ nav:
5162
- Contributing Documentation: "100_contribute_docs.md"
5263
- DANDI Hub: "50_hub.md"
5364
- Tutorials:
54-
- Dandiset Examples: https://www.dandiarchive.org/example-notebooks
65+
- Dandiset Examples: https://dandi.github.io/example-notebooks
5566
- Health Status:
5667
- Dandisets: https://github.com/dandi/dandisets-healthstatus
57-
- Services: https://www.dandiarchive.org/upptime
68+
- Services: https://status.dandiarchive.org
5869
- Terms and Policies:
5970
- Terms: "about/terms.md"
6071
- Policies: "about/policies.md"
@@ -65,6 +76,11 @@ markdown_extensions:
6576
- pymdownx.details
6677
- pymdownx.critic
6778
- pymdownx.magiclink
79+
- pymdownx.superfences:
80+
custom_fences:
81+
- name: mermaid
82+
class: mermaid
83+
format: !!python/name:pymdownx.superfences.fence_code_format
6884
- toc:
6985
permalink: True
7086

0 commit comments

Comments
 (0)