No edit summary |
(Edited mentor list) |
||
(25 intermediate revisions by 12 users not shown) | |||
Line 5: | Line 5: | ||
== Students Welcome == | == Students Welcome == | ||
If you are a student looking forward to | 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 == | ||
Line 23: | Line 25: | ||
* [[User:Jflory7|Justin W. Flory]] (General development, general Linux, Fedora community, GSoC alumnus, questions about program, misc. advice) | * [[User:Jflory7|Justin W. Flory]] (General development, general Linux, Fedora community, GSoC alumnus, questions about program, misc. advice) | ||
* [[User:Rhea|Radka (rhea) Janek]] (C#, webserver or dotnet related stuff on Linux, general support and help with the program) | * [[User:Rhea|Radka (rhea) Janek]] (C#, webserver or dotnet related stuff on Linux, general support and help with the program) | ||
* [[User:Linuxmodder|Corey Sheldon]] (Python, 2Factor/Multi-Factor Auth, QA Testing, general mentoring, security) | * [[User:Linuxmodder|Corey Sheldon]] (Python, 2Factor/Multi-Factor Auth, QA Testing, general mentoring, security, 2nd year mentor) | ||
* [[User:Skamath|Sachin S. Kamath]] (General Linux, Fedora community, Metrics, GSoC alumnus, Help with program) | |||
* [[User:Bee2502|Bhagyashree(Bee)]] ( Fedora community, Metrics, Python, past GSoC mentor, Support related to GSoC) | |||
* [[User:Lsd|Lali Devamanthri]] (General development, Middleware/Integration, general Linux, Fedora community, GSoC alumnus, past GSoC mentor) | |||
* [[User:Devyani7|Devyani Kota]] (Fedora community, GSoC Alumnus, General Linux, Python, questions related to GSoC) | |||
== Draft of an idea == | == Draft of an idea == | ||
Line 56: | Line 61: | ||
= Idea list for GSoC 2017 = | = Idea list for GSoC 2017 = | ||
=== 389 Directory Server: developing administrative tools === | === 389 Directory Server: developing administrative tools === | ||
Line 183: | Line 143: | ||
|- | |- | ||
!'''Notes & references''' | !'''Notes & references''' | ||
| [[DotNet|.NET on Fedora]], [https://fedorahosted.org/ipsilon ipsilon] | | [[DotNet|.NET on Fedora]], [https://fedorahosted.org/ipsilon ipsilon] ; ''Due to high interest we recommend that you apply for different project.'' | ||
|- | |- | ||
|} | |} | ||
Line 218: | Line 178: | ||
|- | |- | ||
!'''Notes & references''' | !'''Notes & references''' | ||
| [[DotNet|.NET on Fedora]] | | [[DotNet|.NET on Fedora]] ; ''Due to high interest we recommend that you apply for different project.'' | ||
|- | |- | ||
|} | |} | ||
Line 252: | Line 212: | ||
|} | |} | ||
=== | === Migrate Plinth to Fedora Server === | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 260: | Line 220: | ||
|- | |- | ||
!'''Skill level''' | !'''Skill level''' | ||
| | | Novice | ||
|- | |- | ||
!'''Skills required''' | !'''Skills required''' | ||
| | | | ||
* Python | * Python and Django | ||
* | * Git | ||
* dnf knowledge is a plus | * dnf knowledge | ||
* ARM based hardware is a plus | |||
* RPM packaging knowledge is a plus | |||
|- | |- | ||
!'''Mentor(s)''' | !'''Mentor(s)''' | ||
| | | [[User:Tonghuix|Tong Hui]] (first year, UTC+8, please be patient!) | ||
|- | |- | ||
!'''Contacts (IRC & email)''' | !'''Contacts (IRC & email)''' | ||
| | | | ||
* ''{{fpchat|#fedora- | * ''{{fpchat|#fedora-arm}} & {{fplistfull|arm}}'' | ||
|- | |- | ||
!'''Idea description''' | !'''Idea description''' | ||
| | | Plinth is developed by [https://wiki.debian.org/FreedomBox/ 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. [https://wiki.debian.org/FreedomBox/Plinth 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 would be better of student to be familiar with ARM based hardware and knowing something about how to running a Fedora Server on it, or use something like Qemu if you don't know hardware. | |||
The main goal of this idea is to make Plinth works fine in Fedora Server or Minimal flavor, due to Plinth write APT commands hard coded, so it is better yo make it more adoptive for RPM. The secondary goal is to make a RPM package for Plinth from source and setup a repo for it, so that everyone who use Fedora could use Plinth. | |||
You will learn: | You will learn: | ||
* how to write | * how to write modern test driven Python projects | ||
* how to | * how to running Fedora Server on a ARM machine. | ||
* how to | * how to migrate deb package to RPM package from source. | ||
|- | |||
!'''Notes & references''' | |||
| [[Architectures/ARM]] | |||
|- | |||
|} | |||
=== Patternfly Frontend Pattern Development === | |||
{| class="wikitable" | |||
|- | |||
!Status | |||
| Proposed - draft | |||
|- | |||
!'''Skill level''' | |||
| Intermediate | |||
|- | |||
!'''Skills required''' | |||
| Javascript | |||
|- | |||
!'''Mentor(s)''' | |||
| Brian Leathem | |||
|- | |||
!'''Contacts (IRC & email)''' | |||
| {{fpchat|#patternfly}} & 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''' | !'''Notes & references''' | ||
| | | https://patternfly-webcomponents.github.io/ | ||
|- | |- | ||
|} | |} | ||
=== Fedora Media Writer - New Features === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 298: | Line 288: | ||
|- | |- | ||
!'''Skill level''' | !'''Skill level''' | ||
| | | Intermediate | ||
|- | |- | ||
!'''Skills required''' | !'''Skills required''' | ||
| | | C++/Qt and/or QML | ||
|- | |- | ||
!'''Mentor(s)''' | !'''Mentor(s)''' | ||
| [[User: | | [[User:Mbriza|Martin Bříza]] | ||
|- | |- | ||
!'''Contacts (IRC & email)''' | !'''Contacts (IRC & email)''' | ||
| | | mbriza on Freenode (for example on {{fpchat|#fedora-devel}} or {{fpchat|#fedora-apps}}) or mbriza@redhat.com | ||
|- | |- | ||
!'''Idea description''' | !'''Idea description''' | ||
| | | Fedora Media Writer is a tool that makes putting Fedora images on portable media (such as flash drives) much easier. Since Fedora 25, it is offered as the default download options for users coming to https://getfedora.org from a Mac or a Windows computer. | ||
Ever since the rewrite from liveusb-creator, there has been some features missing from it and due to the popular demand, it wouldn't be a bad idea to get them readded. You won't need to implement all of these. Just one would be perfectly fine. However, please contact me first so we can arrange the details of your potential application. | |||
There is a short list of some things that could be done (however, feel free to get in touch about anything else, or look on the GitHub page for some more): | |||
* ''Persistent storage''. To explain how it works, I'll start with how live media works now for us: After booting into the live system, you can do whatever you want, install programs, save files to your home folder or even modify the root filesystem, as much as your free memory permits you. However, after rebooting you lose all those changes because the partitions on the drive are not touched. Persistent storage adds the possibility to retain those changes through reboots so you would be able to install new apps to your live environment or work with files stored on the flash drive. | |||
* Being able to write the images without destroying the data that was already present on the flash drive before. | |||
* Having a Fedora ARM image resized to fit the size of your SD card immediately after having it written. | |||
* Proper privilege escalation through launchd for the helper process on macOS. | |||
Understanding of libraries and techniques relevant to this project on Linux, Mac or Windows (or all of them) is a big plus. | |||
You'll learn more about multiplatform development and be involved in the project that is the first thing new users see when they are going to try Fedora. | |||
|- | |- | ||
!'''Notes & references''' | !'''Notes & references''' | ||
| | | https://github.com/MartinBriza/MediaWriter | ||
|- | |- | ||
|} | |} | ||
=== | === Adwaita and HighContrast style for QtQuickControls === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
!Status | !Status | ||
| Proposed - draft '' | | Proposed - draft | ||
|- | |||
!'''Skill level''' | |||
| Novice | |||
|- | |||
!'''Skills required''' | |||
| QML and a little bit of C++ | |||
|- | |||
!'''Mentor(s)''' | |||
| [[User:Mbriza|Martin Bříza]] | |||
|- | |||
!'''Contacts (IRC & email)''' | |||
| mbriza on Freenode (for example on {{fpchat|#fedora-devel}} or {{fpchat|#fedora-apps}}) or mbriza@redhat.com | |||
|- | |||
!'''Idea description''' | |||
| Fedora Workstation ships custom Qt themes that match its Adwaita and Highcontrast themes from its default GNOME desktop environment. This makes Qt applications blend nicely into the overall Fedora Worstation experience. | |||
However, to fully support most of the Qt applications, we need to have QtQuickControls (QML) themes implemented, too. | |||
Work on this would consist of three main parts: | |||
* Figuring out where and how to install the theme (CMake) | |||
* Implementing the look of all necessary widgets (QML) | |||
* Making this theme selected by default when the app runs in GNOME (probably C++, in the QGnomePlatform project) | |||
This project is best suited to a candidate who wants to learn about QML. | |||
|- | |||
!'''Notes & references''' | |||
| https://github.com/MartinBriza/adwaita-qt | |||
https://github.com/MartinBriza/highcontrast-qt | |||
https://github.com/MartinBriza/QGnomePlatform | |||
|- | |||
|} | |||
=== Fedora CommOps : Centralized Metrics generation === | |||
{| class="wikitable" | |||
|- | |||
!'''Status''' | |||
| Proposed - draft | |||
|- | |- | ||
!'''Skill level''' | !'''Skill level''' | ||
Line 341: | Line 375: | ||
|- | |- | ||
!'''Skills required''' | !'''Skills required''' | ||
| | | | ||
Required: | |||
* Python | |||
* Basic understanding of APIs | |||
* Flask | |||
Bonus Skills: | |||
* Data analytics algorithms | |||
* Knowledge of Fedora Apps | |||
|- | |- | ||
!'''Mentor(s)''' | !'''Mentor(s)''' | ||
| | | [[User:skamath | Sachin S. Kamath]] (skamath) | ||
[[User:bee2502 | Bhagyashree(Bee) ]] (bee2502) | |||
|- | |- | ||
!'''Contacts (IRC & email)''' | !'''Contacts (IRC & email)''' | ||
| # | | {{fpchat|#fedora-commops}} & [https://lists.fedoraproject.org/admin/lists/commops.lists.fedoraproject.org/ commops@lists.fedoraproject.org] | ||
|- | |- | ||
!'''Idea description''' | !'''Idea description''' | ||
| | | | ||
Right now, metrics collection in CommOps is not very efficient and requires a lot of manual work. Metrics for various events/FAS groups/users are collected using scripts which query datagrepper and return results. This process is very time consuming and writing scripts each time is a very tedious process. Also, querying the datagrepper to get data everytime is redundant and time-consuming. | |||
Hack on statscache to build a central metrics generation system for Fedora with handy features to pull statistics. Take a look at the [https://pagure.io/fedora-commops/issue/105 Pagure ticket] for more details. | |||
|- | |- | ||
!'''Notes & references''' | !'''Notes & references''' | ||
| https:// | | [https://pagure.io/fedora-commops/issue/105 Pagure ticket] | ||
|- | |- | ||
|} | |} |
Latest revision as of 11:42, 28 January 2018
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, 2nd year mentor)
- Sachin S. Kamath (General Linux, Fedora community, Metrics, GSoC alumnus, Help with program)
- Bhagyashree(Bee) ( Fedora community, Metrics, Python, past GSoC mentor, Support related to GSoC)
- Lali Devamanthri (General development, Middleware/Integration, general Linux, Fedora community, GSoC alumnus, past GSoC mentor)
- Devyani Kota (Fedora community, GSoC Alumnus, General Linux, Python, questions related to GSoC)
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
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:
From this you will learn:
What are we looking for:
Is this project right for you?
|
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:
You will learn:
|
Notes & references | .NET on Fedora, ipsilon ; Due to high interest we recommend that you apply for different project. |
.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:
You will learn:
|
Notes & references | .NET on Fedora ; Due to high interest we recommend that you apply for different project. |
Continuous static analysis db
Status | Proposed - draft |
---|---|
Skill level | Intermediate |
Skills required |
|
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 |
Migrate Plinth to Fedora Server
Status | Proposed - draft |
---|---|
Skill level | Novice |
Skills required |
|
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 would be better of student to be familiar with ARM based hardware and knowing something about how to running a Fedora Server on it, or use something like Qemu if you don't know hardware. The main goal of this idea is to make Plinth works fine in Fedora Server or Minimal flavor, due to Plinth write APT commands hard coded, so it is better yo make it more adoptive for RPM. The secondary goal is to make a RPM package for Plinth from source and setup a repo for it, so that everyone who use Fedora could use Plinth. You will learn:
|
Notes & references | Architectures/ARM |
Patternfly Frontend Pattern Development
Status | Proposed - draft |
---|---|
Skill level | Intermediate |
Skills required | Javascript |
Mentor(s) | Brian Leathem |
Contacts (IRC & email) | #patternfly[?] & 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/ |
Fedora Media Writer - New Features
Status | Proposed - draft |
---|---|
Skill level | Intermediate |
Skills required | C++/Qt and/or QML |
Mentor(s) | Martin Bříza |
Contacts (IRC & email) | mbriza on Freenode (for example on #fedora-devel[?] or #fedora-apps[?]) or mbriza@redhat.com |
Idea description | Fedora Media Writer is a tool that makes putting Fedora images on portable media (such as flash drives) much easier. Since Fedora 25, it is offered as the default download options for users coming to https://getfedora.org from a Mac or a Windows computer.
Ever since the rewrite from liveusb-creator, there has been some features missing from it and due to the popular demand, it wouldn't be a bad idea to get them readded. You won't need to implement all of these. Just one would be perfectly fine. However, please contact me first so we can arrange the details of your potential application. There is a short list of some things that could be done (however, feel free to get in touch about anything else, or look on the GitHub page for some more):
Understanding of libraries and techniques relevant to this project on Linux, Mac or Windows (or all of them) is a big plus. You'll learn more about multiplatform development and be involved in the project that is the first thing new users see when they are going to try Fedora. |
Notes & references | https://github.com/MartinBriza/MediaWriter |
Adwaita and HighContrast style for QtQuickControls
Status | Proposed - draft |
---|---|
Skill level | Novice |
Skills required | QML and a little bit of C++ |
Mentor(s) | Martin Bříza |
Contacts (IRC & email) | mbriza on Freenode (for example on #fedora-devel[?] or #fedora-apps[?]) or mbriza@redhat.com |
Idea description | Fedora Workstation ships custom Qt themes that match its Adwaita and Highcontrast themes from its default GNOME desktop environment. This makes Qt applications blend nicely into the overall Fedora Worstation experience.
However, to fully support most of the Qt applications, we need to have QtQuickControls (QML) themes implemented, too. Work on this would consist of three main parts:
This project is best suited to a candidate who wants to learn about QML. |
Notes & references | https://github.com/MartinBriza/adwaita-qt |
Fedora CommOps : Centralized Metrics generation
Status | Proposed - draft |
---|---|
Skill level | Intermediate |
Skills required |
Required:
Bonus Skills:
|
Mentor(s) | Sachin S. Kamath (skamath)
Bhagyashree(Bee) (bee2502) |
Contacts (IRC & email) | #fedora-commops[?] & commops@lists.fedoraproject.org |
Idea description |
Right now, metrics collection in CommOps is not very efficient and requires a lot of manual work. Metrics for various events/FAS groups/users are collected using scripts which query datagrepper and return results. This process is very time consuming and writing scripts each time is a very tedious process. Also, querying the datagrepper to get data everytime is redundant and time-consuming. Hack on statscache to build a central metrics generation system for Fedora with handy features to pull statistics. Take a look at the Pagure ticket for more details. |
Notes & references | Pagure ticket |
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: