Skip to content
This repository has been archived by the owner on Feb 1, 2024. It is now read-only.

Commit

Permalink
Update Readme (#121)
Browse files Browse the repository at this point in the history
* Update logo, structure, hyperlinks
* Add frontend image
  • Loading branch information
BradyPlanden authored Oct 2, 2023
1 parent 9211a9d commit 613e359
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 37 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,5 @@ docs/build/
.static_files/

node_modules/

.DS_Store
70 changes: 33 additions & 37 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,46 @@
<img src="docs/source/img/Galv-logo-sm.png" width="500" />
<img src="docs/source/img/Galv-logo-shortened.png" width="225" />

[![Unit Tests (Docker)](https://github.com/Battery-Intelligence-Lab/galv/actions/workflows/unit-test.yml/badge.svg?branch=main)](https://github.com/Battery-Intelligence-Lab/galv/actions/workflows/unit-test.yml)
[![Docs](https://github.com/Battery-Intelligence-Lab/galv/actions/workflows/side-effects.yml/badge.svg?branch=main)](https://github.com/Battery-Intelligence-Lab/galv/actions/workflows/side-effects.yml)
[![Docs](https://github.com/Battery-Intelligence-Lab/galv/actions/workflows/side-effects.yml/badge.svg?branch=main)](https://battery-intelligence-lab.github.io/galv/index.html)
<a href="https://Battery-Intelligence-Lab.github.io/galv/" target="_blank">
[![Docs website](https://github.com/Battery-Intelligence-Lab/galv/actions/workflows/pages/pages-build-deployment/badge.svg?branch=gh-pages)](https://github.com/Battery-Intelligence-Lab/galv/actions/workflows/pages/pages-build-deployment)
</a>

Galv is a system for automatically storing data generated by battery cycling
machines in a database in a standard format.
The project contains several distinct components:

- A REST API
- A Python client for the REST API
- A web frontend for the REST API
- [Harvesters](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#harvesters) that monitor and process experimental data

A laboratory running a [Galv server](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#galv-server) instance and a battery
cycling machines can use Galv to make it easy to access, analyse, and
share their experimental data.
To do this, they:
1. Set the cycling machines up to output their raw test result files to a shared drive.
2. Set up a [harvester](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#harvesters) on a computer with access to that shared drive.
- (This only needs to be done once)
3. Log into their lab [Web frontend](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#web-frontend) and configure the
[harvester](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#harvesters) to crawl the appropriate directories on the shared drive.
4. Log into the [Web frontend](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#web-frontend) to edit metadata and view data,
or use the [Python client](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#python-client) to download formatted data for analysis.
Galv is an open-source platform for automated storage of battery data with advanced metadata support for battery scientists. Galv is deployed with [Docker](https://docs.docker.com/) to support robust local and cloud instances. An example frontend view is displayed below.

The harvesters are able to parse the following file types:
<p align="center">
<img src="docs/source/img/galv_frontend_v1.png" width="900" />
</p>

## Features:
- REST API for easy data storage and retrieval
- A Python, Julia, and MATLAB client for the REST API
- Metadata support using ontology definitions from BattINFO/EMMO
- A distributed platform with local data harvesters
- Docker based deployment


## Getting Started
Deploying a [Galv](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#galv-server) instance in a battery lab can make it easy to access, analyse, and share experimental data. The steps to achieve this are:
1. Set the cycler's data export/save location to a single directory.

- MACCOR files in .txt, .xsl/.xslx, or raw format
- Ivium files in .idf format
- Biologic files in .mpr format
2. Set up a [harvester](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#harvesters) on a computer with access to the directory (can be local or via a shared directory/drive).

3. Deploy Galv onto a local machine, or onto a cloud instance. Selection between these depend on security and access requirements. Note, network connection between the harvester and the Galv instance is necessary.

4. Log into the lab [web frontend](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#web-frontend) and configure the [harvester](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#harvesters) to crawl the appropriate directories.

5. Use the [web frontend](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#web-frontend) to add metadata and view data, or use the [Python](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#python-client) client to ingest the data for analysis.

The harvesters are able to parse the following file types:

The server database is a relational database that stores each dataset along with information
about column types, units, and other relevant metadata (e.g. cell information, owner, purpose
of the experiment).
The [REST API](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#rest-api) provides its own definition via a downloadable OpenAPI schema file
(`schema/`), and provides interactive documentation via SwaggerUI (`schema/swagger-ui/`) and
Redoc (`schema/redoc/`).
- MACCOR files in ``.txt``, ``.xsl``/``.xslx``, or ``raw`` format
- Ivium files in ``.idf`` format
- Biologic files in ``.mpr`` format (EC-Lab firmware < 11.50)

The schema can be downloaded from the [documentation page](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#api-spec).
Galv uses a relational database that stores each dataset along with information about column types, units, and other relevant metadata (e.g. cell information, owner, purpose of the experiment). The [REST API](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#rest-api) provides its own definition via a downloadable OpenAPI schema file (`schema/`), and provides interactive documentation via SwaggerUI (`schema/swagger-ui/`) and Redoc (`schema/redoc/`).

A diagram of the logical structure of the system is shown below. The arrows indicate the
direction of data flow.
The schema can be downloaded from the [documentation page](https://Battery-Intelligence-Lab.github.io/galv/UserGuide.html#api-spec). The below diagram presents an overview of Galv's architecture. The arrows indicate the direction of data flow.

<p align="center">
<img src="docs/source/img/GalvStructure.PNG" alt="Data flows from battery cycling machines to Galv Harvesters, then to the Galv server and REST API. Metadata can be updated and data read using the web client, and data can be downloaded by the Python client." width="600" />
Expand All @@ -52,5 +49,4 @@ direction of data flow.

## Project documentation

Full documentation is available at [](https://Battery-Intelligence-Lab.github.io/galv/),
build by Sphinx from the source in `./docs/source/*.rst`.
Full documentation is available [here](https://Battery-Intelligence-Lab.github.io/galv/), build by Sphinx from `./docs/source/*.rst`.
Binary file added docs/source/img/Galv-logo-shortened.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/source/img/galv_frontend_v1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 613e359

Please sign in to comment.