GSoC NIU Projects 2025: datashuttle#

If you are interested in any of these projects, get in touch! Feel free to open a new topic on Zulip and tag the potential mentors. Our working language is English.

Allow Google Drive or AWS as remote storage

In systems neuroscience, a lack of standardisation in data organisation schemes creates a barrier to data-sharing and collaboration. datashuttle provides a Python API and terminal user interface (TUI) to allow researchers to create, validate and transfer folders in a standardised way.

Projects can be transferred between computer systems in datashuttle via SSH or mounting drives. We would like to support transfer to Google Drive or and Amazon Web Services (AWS) buckets. Under the hood datashuttle uses RClone, which already implements transfer to Google Drive and AWS.

Deliverables

  • Extend datashuttle functionality to permit transfer between a local filesystem and Google Drive or AWS. This will involve exposing new functionality within the Python API as well as the terminal user interface.

  • Tests to cover any added functionality.

  • Documentation for the new functionality.

  • Duration

Medium (~175 hours)

Difficulty

This project is well-suited for a beginner contributor to open source.

Required skills Experience with Python

Nice-to-haves Experience with network data transfers (e.g. rsync, rclone, Google Drive, AWS)

Potential mentors

Further reading

datashuttle and RClone websites.

Extend the functionality of the terminal user interface

In systems neuroscience, a lack of standardisation in data organisation schemes creates a barrier to data-sharing and collaboration. datashuttle provides a Python API and terminal user interface (TUI) to allow researchers to create, validate and transfer folders in a standardised way.

In datashuttle, there are a number of features which are available in the Python API but not yet exposed in the terminal interface. datashuttle uses textual to create the TUI. This project would involve extending the functionality of the TUI, providing experience in coding for graphical user interfaces, in particular terminal user interfaces.

Deliverables

  • A python implementation adding textual widgets that perform and display project validation. This will include buttons, radio-buttons and drop down menus and a log display for validation errors.

  • Improvements to user experience:

    • Implement code to allow a responsive user interface while a transfer job is performed.

    • Add buttons and drop-down list to edit a directory tree.

  • Tests to cover any added functionality.

  • Documentation for the new functionality.

Duration

Medium (~175 hours)

Difficulty

This project is well-suited for a student or a beginner contributor to open source. No experience in graphical or terminal user interfaces is required.

Required skills Experience with Python

Potential mentors

Further reading

TheNeuroBlueprint and datashuttle websites.