Task ideas for Google Code-in
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:
- 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.
- 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.
|research||Join us on IRC||Use an IRC client to log onto our IRC channel and stick around for four hours.||yes||40|
|code, quality||Increase test coverage of begiak, our IRC bot, by at least 10%||There are many modules without any tests at all, unfortunately. See the associated GitHub issue for more details and discussion.||python, bot||sushain, JNW||no||4||4|
|code||Update the awikstats module of begiak, our IRC bot, for GitHub||There are a couple steps remaining for this process, mostly small modifications to the existing code which are enumerated in the associated GitHub issue which also contains more context and discussion.||python, bot||sushain, JNW||no|
|code||Add GitHub issue creation functionality to begiak, our IRC bot||Ideally, this would be added to an existing module. If that doesn't make sense, a new module is acceptable as well. The associated GitHub issue includes an example of the command's usage and reply.||python, github, bot||sushain, JNW||no|
|code||Support GitHub modules in apertium-get||Unfortunately, the transition to GitHub from SVN made it so this script which is very handy for downloading an Apertium language/pair doesn't fetch the newest packages anymore. This also means that beta.apertium.org is out of date. See the associated GitHub issue issue for more details and discussion.||bash, github||sushain||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||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|
|code||Support unicode without escape sequences in apertium.org's API (APy)||Currently, HTTP responses with unicode characters are emitted as \uNNNN by the Apertium API. Ideally, the character could just be decoded. See the associated GitHub issue for more details and discussion.||python, api, unicode, json, api, http||sushain||no|
|documentation||Add a Swagger/OpenAPI specification for apertium.org's API (APy)||There's been some work towards this already but it's outdated. This task requires updating it and for bonus points ensuring at build time that all paths are minimally present in the Swagger spec. Furthermore, it would be awesome if a simple HTTP page could be made that loads the spec (e.g. this page for another service). See the associated GitHub issue for more details and discussion.||python, api, http, openapi, swagger||sushain||no|