Difference between revisions of "Task ideas for Google Code-in"

From Apertium
Jump to navigation Jump to search
(→‎Task ideas: reformat, this is driving me absolutely insane)
(Add more tasks)
Line 107: Line 107:
   
 
{{Taskidea
 
{{Taskidea
|type=research
+
|type=code
  +
|title=Use SWIG or equivalent to add C++ bindings for text analysis in [https://github.com/apertium/apertium-python apertium-python]
|title=document how to install the [[API for python]]
 
  +
|description=Currently, apertium-python just pipes text through the binaries in each [[mode]] file. We would like to directly execute the associated C++ function instead. See the associated [https://github.com/apertium/apertium-python/issues/16 GitHub issue] for more details and discussion.
|description=
 
|tags=
+
|tags=python, c++, swig
|mentors=
+
|mentors=sushain
  +
|beginner=no
  +
}}
  +
  +
{{Taskidea
  +
|type=code
  +
|title=Integrate [https://github.com/hfst/python HFST's C++ Python] bindings into [https://github.com/apertium/apertium-python apertium-python]
  +
|description=Currently, apertium-python just pipes text through the binaries in each [[mode]] file. Where appropriate, i.e. a mode accesses HFST binaries, we would like to directly execute the associated C++ function instead.
  +
|tags=python, c++, swig
  +
|mentors=sushain
  +
|beginner=no
  +
}}
  +
  +
{{Taskidea
  +
|type=code
  +
|title=Improve the [https://github.com/apertium/apertium-python apertium-python] Windows installation process
  +
|description=Currently, apertium-python requires a complex installation process for Windows (and Linux). The goal is something that works out-of-the-box with pip. See the associated [https://github.com/apertium/apertium-python/issues/6 GitHub issue] for more details and discussion.
  +
|tags=python, windows
  +
|mentors=sushain
  +
|beginner=no
  +
}}
  +
  +
{{Taskidea
  +
|type=documentation, code
  +
|title=Setup documentation generation for [https://github.com/apertium/apertium-python apertium-python]
  +
|description=Currently, there are some docstrings attached to functions and constants. This task requires setting up Sphinx/readthedocs for apertium-python so these docs are easily accessible. Types should also be visible and documentation should support being written in Markdown, not RST. See the associated [https://github.com/apertium/apertium-python/issues/4 GitHub issue] for more details and discussion.
  +
|tags=python, sphinx
  +
|mentors=sushain
  +
|beginner=no
  +
}}
  +
  +
{{Taskidea
  +
|type=code
  +
|title=Upgrade apertium.org ([[html-tools]]) to Bootstrap 4
  +
|description=Currently, we are on a frankensteined version of Bootstrap 3. See the associated [https://github.com/apertium/apertium-html-tools/issues/200 GitHub issue] for more details and discussion. Note that the [https://github.com/apertium/apertium-html-tools/issues/314 frankenstein'd CSS] will likely need to be fixed and theme support should be retained (should be simple).
  +
|tags=javascript, css, web, bootstrap
  +
|mentors=sushain
  +
|beginner=no
  +
}}
  +
  +
{{Taskidea
  +
|type=code, quality
  +
|title=Get apertium.org ([[html-tools]]) QUnit testing coverage working
  +
|description=Currently, we have a QUnit testing framework mostly complete. There are some fixes that need to be made in discussion with the mentor and existing comments and JS coverage checking needs to be added so that we can burn down existing debt. See the associated [https://github.com/apertium/apertium-html-tools/pull/268 GitHub PR] for more details and discussion.
  +
|tags=javascript, jquery, web
  +
|mentors=sushain
  +
|beginner=no
  +
}}
  +
  +
{{Taskidea
  +
|type=code, quality
  +
|title=Fix/prevent apertium.org ([[html-tools]])'s recursive website translation
  +
|description=Currently, if you try translating Apertium's website with Apertium's website, bad things happen. This 'exploit' is also possible through mutual recursion with another site that offers similar behavior. See the associated [https://github.com/apertium/apertium-html-tools/issues/203 GitHub issue] for more details and discussion.
  +
|tags=javascript, jquery, web, bootstrap
  +
|mentors=sushain
  +
|beginner=no
  +
}}
  +
  +
{{Taskidea
  +
|type=code
  +
|title=Convert apertium.org's API ([[APy]])'s language name storage from SQL to TSV
  +
|description=Currently, language names that power part of the Apertium HTTP API are stored and updated in SQL. It would be nice if they were stored in a more human readable format like TSV and the SQLite were generated at build time. See the associated [https://github.com/apertium/apertium-apy/issues/115 GitHub issue] for more details and discussion.
  +
|tags=python, sql, tsv
  +
|mentors=sushain
 
|beginner=no
 
|beginner=no
 
}}
 
}}

Revision as of 20:05, 11 September 2018

Contents

This is the task ideas page for Google Code-in, here you can find ideas on interesting tasks that will improve your knowledge of Apertium and help you get into the world of open-source development.

The people column lists people who you should get in contact with to request further information. All tasks are 2 hours maximum estimated amount of time that would be spent on the task by an experienced developer, however:

  1. this is the time expected to take by an experienced developer, you may find that you spend more time on the task because of the learning curve.

Categories:

  • code: Tasks related to writing or refactoring code
  • documentation: Tasks related to creating/editing documents and helping others learn more
  • research: Tasks related to community management, outreach/marketting, or studying problems and recommending solutions
  • quality: Tasks related to testing and ensuring code is of high quality.
  • design: Tasks related to user experience research or user interface design and interaction

Clarification of "multiple task" types

  • multi = number of students who can do a given task
  • dup = number of times a student can do the same task

You can find descriptions of some of the mentors here.

Task ideas

typetitledescriptiontagsmentorsbgnr?multi?duplicates
research Join us on IRC Use an IRC client to log onto our IRC channel and stick around for four hours. yes 40
code make source browser headings sticky at bottom of window Make headings that are out of view (either below when at the top, or above when scrolled down) sticky on Apertium source browser, so that it's clear what other headings exist. There is a github issue for this. css, javascript sushain, JNW no
code fix any open issue with our IRC bot Fix any open issue with begiak, our IRC bot. python sushain, JNW no
code fix any open issue with UD Annotatrix Fix any open issue with UD Annotatrix. css, javascript, node kmurphy?, JNW no
code install Apertium and check that it works bash ftyers, JNW yes 150
research Write a contrastive grammar Document 6 differences between two (preferably related) languages and where they would need to be addressed in the Apertium pipeline (morph analysis, transfer, etc). Use a grammar book/resource for inspiration. Each difference should have no fewer than 3 examples. Put your work on the Apertium wiki under Language1_and_Language2/Contrastive_grammar. See Farsi_and_English/Pending_tests for an example of a contrastive grammar that a previous GCI student made. wiki, languages Mikel yes 40
quality Add 200 new entries to a bidix to language pair %AAA%-%BBB% Our translation systems require large lexicons so as to provide production-quality coverage of any input data. This task requires the student to add 200 new words to a bidirectional dictionary. xml, dictionaries, svn Mikel yes yes
quality Disambiguate 500 tokens of text in %AAA% Run some text through a morphological analyser and disambiguate the output. Contact the mentor beforehand to approve the choice of language and text. disambiguation, svn Mikel yes
code Use SWIG or equivalent to add C++ bindings for text analysis in apertium-python Currently, apertium-python just pipes text through the binaries in each mode file. We would like to directly execute the associated C++ function instead. See the associated GitHub issue for more details and discussion. python, c++, swig sushain no
code Integrate HFST's C++ Python bindings into apertium-python Currently, apertium-python just pipes text through the binaries in each mode file. Where appropriate, i.e. a mode accesses HFST binaries, we would like to directly execute the associated C++ function instead. python, c++, swig sushain no
code Improve the apertium-python Windows installation process Currently, apertium-python requires a complex installation process for Windows (and Linux). The goal is something that works out-of-the-box with pip. See the associated GitHub issue for more details and discussion. python, windows sushain no
documentation, code Setup documentation generation for apertium-python Currently, there are some docstrings attached to functions and constants. This task requires setting up Sphinx/readthedocs for apertium-python so these docs are easily accessible. Types should also be visible and documentation should support being written in Markdown, not RST. See the associated GitHub issue for more details and discussion. python, sphinx sushain no
code Upgrade apertium.org (html-tools) to Bootstrap 4 Currently, we are on a frankensteined version of Bootstrap 3. See the associated GitHub issue for more details and discussion. Note that the frankenstein'd CSS will likely need to be fixed and theme support should be retained (should be simple). javascript, css, web, bootstrap sushain no
code, quality Get apertium.org (html-tools) QUnit testing coverage working Currently, we have a QUnit testing framework mostly complete. There are some fixes that need to be made in discussion with the mentor and existing comments and JS coverage checking needs to be added so that we can burn down existing debt. See the associated GitHub PR for more details and discussion. javascript, jquery, web sushain no
code, quality Fix/prevent apertium.org (html-tools)'s recursive website translation Currently, if you try translating Apertium's website with Apertium's website, bad things happen. This 'exploit' is also possible through mutual recursion with another site that offers similar behavior. See the associated GitHub issue for more details and discussion. javascript, jquery, web, bootstrap sushain no
code Convert apertium.org's API (APy)'s language name storage from SQL to TSV Currently, language names that power part of the Apertium HTTP API are stored and updated in SQL. It would be nice if they were stored in a more human readable format like TSV and the SQLite were generated at build time. See the associated GitHub issue for more details and discussion. python, sql, tsv sushain no