OneDataShare (abbreviated as ODS) is a cloud-based managed file transfer system that performs inter-protocol data transfers in a reliable and efficient manner.
ODS provides the end-user with an interface which can be used to initiate file transfers and monitor them simultanously. ODS guarantees efficiency in data transfer by performing software level optimizations (for example - chunking of data into a byte stream of fixed size).
OneDataShare beta version is a publicly available for use and can be accessed using https://www.onedatashare.org/.
ODS currently supports transfers between 7 endpoint protocol types viz.
- Dropbox
- Google Drive
- Grid FTP (Globus)
- FTP
- SFTP
- SSH
- HTTP
Note: Box and Amazon S3 endpoints support will be provided in future releases
Link to research paper - https://arxiv.org/pdf/1712.02944.pdf
OneDataShare application is built using following technologies/frameworks:
- Node.js (v8.9.4) – needed for node package manager (NPM)
- Apache Maven (version 3.5.2)
- MongoDB (version 4.0.4)
- Java (JDK 1.8)
- Git (version 2.16 or above)
- ReactJS
- Spring Boot coupled with Reactive Web (commonly known as WebFlux) dependency.
- Docker
Feature updates, project tasks and bug fixes are tracked using https://trello.com/b/H8Jmb1oY/onedatashare
Recommended IDEs (used by ODS team for development):
- IntelliJ Idea Community Edition (for backend code)
- Visual Studio Code (for front-end code)
-
Clone OneDataShare GitHub repository. Open command prompt (Windows OS) or terminal (Unix-based OS)
Run following command –
git clone https://github.com/didclab/onedatashare.git -
Open the cloned repository in IntelliJ and import it as a Maven project.
-
Install Lombok Plugin in IntelliJ.
In IntelliJ, goto File > Settings > Plugins.
In the search box, type ‘Lombok’ and click on ‘search in repositories’.
Install the Lombok plugin.Note – Lombok plugin enables us to avoid writing boilerplate code such as getters, setters and parameterized constructors.
-
Navigate to the front-end codebase (<cloned_directory>/src/main/react-front-end/) and build.
For Windows OS, run following commands:
npm install
npm run build-win
For Unix-based OS, run following commands:
npm install
npm run build -
To execute ODS as a standalone application, follow steps mentioned in the standalone-execution.txt file.
To execute ODS using docker containers, follow steps mentioned in the docker-execution.txt file.
Please direct all issues/concerns/queries with respect to OneDataShare using the support page (https://www.onedatashare.org/support) or by sending us an email at admin@onedatashare.org.
Dr. Tevfik Kosar (tkosar@buffalo.edu)
Product Owner
https://cse.buffalo.edu/faculty/tkosar/
Associate Professor, University at Buffalo
Asif Imran
Stakeholder/Researcher
Ph.D. Student, University at Buffalo
Yifu Yin
Application Developer
Graduate Student, University at Buffalo
Linus Castelino
Application Developer
Graduate Student, University at Buffalo
Praveenkumar Rajendran
Application Developer
Graduate Student, University at Buffalo
Aashish Jain
Application Developer
Graduate Student, University at Buffalo
Atul Singh
Application Developer
Graduate Student, University at Buffalo
Kiran Prabhakar
Application Developer
Graduate Student, University at Buffalo
Ramandeep Singh
Application Developer
Graduate Student, University at Buffalo
Javier Falca
Application Developer
Undergraduate Student, University at Buffalo
Dhayanidhi Gunasekaran
Application Developer
Graduate Student, University at Buffalo