From Fedora Project Wiki

No edit summary
Line 5: Line 5:


== Students Welcome ==
== Students Welcome ==
If you are a student looking forward to participate the [[GSOC 2017]] with Fedora, please feel free to browse this idea list which is still growing. Do not hesitate to contact the mentors or contributors listed on this page for any questions or clarification. You can find helpful people on the {{fpchat|#fedora-summer-coding}} IRC channel, or use the {{fplistfull|summer-coding}} mailing list. {{fpchat|#fedora-devel}} can be used for getting help with programming problems.
If you are a student looking forward to participating in [[GSOC 2017]] with Fedora, please feel free to browse this idea list which is still growing.  


'''Now please go read the [https://fedoraproject.org/wiki/GSOC_2017#What_can_I_do_today.3F What Can I do Today] section of the main page.'''
Do not hesitate to contact the mentors or contributors listed on this page for any questions or clarification. You can find helpful people on the {{fpchat|#fedora-summer-coding}} IRC channel, or use the {{fplistfull|summer-coding}} mailing list. {{fpchat|#fedora-devel}} can be used for getting help with programming problems.


If you are new to the Fedora Project, the following material will help you to get started. You should also follow the [[GSOC_2017/Student_Application_Process|student application process]]
If you are new to the Fedora Project, the following material will help you to get started. You should also follow the [[GSOC_2017/Student_Application_Process|student application process]]
Line 15: Line 18:
* [[Communicate/IRCHowTo|IRC]]
* [[Communicate/IRCHowTo|IRC]]
* [[Development|Development]]
* [[Development|Development]]


== Supporting Mentors ==
== Supporting Mentors ==

Revision as of 18:06, 2 March 2017

Open For Ideas! - This page contains some ideas from last year. This does not mean that they are valid for this year too. We are in the process of cleaning up the page.

Find an idea you like? Want to propose your own? See the student application process.


Students Welcome

If you are a student looking forward to participating in GSOC 2017 with Fedora, please feel free to browse this idea list which is still growing.

Now please go read the What Can I do Today section of the main page.

Do not hesitate to contact the mentors or contributors listed on this page for any questions or clarification. You can find helpful people on the #fedora-summer-coding[?] IRC channel, or use the summer-coding@lists.fedoraproject.org mailing list. #fedora-devel[?] can be used for getting help with programming problems.

If you are new to the Fedora Project, the following material will help you to get started. You should also follow the student application process

Supporting Mentors

The following contributors are available to provide general help and support for the GSoC 2017 program (existing contributors, feel free to add yourselves and your wiki page). If a specific project mentor is busy, you can contact one of the people below for short-term help on your project or task.

  • Brian (bex) Exelbierd (Fedora Community Action and Impact Coordinator, FCAIC, 🎂, containers, general development, general Linux)
  • Justin W. Flory (General development, general Linux, Fedora community, GSoC alumnus, questions about program, misc. advice)
  • Radka (rhea) Janek (C#, webserver or dotnet related stuff on Linux, general support and help with the program)
  • Corey Sheldon (Python, 2Factor/Multi-Factor Auth, QA Testing, general mentoring, security)


Draft of an idea

Please add your idea using the following template. The template contains comments in italic text, examples and questions that should be answered. Please copy the template (your idea) into the list of ideas - do not change it here.

Project Name

Status Proposed - draft Use this status.
Skill level Novice / Intermediate / Proficient Are the required skills below something a beginner would no or could reasonably learn quickly? Is there an area where knowledge is already expected making this an advanced project? Also consider how much knowledge about Fedora is required.
Skills required Programming languages or other skills that the student should already posess. Keep in mind that students come to both practice thieir existing skills and grow. Scope your tasks for someone to be able to apply and learn during the project, therefore you shouldn't list everything required to complete the task.
Mentor(s) If your SIG is taking the responsibility, specify as in this example (and always link to people or groups) DotNet SIG - Radka (rhea) Janek, ...
Contacts (IRC & email) #example-irc-channel[?] & example-list@lists.fedoraproject.org - Mentors email or mailing list of your SIG.
Idea description Something something.
Notes & references Something or nothing.

Idea list for GSoC 2017

Fedora Atomic: Support for end-of-life notification

Status Proposed - draft
Skill level Novice
Skills required

Required:

  • C programming experience
  • Fedora or other GNU/Linux Experience

Bonus Skills:

  • Advanced C programming experience
  • experience with RPM packaging
Mentor(s) Abdel G. Martínez L. (potty)
Contacts (IRC & email) #atomic[?] & atomic-devel@projectatomic.io
Idea description

Libraries and Software:

  • rpm-ostree
  • atomic CLI

Expected outcomes

  • rpm-ostree and atomic command output explaining when a version of an upgraded tree branch is end of life (EoL)
  • feature merged into future releases, and packaged for distribution
  • Learn how to work with upstreams and Linux distributions
  • Understand how EOL policies and lifecycles work
Notes & references ProjectAtomic.io

389 Directory Server: developing administrative tools

Status Proposed - draft
Skill level Intermediate
Skills required Python: Must understand Classes, Inheritance, and Modules
Mentor(s) William Brown (firstyear UTC+10, please be patient!)
Contacts (IRC & email) #389[?] & 389-devel@lists.fedoraproject.org
Idea description

389 Directory Server is an enterprise class LDAP server, used in businesses globally to authenticate and identify people. We have a large code base that has gone through nearly 20 years of evolution.

Part of this evolution has been the recent addition of a python administration framework designed to replace our legacy perl tools. The framework already has the base classes designed and written, but we need help to knit together the high level administrative functionality.

Throughout this process you will need to:

  • Learn to deploy a 389 Directory Server.
  • Learn some of the functions of 389 DS (account policy, plugin management).
  • Read and interpret some of our existing perl and shell scripts.
  • Extend the python tools dsconf to support enabling / disabling / configuration of modules in Directory Server to replace our legacy tools.
  • Review other team members' python code.
  • Participate in our community.

From this you will learn:

  • How to integrate and use existing python frameworks and servers.
  • Techniques to unit test command line and python tools.
  • How to work with a geographically distributed team.
  • Engineering principles expected of a project with high quality demands.
  • Use of git and ticket trackers for a project.
  • How to contribute to mailing lists and the review process.

What are we looking for:

  • To teach you good community engagement, and engineering skills. The coding project is a means to help us teach you to interact effectively with a team, and to learn engineering principles.

Is this project right for you?

  • Come and talk to wibrown on #389 in irc on freenode, or email our mailing list 389-devel@lists.fedoraproject.org
Notes & references port389.org

ASP.NET Core web application for /r/Fedora subreddit

Status Proposed - draft
Skill level Novice
Skills required Basic C#
Mentor(s) DotNet SIG - Radka (rhea) Janek
Contacts (IRC & email) #fedora-dotnet[?] & dotnet-sig@lists.fedoraproject.org | radka.janek@redhat.com
Idea description

Goals:

  • ASP.NET Core web application for our /r/Fedora subreddit to let the user choose a flair, based on their FAS Group memberships, written in C# and deployed on a Fedora production server as systemd service.

You will learn:

  • What is it .NET Core and how to use it in Linux
  • How to write C# code on Linux and what IDEs are available to you.
  • You will create and deploy an ASP.NET Core application on our Fedora production server as systemd service, with secure Apache in front of it.
Notes & references .NET on Fedora, ipsilon

.NET Core wrapper library for systemd

Status Proposed - draft
Skill level Intermediate
Skills required C# and basic Linux
Mentor(s) DotNet SIG - Radka (rhea) Janek
Contacts (IRC & email) #fedora-dotnet[?] & dotnet-sig@lists.fedoraproject.org | radka.janek@redhat.com
Idea description

Goals:

  • .NET Standard library wrapping systemd, written in C# and published on NuGet.
  • By utilizing systemd, we can control various aspects of the system underneath directly from C# (eg. stopping or starting services, scheduling reboots)

You will learn:

  • What is it .NET Core and how to use it in Linux
  • How to write C# code on Linux and what IDEs are available to you.
  • How to create and maintain NuGet packages.
  • How to utilize systemd and dbus to control your Linux system.
Notes & references .NET on Fedora

Continuous static analysis db

Status Proposed - draft
Skill level Intermediate
Skills required
  • Python
  • Distributed systems
Mentor(s) Athos Ribiero (athoscr)
Contacts (IRC & email) IRC: athos

Email: athoscribeiro@gmail.com

Idea description

This project proposes the design and implementation of a system to continuously run multiple security oriented static analyzers on source code and display the alarms related to a specific version of the analyzed software. The alarms to be presented will be ranked based on their importance, where critical flaws shall be ranked first and potential false positives are ranked last. We will develop a tool to perform continuous static analysis with different static analyzers and propose a warning classification method using their outputs. We will also propose a visualization approach for the information generated with our tool.

Notes & references Static Analysis SIG

Integration between package managers: dnf pip plugin

Status Proposed - draft
Skill level Intermediate
Skills required
  • Python 3
  • git
  • dnf knowledge is a plus
Mentor(s) Python SIG - Miro Hrončok
Contacts (IRC & email)
Idea description Let’s create a dnf plugin to allow the user to do stuff like sudo dnf pip install -r requirements.txt to install as much Python requirements from RPM as possible. The plugin will use Automatic Provides for Python RPM Packages (Fedora 25+ Feature) to find the appropriate packages to install.

You will be developing a DNF plugin in Python. We will help you with understanding the requirements, you’ll have to parse the requirements.txt.

You will learn:

  • how to write modern test driven Python projects
  • how to write dnf plugins
  • how to integrate tools in large project (Fedora)
Notes & references User:Churchyard/dnfpip

Migrate Plinth to Fedora Server

Status Proposed - draft
Skill level Novice
Skills required
  • Python and Django
  • Git
  • dnf knowledge
  • ARM based hardware is a plus
  • RPM packcaging knowledge is a plus
Mentor(s) Tong Hui (first year, UTC+8, please be patient!)
Contacts (IRC & email)
Idea description Plinth is developed by Freedombox which is a Debian based project. The Freedombox is aiming for building a 100% free software self-hosting web server to deploy social applications on small machines. It provides online communication tools respecting user privacy and data ownership, replacing services provided by third-parties that under surveillance. Plinth is the front-end of Freedombox, written in Python.

This idea mainly about migrate Plinth from Deb-based to RPM-based, and make it available for Fedora Server which will running on ARM machines. It is better student familiar with ARM based hardware and know something about how to running a Fedora Server on it, or use something like Qemu.

You will learn:

  • how to write modern test driven Python projects
  • how to running Fedora Server on a ARM machine.
  • how to migrate deb package to RPM package.
Notes & references Architectures/ARM


Patternfly Frontend Pattern Development

Status Proposed - draft Use this status.
Skill level Intermediate
Skills required Javascript
Mentor(s) Brian Leathem
Contacts (IRC & email) #patternfly (freenode) patternfly@redhat.com
Idea description Explore the emerging web component specifications by implementing patternfly.org patterns as web components. Begin with smaller simpler web component implementations to learn the APIs, then follow on with a more complex composite component to fully exercise the APIs and make a robust and feature-rich web components. Engage the PatternFly developer community to learn and contribute to the collective web component effort.
Notes & references https://patternfly-webcomponents.github.io/

Open Ideas From GSoC 2016

In addition to the above list of ideas, you may want to check out ideas from previous years and contact the mentors for those projects to see if they're still interested in mentoring someone this year.

Note: Do not submit a proposal for an idea from a previous year without contacting the mentor to ensure they will be available to mentor you. Without a mentor, proposals will be rejected.

Previous years: