Summer of Code projects for GNU

This page has the project suggestions for GNU's participation in Google Summer of Code 2021. (Project proposals for 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, and 2020 are archived.)

STUDENTS - BEFORE YOU SUBMIT YOUR PROJECT PROPOSAL:

Please read the GNU Project's guidelines for Summer of Code projects.

Most importantly, please make sure you include all the information requested. If you have questions, please ask summer-of-code@gnu.org (list info here).

Please note that you are not bound to use these ideas, you can propose a new project. It is a good idea to find a mentor and discuss the idea before submit it.


Project suggestions

GNU is a large and complex project, and thus is subdivided into packages, which are relatively independent projetcts. In Summer of Code, GNU acts as an umbrella organization for its packages. The ideas here are grouped by package. Many packages have more than one suggestion, or even their own ideas page.

guix| mes| XaoS| GNU Astronomy Utilities| Taler| GNUnet


Ideas

GNU Guix

GNU Guix is the GNU package manager. GNU Guix provides state-of-the-art package management features such as transactional upgrades and roll-backs, reproducible build environments, unprivileged package management, and per-user profiles. It uses low-level mechanisms from the Nix package manager, but packages are defined as native Guile modules, using extensions to the Scheme language—which makes it nicely hackable.

It maintains their list of ideas for GSOC in an external webpage: https://libreplanet.org/wiki/Group:Guix/GSoC-2021

GNU Mes

GNU Mes is a Scheme interpreter and C compiler for bootstrapping the GNU System. Since version 0.22 it has again helped to halve the size of opaque, uninspectable binary seeds that are currently being used in the Reduced Binary Seed bootstrap of GNU Guix. The final goal is to help create a full source bootstrap as part of the bootstrappable builds effort for UNIX-like operating systems.

It maintains their list of ideas for GSOC in an external webpage: https://libreplanet.org/wiki/Group:Guix/GSoC-2021

XaoS

GNU XaoS is an interactive fractal zoomer. It allows the user to continuously zoom in or out of a fractal in a fluid, continuous motion. This capability makes XaoS great for exploring fractals, and it's fun!

Turning XaoS into a web application

GNU XaoS is a popular real-time fractal zoomer and morpher. Its version 4.0 is available since April 2020---it provides a new user interface based on Qt. Qt allows applications to be compiled to run in a web browser, however, some requirements must be met. See this for more information. In this project the task is to find the affected parts of XaoS and change them to be able to compile for running in a browser.

GNU Astronomy Utilities

GNU Astronomy Utilities (Gnuastro) is an official GNU package consisting of various programs and library functions for the manipulation and analysis of (astronomical) data. All the programs share the same basic command-line user interface for the comfort of both the users and developers, some complete tutorials are available to help getting started or obtaining a general view. Gnuastro is written to comply fully with the GNU coding standards so it integrates finely with the GNU/Linux operating system. This also enables astronomers to expect a fully familiar experience in the source code, building, installing and command-line user interaction that they have seen in all the other GNU software that they use.

Gnuastro's proposed projects for this summer-of-code are listed below. More generally, you can also see the full list of open tasks and open bugs (for all programs/libraries) and suggest a different project for us to consider. The preferred way to get in touch is through Gnuastro's "Support tracker" on Savannah and in particular sr #110195. You can also see previous discussions there on tips for getting started. In case you need to have private discussions, you can also contact the given email.

Improving Image Processing tools in GNU Astronomy Utilities

Gnuastro's programs already contain many image processing tools for professional (research quality) usage. However, there are still many tools that remain to be added are are necessary for a complete workflow. For example image registration (finding the warp necessary to match images), non-linear warping (for example correcting optical distortions or gravitational lensing) or de-blending tools (for example to separate galaxies that are in one line of sight). If you are interested in image processing, programming in C (astronomical datasets are large and thus need to be efficient) and in the meantime learning some astronomy and working with major telescope data, please get in touch.

Required Skills: C programming, basic knowledge of image processing concepts.
Contact: sr #110195 or mohammad::at::akhlaghi.org.

Python/R/Julia API for GNU Astronomy Utilities C library

Gnuastro is primarily written in C because astronomical datasets are large and thus need to be efficient. Its most commonly used interface are its command-line programs, but it also has an extensive set of installed C/C++ libraries, which the programs also use. However, many data science operations are today done in the high-level language environments of Python, R or Julia. All three languages have low-level and well-defined interfaces for communicating with installed C libraries. Gnuastro therefore has a task to define a low-level wrapper infra-structure which will allow easy usage in these higher-level languages also. We welcome anyone interested in managing this task for one of these languages as part of GSoC. This will be a wonderful chance to master any of these high-level languages (which are almost fully written in C themselves), while also working on real-world data science/analysis.

Skills required: C programming, C interface of Python or R or Julia (whichever you are better at!).
Contact: sr #110195 or mohammad::at::akhlaghi.org.

GNU Taler

Add GNU Taler support to Saleor

Saleor.io is an e-commerce platform. We would like to see someone implement support for making payments with GNU Taler for Saleor.

Contact address for interested students: grothoff@gnunet.org

Add GNU Taler support to Magento

Magento.com is an e-commerce platform. We would like to see someone implement support for making payments with GNU Taler for Magento.

Contact address for interested students: grothoff@gnunet.org

Add GNU Taler support to OpenCart

Opencart.com is an e-commerce platform. We would like to see someone implement support for making payments with GNU Taler for OpenCart

Contact address for interested students: grothoff@gnunet.org

Add GNU Taler support to LiteCart

Litecart.net is an e-commerce platform. We would like to see someone implement support for making payments with GNU Taler for LiteCart

Contact address for interested students: grothoff@gnunet.org

Write minimum Taler wallet for MicroPython

Micropython.org is a minimalistic implementation of Python for microcontrollers. We would like to see a minimalistic implementation of the Taler wallet for microcontrollers with MicroPython.

Contact address for interested students: grothoff@gnunet.org

Standalone IndexDB backed by sqlite

IndexDB is the common database for WebExtensions in browsers. For browser-less deployments of the Taler wallet in NodeJS-based applications, we would like to see a stand-alone implementation of IndexDB on top of an sqlite3 database.

Contact address for interested students: grothoff@gnunet.org

GNUnet

GNUnet is an alternative network stack for building secure, decentralized and privacy-preserving distributed applications. Our goal is to replace the old insecure Internet protocol stack. Starting from an application for secure publication of files, it has grown to include all kinds of basic protocol components and applications towards the creation of a GNU internet.

GNUnet maintains a list of ideas here: https://stage.gnunet.org/en/gsoc.html.

Other links:

Google SoC Page.