Skip to content

GSoC 2020 Projects

Sebastiaan Huber edited this page Jan 31, 2020 · 17 revisions

Getting started with AiiDA

AiiDA is a workflow manager for computational science, with roots in computational materials science.

To be considered as a GSoC student, we ask that you make a pull request to aiida-core. It can be something small, like a doc fix or simple bug fix. For beginner-friendly issues, see GitHub issues by-label

Why work on AiiDA?

  • a
  • b

Project 1 - Title

Level: intermediate

Description (2-5 sentences)

Expected outcomes

Skills

Project 2 - Unified ORM API for bulk-object creation

Level: intermediate

Description: AiiDA has her own front-end Object Relational Mapper (ORM) to map python objects to the corresponding database records and wraps around two other ORM libraries, Django and SqlAlchemy. This ORM allows users to create new objects, such as nodes in the provenance graph through the python API. The export/import functionality in AiiDA, which allows to export (parts) of a provenance graph and import it in another database, currently facilitates the sharing of data between users. The import functionality requires the creation of a lot of new objects in the database at once.

Expected outcomes

This project will

  1. make the import implementation backend ORM independent by passing through AiiDA's front-end ORM
  2. implement bulk insertion functionality in that ORM to make the importing of data as efficient as possible

Skills

This project will require the participant to work with the ORM of AiiDA so an understanding of Object Relational Mapper's is important. AiiDA's ORM is implemented with two different libraries, Django and SqlAlchemy, so previous experience with those is desirable but not required. Finally, AiiDA uses PostgreSQL as the Relational Database Management System (RDBMS), therefore knowledge and previous experience with PostgreSQL and/or SQL in general is important

Project N - Your Idea Here

If you're already familiar with AiiDA and have your own idea on how to improve it, we're happy to consider it. In this case, please think about the steps of how you would go about attacking the problem so that we can draw up a rough work plan.

Mentorship

Available co-mentors are

We have an active Slack workspace & biweekly developer meetings.