This page is to brainstorm FreedomBox project ideas for upcoming GSoC. The projects can then be submitted to the Debian projects list for GSoC 2017, when it's available.
See last year's projects page for examples.
- Due date: For GSOC, project ideas should be ready and submitted before the "Mentoring organization application deadline".
Project Template
Title of the project
Description of the project: At least 8-10 lines describing what the project is about; it is really important to have a good description if you want to attract interns who are interested by the idea. This does not need to be a very technical description, but something that stirs interest and is complete enough to allow an intern to judge whether they want to work on the particular project or not. It does not need to be a complete road map either and does not need to explain all the tiny details and whatnot -- the mentor can tell that to interested applicants, or they can work out the exact details together.
Confirmed Mentor: Name of the mentor
How to contact the mentor: (mail, IRC, etc)
Confirmed co-mentors: It is not compulsory to have co-mentors if you have already mentored a project before, but it is very recommended. Secondary mentors do not need to be as knowledgeable as the first one in the project, but they should be available to help the intern if they are stuck and the main mentor is busy / not available.
Deliverables of the project:
Desirable skills: Skills that the student has or is willing to develop. Remember, the students do not have as much experience as the mentor.
What the intern will learn: At least 2-3 lines telling the applicants the skills they will develop and how they will improve Debian. Do not focus on the technologies, rather use something that could motivate the prospective interns to take on your project.
Application tasks: some test tasks that you want your applicants to complete during the application process. This helps us make sure the applicants are motivated to do the project, and to assess mentor/intern communication during the application step.
Related projects: links to some existing projects that are related.
GSoC 2017 Project Ideas
Mail server support in FreedomBox
Description of the project: Add basic mail server support to FreedomBox. One topic is to fetch emails from a 3rd party service provider, and to store them on a FreedomBox. Main focus is to use existing Debian packages and integrate them into the FreedomBox system. The mail server should receive emails via SMTP and allow emails to be accessed via encrypted IMAP (aka imaps). It would be a bonus if it is able to send and receive emails via Tor (aka .onion addresses), to allow two FreedomBox users to exchange emails without leaking metadata. http://people.skolelinux.org/pere/blog/A_Debian_package_for_SMTP_via_Tor__aka_SMTorP__using_exim4.html describe the SMTP via Tor idea. It would be nice if the server include good ways to filter out spam. An idea is to only allow encrypted emails signed by approved keys.
Confirmed Mentor: James Valleroy
How to contact the mentor: jvalleroy at mailbox.org, jvalleroy on IRC
Confirmed co-mentors: Sunil Mohan Adapa (sunil at medhas.org, sunilmohan on IRC)
Deliverables of the project:
Plinth module to tie together mail features on FreedomBox
Feature to fetch mail and store it on FreedomBox
- Feature to exchange mail over Tor
Desirable skills: Python, Django, Shell scripting
What the intern will learn: Basic Debian email configuration and web development, which will allow non-technical users to easily setup an email server with limited features but also low-maintenance.
Application tasks:
Set up and run a FreedomBox. It can be in a virtual machine.
- Get a Plinth development environment. This could be any Debian system, but it's easiest to use Vagrant.
Related projects:
FreedomBox home page: http://freedombox.org/
FreedomBox wiki: https://wiki.debian.org/FreedomBox
Plinth repository: https://github.com/freedombox/plinth
Port FreedomBox to MIPS machines
Description of the project: (For Outreachy) This idea mainly focus on extend FreedomBox's nominated hardware. FreedomBox now works on most of the popular ARM machines, but some of the routers built with MIPS CPU. To free them we could port FreedomBox toolchain to MIPS CPU. Some of the MIPS boards working with Debian very well so it is easy to port FreedomBox (Plinth mostly) on it, but not only port Plinth but also build images for MIPS boards, make them out of the box and passing freedom to MIPS boards user. Student who chose need a suitable MIPS board first.
Confirmed Mentor: Name of the mentor
How to contact the mentor: (mail, IRC, etc)
Confirmed co-mentors: Tong Hui
Deliverables of the project: Make FreedomBox working on MIPS machines, extend Debian for MIPS.
Desirable skills: Basic hardware knowledge about MIPS, C, Shell, a little Python maybe
What the intern will learn: How to build a Debian image for given boards, learning more about MIPS architecture, learning how to make a out of the box router or private "Cloud".
Related projects:
Add a Text Editor for Plinth to edit configuration files
Description of the project: (For Outreachy) Plinth is working very well so far and out of the box for newbies. However, for some advanced user we need configure some application or system directly, so that we want to edit configuration file (such us /etc/privoxy/config for Privoxy configuration), some times it is hard to edit config file via SSH, so a web-based editor is better. It is necessary for Plinth to adding a text editor, not only a textbox but a syntax highlighting enabled editor. The mission is make it easy to edit config files and make it alive as save it.
Confirmed Mentor: Tong Hui
How to contact the mentor:mail: tonghuix AT member.fsf.org, jabber/XMPP: tonghuix AT member.fsf.org
Confirmed co-mentors: Sunil Mohan Adapa (mail: sunil at medhas dot org, irc: sunilmohan on freenode/OFTC)
Deliverables of the project: Make Plinth more powerfull and adopt advanced user.
Desirable skills: Front-end knowledge and Python.
What the intern will learn: Applications configure and Debian system administration.
Related projects:
Implement New User Interface for FreedomBox
Description of the project: (For Outreachy) An ambitious goal of the FreedomBox project is to enable end users to manage their own servers at home by building a user interface that is as easy to use as installing and managing applications on a mobile phone. Although we have made significant progress in building a clear, simple and relatively easy to use interface there is much more left to be desired from such an interface. FreedomBox community believes that the user interface could learn from advances in user interfaces over the past few years and from other similar projects to make the interface more effective. Robert Martinez, the designer of the FreedomBox identity and the freedombox.org website has proposed a new card-based user interface. This project will involve implementing this design in Plinth which is the FreedomBox user interface written in Python and Django. Apart from work on HTML, CSS, Javascript and Django templates, it is expected that some backend views will need to implemented as part of the project.
Confirmed Mentor: Sunil Mohan Adapa
How to contact the mentor: mail: sunil at medhas dot org, irc: sunilmohan on freenode/OFTC
Confirmed co-mentors: Tong Hui (mail: tonghuix AT member.fsf.org, jabber/XMPP: tonghuix AT member.fsf.org), mray (mail: mail@mray.de, irc: mray on OFTC)
Deliverables of the project: Implementation of new card based interface for FreedomBox as designed in #739
Desirable skills: HTML, CSS, Javascript
What the intern will learn: Building a web interface for a Django application, a javascript user interface toolkit
Related projects: Refactor FreedomBox Foundation Website
