GSoC Project Idea 12: Improve automated testing suite for the LORIS neuroinformatics platform

Neuroscientific research involves collecting large amounts of data of different kinds to study the relationship between the brain, genes, and behaviour. These data collections must be carefully curated and cross-linked before being analyzed, to help ensure any findings are verifiable and reproducible.

The neuroinformatics challenges involved in databasing and organizing these workflows for neuroimaging, genetic and clinical/neuro-psychological data require sophisticated storage and sharing platforms, which accelerate and increase confidence in research results.

The goal of this project is to extend and enhance the unit test suite for the LORIS neuroinformatics data platform ( Improving the code coverage and increasing the maintainability of unit tests will be key targets for this project.

Tool presentation:

LORIS is a research data platform ( used by many multi-site longitudinal neuroscience studies around the world. Its web-facing front-end provides researchers with powerful customizable tools to handle, curate, visualize and export any format of data within a single platform.

LORIS’ automated workflows support diverse data types, including neuroimaging (MRI, EEG, PET), genetic, and clinical/neuro-psychological data collection. Data sharing tools and cross-platform interoperability via its RESTful API are also key design pillars of LORIS’ increasing engagement with Open Science initiatives.


The project will consist of the following stages/activity types:

  1. Familiarization with the LORIS software: Navigating the LORIS User Interface to get familiar with this research data management system and codebase.
  2. Review of existing testing architecture: Study the existing implementations of unit tests and integration tests to assess current coverage of the LORIS codebase, and map potential gaps in the coverage that can be patched.
  3. Quality improvements on existing tests: Expand existing tests by adding edge cases, and improve performance testing by adding test data cases to the testing database.
  4. Incrementation of unit tests and code coverage: Design and implement new tests that increase overall code coverage and improve automated testing cases in both performance and quality.
  5. Documentation: Build on existing documentation to help with understandability of tests. Simplify testing infrastructure when possible to encourage new developers to get involved in testing.


Javascript, Python, Databasing (knowledge of SQL and noSQL), Web development, LAMP stack experience, PHP, React. Understanding RESTful APIs and experience with Selenium is an asset. Basic knowledge of git and GitHub and software validation principles is expected. Technical writing and background in neuroinformatics or neuroimaging is an asset.

Understanding of testing is an asset, including: types of test (unit, integration, regression, performance), black/white box testing, test automation, web application test implications, software quality metrics (quantitative and qualitative). Individual dedication, resourcefulness and collegiality are key success factors for any internship.


Samir Das, Christine Rogers and Rida Abou-Haidar, McGill University, Canada


Is there an application process here to get involved in this project?

Hi Richard, it varies a bit from project to project. I suggest you contact the mentor Christine Rogers ( for guidance, or wait for a response from her here. /Malin, org admin

Hi Richard,
Since the formal application is done through the Google Summer of Code program, here are the first steps to a successful process:

  • Check out our project description (above) including LORIS websites, and the Google Summer of Code program details and application information (including eligibility, dates, etc).

  • Check out sample Issues (tasks) for this project on our GitHub : #4423 and #4378

  • Email me your CV and your GitHub handle – and let’s chat about any questions you have, even before you submit your GSoC application.