Archive:Google Summer of Code/2015: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
(Created page with "{{mininav| Google Summer of Code }} {{info|{{big|Unfortunately, XBMC was not selected as a GSoC mentor organization for 2014. }} }} [[File:GSOC_2014_logo-blog.jpg‎|left...")
 
No edit summary
Line 1: Line 1:
{{mininav| [[Google Summer of Code]] }}
{{mininav| [[Google Summer of Code]] }}
{{info|{{big|Unfortunately, XBMC was not selected as a GSoC mentor organization for 2014. }} }}
[[File:GSOC_2014_logo-blog.jpg‎|left|200px]]Welcome to the Kodi [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 Google Summer of Code] ideas page. <!--We are pleased to announce that we have been accepted as an official [http://www.google-melange.com/gsoc/org/google/gsoc2014/Kodi GSOC mentor organization this year].-->


[[File:GSOC_2014_logo-blog.jpg‎|left|200px]]Welcome to the XBMC [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 Google Summer of Code] ideas page. <!--We are pleased to announce that we have been accepted as an official [http://www.google-melange.com/gsoc/org/google/gsoc2014/xbmc GSOC mentor organization this year].-->
We encourage interested students to review some of the ideas on this page, and then feel free to provide input on any ideas you may have in the '''[http://forum.kodi.tv/forumdisplay.php?fid=207 Kodi GSoC subforum]''' and chat about any project you’d love to cover. To propose a project, see '''[[#Students Project Proposal Ideas]]'''.


We encourage interested students to review some of the ideas on this page, and then feel free to provide input on any ideas you may have in the '''[http://forum.xbmc.org/forumdisplay.php?fid=207 XBMC GSoC subforum]''' and chat about any project you’d love to cover. To propose a project, see '''[[#Students Project Proposal Ideas]]'''.
From '''10 March''' to '''21 March''', any interested students may apply at the [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 GSOC home page] to work with Kodi. After that, we’ll notify applicants whether we get to work with each other according to the [http://www.google-melange.com/gsoc/events/google/gsoc2014 GSOC schedule].
 
From '''10 March''' to '''21 March''', any interested students may apply at the [http://www.google-melange.com/gsoc/homepage/google/gsoc2014 GSOC home page] to work with XBMC. After that, we’ll notify applicants whether we get to work with each other according to the [http://www.google-melange.com/gsoc/events/google/gsoc2014 GSOC schedule].
{{-}}
{{-}}
{| width="100%"
{| width="100%"
Line 17: Line 15:
As there may be many students who have landed here as a result of GSOC, but are unfamiliar with the project, here are a few resources that may help explain what we are about.
As there may be many students who have landed here as a result of GSOC, but are unfamiliar with the project, here are a few resources that may help explain what we are about.


:XBMC is an award-winning free and open source (GPL) software media player and entertainment hub for digital media, designed around the 10-foot interface (living room) environment. Created in 2003 by a group of like minded programmers, XBMC is a non-profit project run and developed by volunteers located around the world. More than 50 software developers have contributed to XBMC, and 100-plus translators have worked to expand its reach, making it available in more than 40 languages. For more information, see the page [[XBMC Media Center]].
:Kodi is an award-winning free and open source (GPL) software media player and entertainment hub for digital media, designed around the 10-foot interface (living room) environment. Created in 2003 by a group of like minded programmers, Kodi is a non-profit project run and developed by volunteers located around the world. More than 50 software developers have contributed to Kodi, and 100-plus translators have worked to expand its reach, making it available in more than 40 languages. For more information, see the page [[Kodi Media Center]].


<br />
<br />
To get an idea of what XBMC is truly capable of, it really must be seen. Check out a few other user-created videos:<br />
To get an idea of what Kodi is truly capable of, it really must be seen. Check out a few other user-created videos:<br />
[http://www.youtube.com/watch?v=NcogPuSo-DU XBMC with the default Confluence skin]<br />  
[http://www.youtube.com/watch?v=NcogPuSo-DU Kodi with the default Confluence skin]<br />  
[http://www.youtube.com/watch?v=4asUCtE0ONU XBMC with Aeon Nox skin]<br />
[http://www.youtube.com/watch?v=4asUCtE0ONU Kodi with Aeon Nox skin]<br />
[http://www.youtube.com/watch?v=4NR57ELY28s XBMC on Raspberry Pi]<br />
[http://www.youtube.com/watch?v=4NR57ELY28s Kodi on Raspberry Pi]<br />
[http://www.youtube.com/watch?v=e_0PB5hfz_k XBMC's new PVR functionality]<br />
[http://www.youtube.com/watch?v=e_0PB5hfz_k Kodi's new PVR functionality]<br />
<br />
<br />


XBMC is written primarily in c++ and runs on a variety of platforms including Android, iOS, Linux, OS X, and Windows. It has been ported to work on several low-power platforms including the BeagleBoard, PandaBoard, AppleTv, AppleTV2, the [http://www.raspberrypi.org/archives/571 Raspberry Pi], and most recently [[Android]].
Kodi is written primarily in c++ and runs on a variety of platforms including Android, iOS, Linux, OS X, and Windows. It has been ported to work on several low-power platforms including the BeagleBoard, PandaBoard, AppleTv, AppleTV2, the [http://www.raspberrypi.org/archives/571 Raspberry Pi], and most recently [[Android]].


XBMC was a mentoring organization in [[Google Summer of Code 2008|2008]], [[Google Summer of Code 2012|2012]] and [[Google Summer of Code 2013|2013]], and had team members involved in GSoC for other projects in 2011.
Kodi was a mentoring organization in [[Google Summer of Code 2008|2008]], [[Google Summer of Code 2012|2012]] and [[Google Summer of Code 2013|2013]], and had team members involved in GSoC for other projects in 2011.


If XBMC is selected as a mentoring organization for 2014, students will need to review the Overview of a good project proposal, follow the outline for proposals when applying, and review the list of project ideas detailed below. Students are welcome to propose ideas outside the list and are encouraged to be as creative as they like.
If Kodi is selected as a mentoring organization for 2014, students will need to review the Overview of a good project proposal, follow the outline for proposals when applying, and review the list of project ideas detailed below. Students are welcome to propose ideas outside the list and are encouraged to be as creative as they like.


=== Mentors ===
=== Mentors ===
All mentors and backup mentors are extremely experienced in the XBMC codebase and will thus be able to assist students in getting to know the codebase and in quickly identifying projects that are both achievable for someone unfamiliar with the internal workings of XBMC and desirable to the wider XBMC community.
All mentors and backup mentors are extremely experienced in the Kodi codebase and will thus be able to assist students in getting to know the codebase and in quickly identifying projects that are both achievable for someone unfamiliar with the internal workings of Kodi and desirable to the wider Kodi community.


== Project Proposals ==
== Project Proposals ==
Line 43: Line 41:
* Based on open specs that are available free of charge
* Based on open specs that are available free of charge
* Based on complete specs
* Based on complete specs
An example of a good proposal is the implementation of a new feature or function that is not yet available in XBMC.
An example of a good proposal is the implementation of a new feature or function that is not yet available in Kodi.


An example of a less desirable proposal is one that's not as measurable, such as refactoring an existing API. Bad proposals tend to be ones that would require touching a lot of core code.
An example of a less desirable proposal is one that's not as measurable, such as refactoring an existing API. Bad proposals tend to be ones that would require touching a lot of core code.
Line 65: Line 63:
* '''Benefits:''' Who will benefit and why from this project. Think about what a user or developer may need or do to benefit from it. Why does it benefit many users.
* '''Benefits:''' Who will benefit and why from this project. Think about what a user or developer may need or do to benefit from it. Why does it benefit many users.
* '''Goals:''' What is the goal of the project, a project may not always solve the problem entirely as it may take to much time. Think hard about what can be accomplished during a summer with your skill and deduct that quite a bit. If the project can't be done after this perhaps its better to opt for a smaller one or one with subgoals.
* '''Goals:''' What is the goal of the project, a project may not always solve the problem entirely as it may take to much time. Think hard about what can be accomplished during a summer with your skill and deduct that quite a bit. If the project can't be done after this perhaps its better to opt for a smaller one or one with subgoals.
* '''What does it touch in XBMC:''' Think about what parts of the code this may touch, XBMC is a big application and a lot of the code is spread out and very complex. If a project touches to much it may be impossible to complete.
* '''What does it touch in Kodi:''' Think about what parts of the code this may touch, Kodi is a big application and a lot of the code is spread out and very complex. If a project touches to much it may be impossible to complete.
* '''Requirements:''' What is needed to complete the project, what code language knowledge what hardware etc.
* '''Requirements:''' What is needed to complete the project, what code language knowledge what hardware etc.
* '''Possible mentors:''' Place to add possible mentors (Team-XBMC will add this).  
* '''Possible mentors:''' Place to add possible mentors (Team-Kodi will add this).  
}}
}}


== Team-XBMC proposal ideas up for discussion ==
== Team-Kodi proposal ideas up for discussion ==




=== Web development ===
=== Web development ===
XBMC has grown greatly over the past several years from a standalone program with very little interaction with the outside world to a full platform in its own right, complete with hundreds of media-centric addons and means of communicating between machines. This year, we are particularly interested in students with a background in web development to work on projects that haven't received the focus they should, including...
Kodi has grown greatly over the past several years from a standalone program with very little interaction with the outside world to a full platform in its own right, complete with hundreds of media-centric addons and means of communicating between machines. This year, we are particularly interested in students with a background in web development to work on projects that haven't received the focus they should, including...


* '''New web interface -''' Virtually every aspect of XBMC can now be controlled through JSON-RPC, as can be seen by numerous apps on Google Play and the iOS store. However, the default web interface for controlling XBMC remains woefully old and featureless. A major step in eventually releasing a server version of XBMC would require a new, fully functional web interface. Students with a background in web development are encouraged to review the JSON-RPC code and submit ideas for this project.
* '''New web interface -''' Virtually every aspect of Kodi can now be controlled through JSON-RPC, as can be seen by numerous apps on Google Play and the iOS store. However, the default web interface for controlling Kodi remains woefully old and featureless. A major step in eventually releasing a server version of Kodi would require a new, fully functional web interface. Students with a background in web development are encouraged to review the JSON-RPC code and submit ideas for this project.


* '''Further development of the add-ons browser/showcase -''' The current addon browser found at addons.xbmc.org lacks many of the features of found in other major app stores, including a dev portal, ratings, comments, and more. Additionally, there is no current method for installing an addon into XBMC from the Addon Browser website. A review of some particularly excellent addon sites, such as [https://addons.mozilla.org/en-US/firefox/ Add-ons for Firefox], may be of benefit. Students are encouraged to submit proposals for improvements along any these categories and more. Creativity in this area is highly encouraged.
* '''Further development of the add-ons browser/showcase -''' The current addon browser found at addons.kodi.tv lacks many of the features of found in other major app stores, including a dev portal, ratings, comments, and more. Additionally, there is no current method for installing an addon into Kodi from the Addon Browser website. A review of some particularly excellent addon sites, such as [https://addons.mozilla.org/en-US/firefox/ Add-ons for Firefox], may be of benefit. Students are encouraged to submit proposals for improvements along any these categories and more. Creativity in this area is highly encouraged.


=== Build tools projects ===
=== Build tools projects ===
* '''Cmake build system -'''
* '''Cmake build system -'''
** Make a cmake build system for binary add-ons for the various XBMC platforms, using the work done in Linux as a guide.
** Make a cmake build system for binary add-ons for the various Kodi platforms, using the work done in Linux as a guide.
** Create/Extend a template system for quick and easy adding of new addons compatible with all xbmc platforms and port at least 1 addon to them (e.g. pvr.demo or any of the XBMC screensavers).
** Create/Extend a template system for quick and easy adding of new addons compatible with all Kodi platforms and port at least 1 addon to them (e.g. pvr.demo or any of the Kodi screensavers).


=== Code-base improvements ===
=== Code-base improvements ===
This summer, in addition to the traditional big, new feature focus, we'd also like to focus on some features that don't always get a lot of attention. Namely, usability features. Typically these are things that require a lot of creativity and varying degrees of code. Sometimes, they can act as a complete paradigm shift from business as usual. Below are a few ideas in this category...
This summer, in addition to the traditional big, new feature focus, we'd also like to focus on some features that don't always get a lot of attention. Namely, usability features. Typically these are things that require a lot of creativity and varying degrees of code. Sometimes, they can act as a complete paradigm shift from business as usual. Below are a few ideas in this category...


* '''Accessibility -''' Improve XBMC to be more useable for the visually impaired. Possibly in relation to XBMC's [[JSON-RPC]] support, in order to interface with screen readers and allow for alternative ways of setting up XBMC. Other ideas include such things as a large-font skin with easy to see colors, and other user interface element improvements needed for the those with partial sight. See [http://forum.xbmc.org/showthread.php?tid=184505 this thread] for discussion.
* '''Accessibility -''' Improve Kodi to be more useable for the visually impaired. Possibly in relation to Kodi's [[JSON-RPC]] support, in order to interface with screen readers and allow for alternative ways of setting up Kodi. Other ideas include such things as a large-font skin with easy to see colors, and other user interface element improvements needed for the those with partial sight. See [http://forum.kodi.tv/showthread.php?tid=184505 this thread] for discussion.
* '''Menu-less control -''' Control every screen and item in XBMC without relying on a context menu button.
* '''Menu-less control -''' Control every screen and item in Kodi without relying on a context menu button.
* '''Music library improvements -''' Unify the handling of the music and video libraries.
* '''Music library improvements -''' Unify the handling of the music and video libraries.
* '''Key indicators -''' Many UIs include a toolbar that lists what buttons perform what actions, as well as in-action indicators (see e.g. the Elder Scrolls V: Skyrim UI). Implement such a system using XBMC's default Confluence skin.
* '''Key indicators -''' Many UIs include a toolbar that lists what buttons perform what actions, as well as in-action indicators (see e.g. the Elder Scrolls V: Skyrim UI). Implement such a system using Kodi's default Confluence skin.
* '''Parental controls -''' XBMC's current [[master lock|lock]] methods and [[profile]] support is very easy to bypass and leaves much to be desired. Implement parental controls without relying on the current profiles hack, in order to restrict content based on ratings or other methods.
* '''Parental controls -''' Kodi's current [[master lock|lock]] methods and [[profile]] support is very easy to bypass and leaves much to be desired. Implement parental controls without relying on the current profiles hack, in order to restrict content based on ratings or other methods.


=== More ===
=== More ===
We feel it is important to note that, while we are interested in a focus on the listed three areas, we would like to stress passion, expertise, and creativity above all else. If you would like to do something completely different, like create a Game Library to match the existing Movie, TV, and Music libraries and complement [http://forum.xbmc.org/forumdisplay.php?fid=194 Retroplayer], definitely send in that proposal. The ideas listed above are, as always, merely suggestions. We will be interested in any idea, so long as you can communicate your interest, your background, and your solution the problem.
We feel it is important to note that, while we are interested in a focus on the listed three areas, we would like to stress passion, expertise, and creativity above all else. If you would like to do something completely different, like create a Game Library to match the existing Movie, TV, and Music libraries and complement [http://forum.kodi.tv/forumdisplay.php?fid=194 Retroplayer], definitely send in that proposal. The ideas listed above are, as always, merely suggestions. We will be interested in any idea, so long as you can communicate your interest, your background, and your solution the problem.


== Students project proposal ideas ==
== Students project proposal ideas ==


Submit your own proposals on the '''[http://forum.xbmc.org/forumdisplay.php?fid=207 XBMC GSOC 2014 forum]'''. They can be as big or as small as you feel you can comfortably accomplish between '''19 May''' and '''18 August'''. In the end, it's better to have a smaller, completed project, rather than a larger, incomplete project.
Submit your own proposals on the '''[http://forum.kodi.tv/forumdisplay.php?fid=207 Kodi GSOC 2014 forum]'''. They can be as big or as small as you feel you can comfortably accomplish between '''19 May''' and '''18 August'''. In the end, it's better to have a smaller, completed project, rather than a larger, incomplete project.


To submit a proposal idea:
To submit a proposal idea:
# Copy the text from '''[[#Outline for proposals]]'''.
# Copy the text from '''[[#Outline for proposals]]'''.
# Create a new forum post '''[http://forum.xbmc.org/forumdisplay.php?fid=207 here]''' and paste the text.
# Create a new forum post '''[http://forum.kodi.tv/forumdisplay.php?fid=207 here]''' and paste the text.
# Fill out everything using your specific proposal.
# Fill out everything using your specific proposal.




[[Category:Google Summer of Code]]
[[Category:Google Summer of Code]]

Revision as of 02:19, 19 February 2015

Home icon grey.png   ▶ Google Summer of Code ▶ 2015
GSOC 2014 logo-blog.jpg

Welcome to the Kodi Google Summer of Code ideas page.

We encourage interested students to review some of the ideas on this page, and then feel free to provide input on any ideas you may have in the Kodi GSoC subforum and chat about any project you’d love to cover. To propose a project, see #Students Project Proposal Ideas.

From 10 March to 21 March, any interested students may apply at the GSOC home page to work with Kodi. After that, we’ll notify applicants whether we get to work with each other according to the GSOC schedule.

About Us

As there may be many students who have landed here as a result of GSOC, but are unfamiliar with the project, here are a few resources that may help explain what we are about.

Kodi is an award-winning free and open source (GPL) software media player and entertainment hub for digital media, designed around the 10-foot interface (living room) environment. Created in 2003 by a group of like minded programmers, Kodi is a non-profit project run and developed by volunteers located around the world. More than 50 software developers have contributed to Kodi, and 100-plus translators have worked to expand its reach, making it available in more than 40 languages. For more information, see the page Kodi Media Center.


To get an idea of what Kodi is truly capable of, it really must be seen. Check out a few other user-created videos:
Kodi with the default Confluence skin
Kodi with Aeon Nox skin
Kodi on Raspberry Pi
Kodi's new PVR functionality

Kodi is written primarily in c++ and runs on a variety of platforms including Android, iOS, Linux, OS X, and Windows. It has been ported to work on several low-power platforms including the BeagleBoard, PandaBoard, AppleTv, AppleTV2, the Raspberry Pi, and most recently Android.

Kodi was a mentoring organization in 2008, 2012 and 2013, and had team members involved in GSoC for other projects in 2011.

If Kodi is selected as a mentoring organization for 2014, students will need to review the Overview of a good project proposal, follow the outline for proposals when applying, and review the list of project ideas detailed below. Students are welcome to propose ideas outside the list and are encouraged to be as creative as they like.

Mentors

All mentors and backup mentors are extremely experienced in the Kodi codebase and will thus be able to assist students in getting to know the codebase and in quickly identifying projects that are both achievable for someone unfamiliar with the internal workings of Kodi and desirable to the wider Kodi community.

Project Proposals

Overview

Qualifications for a good Summer of Code proposal:

  • Discrete, well-defined, modular
  • Comprised of a series of measurable sub-goals
  • Based on open specs that are available free of charge
  • Based on complete specs

An example of a good proposal is the implementation of a new feature or function that is not yet available in Kodi.

An example of a less desirable proposal is one that's not as measurable, such as refactoring an existing API. Bad proposals tend to be ones that would require touching a lot of core code.

To re-iterate:

  • Localized/isolated code projects = good
  • Global code refactoring = bad
  • A project should have a set of subgoals, so even if the end goal turns out to be too big some of the parts will be of benefit.
  • Not too big! This is an important problem when choosing a project, while it is fun to think about solving a grand project its not always realistic. Its better to finish a smaller project than to start a grand one.


Outline for proposals

Team-Kodi proposal ideas up for discussion

Web development

Kodi has grown greatly over the past several years from a standalone program with very little interaction with the outside world to a full platform in its own right, complete with hundreds of media-centric addons and means of communicating between machines. This year, we are particularly interested in students with a background in web development to work on projects that haven't received the focus they should, including...

  • New web interface - Virtually every aspect of Kodi can now be controlled through JSON-RPC, as can be seen by numerous apps on Google Play and the iOS store. However, the default web interface for controlling Kodi remains woefully old and featureless. A major step in eventually releasing a server version of Kodi would require a new, fully functional web interface. Students with a background in web development are encouraged to review the JSON-RPC code and submit ideas for this project.
  • Further development of the add-ons browser/showcase - The current addon browser found at addons.kodi.tv lacks many of the features of found in other major app stores, including a dev portal, ratings, comments, and more. Additionally, there is no current method for installing an addon into Kodi from the Addon Browser website. A review of some particularly excellent addon sites, such as Add-ons for Firefox, may be of benefit. Students are encouraged to submit proposals for improvements along any these categories and more. Creativity in this area is highly encouraged.

Build tools projects

  • Cmake build system -
    • Make a cmake build system for binary add-ons for the various Kodi platforms, using the work done in Linux as a guide.
    • Create/Extend a template system for quick and easy adding of new addons compatible with all Kodi platforms and port at least 1 addon to them (e.g. pvr.demo or any of the Kodi screensavers).

Code-base improvements

This summer, in addition to the traditional big, new feature focus, we'd also like to focus on some features that don't always get a lot of attention. Namely, usability features. Typically these are things that require a lot of creativity and varying degrees of code. Sometimes, they can act as a complete paradigm shift from business as usual. Below are a few ideas in this category...

  • Accessibility - Improve Kodi to be more useable for the visually impaired. Possibly in relation to Kodi's JSON-RPC support, in order to interface with screen readers and allow for alternative ways of setting up Kodi. Other ideas include such things as a large-font skin with easy to see colors, and other user interface element improvements needed for the those with partial sight. See this thread for discussion.
  • Menu-less control - Control every screen and item in Kodi without relying on a context menu button.
  • Music library improvements - Unify the handling of the music and video libraries.
  • Key indicators - Many UIs include a toolbar that lists what buttons perform what actions, as well as in-action indicators (see e.g. the Elder Scrolls V: Skyrim UI). Implement such a system using Kodi's default Confluence skin.
  • Parental controls - Kodi's current lock methods and profile support is very easy to bypass and leaves much to be desired. Implement parental controls without relying on the current profiles hack, in order to restrict content based on ratings or other methods.

More

We feel it is important to note that, while we are interested in a focus on the listed three areas, we would like to stress passion, expertise, and creativity above all else. If you would like to do something completely different, like create a Game Library to match the existing Movie, TV, and Music libraries and complement Retroplayer, definitely send in that proposal. The ideas listed above are, as always, merely suggestions. We will be interested in any idea, so long as you can communicate your interest, your background, and your solution the problem.

Students project proposal ideas

Submit your own proposals on the Kodi GSOC 2014 forum. They can be as big or as small as you feel you can comfortably accomplish between 19 May and 18 August. In the end, it's better to have a smaller, completed project, rather than a larger, incomplete project.

To submit a proposal idea:

  1. Copy the text from #Outline for proposals.
  2. Create a new forum post here and paste the text.
  3. Fill out everything using your specific proposal.