= Google Code-in Ideas 2016 = This is the brainstorm page for the [https://developers.google.com/open-source/gci/ Google Code-In] programme for 2016. As such some or many of these may not end up being in our final released list of tasks that end up in Google Code-In. '''If you are a student, DO NOT start working on these ahead of time as they are ALL subject to change.''' Our aim for this year will be to help bring Haiku closer to a Beta 1 release. This will be a good chance for you to see your work end up in a released product! We hope to have a large number of fun tasks this year. Whether this is your first time learning about Haiku, or your second or third time competing in the Code-In, we will have tasks suited to a variety of skill levels. For Haiku Users and Developers, this is your chance to suggest some task ideas that students would be able to complete in about 2-4 hours of work time spread out over a few days. You can suggest bigger tasks, but they should be ones such that they could be broken down into smaller parts that fit this 2-4 hour timeline. == General Information == Google has announced that they are going to hold Google Code-In 2016 as disclosed [https://opensource.googleblog.com/2016/10/announcing-google-code-in-2016-and.html in this blog post]. If you are interested in submitting an idea for a task then you can make one [https://discuss.haiku-os.org/t/ideas-for-gci-2016/ by posting on this topic in our forum]. For students interested in participating in Google Code-In 2016 be sure to read through Google's [https://developers.google.com/open-source/gci/resources/getting-started Getting Started Guide]. == 1. Code: Tasks related to writing or refactoring code == For coding tasks students should make sure to follow [https://www.haiku-os.org/development/coding-guidelines Haiku's coding guidelines]. === 1.1 Code an app for Haiku (including multi-part tasks) === ||Example task||Example Skills||Example link|| ||Code a Password Manager using Haiku's BKeystore||UI design, C++||[https://en.wikipedia.org/wiki/Seahorse_(software) Seahorse], [https://dev.haiku-os.org/ticket/12812 Haiku ticket on subject]|| ||Code a Graphical version control system Frontend||UI design, C++,git,hg,svn||[https://www.sourcetreeapp.com Atlassian Sourcetree], [https://tortoisegit.org TortoiseGit]|| ||Code a simple Photo post-production app (red eye remover)||UI design, C++|| || ||Code an Advanced Download Manager|| ||[http://www.igetter.net/iGetter.html iGetter]|| ||Code a Music Manager that takes advantage of metadata|| ||[https://github.com/HaikuArchives/CherryBlossom CherryBlossom], [http://cgit.haiku-os.org/haiku/tree/src/apps/musiccollection MusicCollection]|| ||Code a Personal Calendar|| ||[https://en.wikipedia.org/wiki/Calendar_(Apple) Apple Calendar]|| ||Code a Graphical Profiler/Tracer|| ||KCachegrind, AMD CodeAnalyst, Stackify|| ||Code a Graphical Crash Reporter|| ||Apple Crash Reporter, Goolge Breakpad (MIT)|| ||Code a graphical interface for Haiku's RemoteDesktop|| ||[https://www.haiku-os.org/node/6007 RemoteDesktop]|| ||Code a ScreenReader for Haiku|| ||[https://dev.haiku-os.org/ticket/12804 Haiku ticket on subject] ||Code a graphical event/syslog viewer|| ||[https://dev.haiku-os.org/ticket/12816 Ticket on subject]|| ||Code a speech recognition app|| ||[https://dev.haiku-os.org/ticket/12819 Ticket on subject]|| ||Code a Haiku notification Center|| ||[https://dev.haiku-os.org/ticket/12809 Ticket on subject]|| ||Code a Currency Converter|| || || ||Code a system Dictionary|| || || ||Code a vector graphics editor (reuse Icon-O-Matic code)|| || || ||Code a CountDown/StopWatch/TimeZoneCheck app|| || || ||Code a Action Automation app|| ||Xnee, Apple Automator, Automise|| ||Code a Video Manager|| || || ||Code a Subtitle Editor|| ||Gnome Subtitles|| ||Code a Hardware compatibility analysis app||C++, Python||[https://github.com/DarkmatterVale/Haiku-Configuration-Repo to be used with this web app] === 1.2 Develop a web app, a plugin or fix a issue related to Haiku's web infrastructure === ||Example task||Example Skills||Example link|| ||Fix a bug in our web app that records hardware compatibility|| ||[https://github.com/DarkmatterVale/Haiku-Configuration-Repo Codebase on Github]|| ||Fix a bug in our documentation translation tool|| ||[https://dev.haiku-os.org/query?status=assigned&status=in-progress&status=new&status=reopened&type=%5E&component=%5EWebsite%2FUser+Documentation+Translator tickets on trac]|| ||Fix a bug in our copy of Pootle|| ||[https://dev.haiku-os.org/query?status=assigned&status=in-progress&status=new&status=reopened&type=%5E&component=%5EWebsite%2Fi18n.haiku-os.org tickets on trac] === 1.3 Refactor, clean up or improve Haiku code === ||Example task||Example Skills||Example link|| ||Fix a issue in Mail|| ||[SoftwareInfo/Applications/EmailClient Wiki page on Mail]|| ||Fix a issue in Beam|| ||[SoftwareInfo/Applications/EmailClient Wiki page on Beam]|| === 1.4 Fix a broken recipe in haikuports === Many recipes on Haikuports need to be updated to the current format. We are working on bots to autobuild all of these, but there is a lot of work that needs to be done in order for those to work smoothly. This is one place we could use much help, as it is one of the big blockers to the upcoming Beta1 release. === 1.5 Fix bug listed in Haiku's Trac === Lots of open issues, we will post tasks for specific open Haiku issues. === 1.6 Fix bugs or add features to the various Haiku Apps hosted at Haiku Archives === [https://github.com/HaikuArchives] [[br]]150+ Haiku applications, many with open bug reports you can try fixing. Here are some examples: * [https://github.com/HaikuArchives/Pe/issues] * [https://github.com/HaikuArchives/Weather/issues] * [https://github.com/HaikuArchives/BePDF/issues] * [https://github.com/HaikuArchives/ArmyKnife/issues] === 1.7 Fix issues reported by Coverity === [https://dev.haiku-os.org/wiki/Coverity] == 2.0 Documentation/Training == Tasks related to creating/editing documents and helping others learn more. ||Write an article on how to use unit tests when developing Haiku||English||[https://dev.haiku-os.org/ticket/12249 Ticket on subject]|| === 2.1 Learn to program with Haiku === Work through the Haiku programming books learning how to program in C++ as you go. === 2.2 Write a new lession for the programming with Haiku books === Write a lesson covering a Haiku related topic that isn't already covered in the book(s). == 3.0 Outreach/Research == Tasks related to community management, outreach/marketing, or studying problems and recommending solutions. ||Example task||Example Skills||Example link|| ||Research the current states of the Scooby codebase|| ||[SoftwareInfo/Applications/EmailClient Wiki page on Scooby]|| ||Investigate Trac-Buildbot intergration ||Python, html||[https://dev.haiku-os.org/ticket/11415 Ticket on subject]|| == 4.0 Quality Assurance == Tasks related to testing and ensuring code is of high quality. === 4.1 Test builds of Haiku on various hardware and see if certain issues still exist or not === [[BR]]Examples: * [https://dev.haiku-os.org/ticket/9404] * [https://dev.haiku-os.org/ticket/9833] * [https://dev.haiku-os.org/ticket/5779] * == 5.0 User Interface == Tasks related to user experience research or user interface design and interaction === 5.1 Improve UI on old BeOS/Haiku apps === Convert old BeOS/Haiku programs from Haiku Archives to use layout management and improve the UI, see 1.6 * [https://github.com/HaikuArchives/Hare/issues/1] * [https://github.com/HaikuArchives/ArmyKnife/issues/5] * [https://github.com/HaikuArchives/ArmyKnife/issues/3] * [https://github.com/HaikuArchives/ArmyKnife/issues/1]