https://github.com/douglasneuroinformatics/databank
An open-source, web-based platform for managing, versioning, and sharing tabular datasets
https://github.com/douglasneuroinformatics/databank
Last synced: 11 months ago
JSON representation
An open-source, web-based platform for managing, versioning, and sharing tabular datasets
- Host: GitHub
- URL: https://github.com/douglasneuroinformatics/databank
- Owner: DouglasNeuroInformatics
- License: apache-2.0
- Created: 2023-05-23T19:21:15.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-08-28T17:06:09.000Z (11 months ago)
- Last Synced: 2025-08-28T23:37:32.825Z (11 months ago)
- Language: TypeScript
- Homepage: https://databank.douglasneuroinformatics.ca/
- Size: 5.34 MB
- Stars: 9
- Watchers: 1
- Forks: 5
- Open Issues: 39
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Data Bank
## Overview
The Douglas Data Bank is an open-source web application for managing, versioning, and sharing tabular datasets. Is is developed as a generic tool applicable across a range of research environments.
## Key Features
- **Upload Datasets**: Users can seamlessly upload their tabular datasets in various formats like CSV and Excel.
- **Version Control**: Each time a dataset is modified, Data Bank keeps track of the changes and automatically generates a changelog.
- **Centralized Storage**: Ensure all datasets are stored centrally, making it easier for collaboration and reference.
- **Selective Sharing**: Users have the capability to decide who gets access to their datasets and even provide selective access to individual variables (columns) within them.
- **User Management**: Designed for clinicians and researchers without a programming background. This feature allows them to manage user permissions effectively on their own.
- **Project Organization**: Datasets can be systematically organized into projects for better structuring and clarity.
## Use Case
Researchers at institutions like the Douglas Research Centre often work with sensitive data. They need a robust platform where they can safely manage and share their data. The Data Bank platform makes it straightforward for an average user with no programming experience to maintain their lab's datasets and regulate access as required.
## Getting Started (Development Setup)
### Install Dependencies
```shell
pnpm install
```
### Setup Config and Docker Compose
```shell
awk -v secret_key="$(openssl rand -hex 32)" '/^SECRET_KEY=/{print $0 secret_key;next}1' .env.template > .env
```
```shell
docker compose -f docker-compose.dev.yaml up -d
```
### Launch Dev Server
```shell
pnpm dev
```
## Getting Started (Production Deployment)
### Prerequisites
We recommend deploying using Docker Compose. This tool orchestrates several services together, including the web portal, REST API, MongoDB dataset, and the Caddy web server. Don't worry if you're new to Docker; no prior experience is necessary. Just make you have Docker and Docker Compose installed. For information on installing Docker, please refer to the [official documentation](https://docs.docker.com/).
### Configuration
User configuration is managed through environment variables. Start by creating a .env file using the supplied template:
```shell
cp .env.template .env
```
Detailed comments are provided for all configurations options.
### Launch
Once you have set the required environment variables, you can launch the stack:
```shell
docker compose up
```
## Contribution
We welcome contributions! If you're interested in improving the Data Bank platform or adding new features, please refer to our Contribution Guide.
## License
Copyright (C) 2023 Douglas Neuroinformatics Platform
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.