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

From Apertium
Jump to navigation Jump to search
Line 25: Line 25:
 
== Task ideas ==
 
== Task ideas ==
   
  +
See [[Talk:Task ideas for Google Code-in]] for task ideas from previous years.
<table class="sortable wikitable" style="display: none"> <!-- "Be sure that the link of sample tasks you sent as part of your application is not public on your page right now." -->
 
<tr><th>type</th><th>title</th><th>description</th><th>tags</th><th>mentors</th><th>bgnr?</th><th>multi?</th><th>duplicates</th></tr>
 
 
{{Taskidea
 
|type=research
 
|title=Join us on IRC
 
|description=Use an IRC client to log onto our IRC channel and stick around for four hours.
 
|tags=irc
 
|mentors=*
 
|multi=150
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=research, quality
 
|title=Adopt a Wiki page
 
|description=Request for an Apertium Wiki account and adopt a Wiki page by updating and fixing any issues with it.
 
|tags=wiki
 
|mentors=*
 
|multi=150
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=code, design
 
|title=Make source browser headings sticky at bottom of window
 
|description=Make headings that are out of view (either below when at the top, or above when scrolled down) sticky on [https://apertium.github.io/apertium-on-github/source-browser.html Apertium source browser], so that it's clear what other headings exist. There is a [https://github.com/apertium/apertium-on-github/issues/22 github issue for this].
 
|tags=css, javascript, html, web
 
|mentors=sushain, JNW, xavivars, shardulc
 
|multi=
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, quality
 
|title=Increase test coverage of [[begiak]], our IRC bot, by at least 10%
 
|description=There are many modules without any tests at all, unfortunately. See the associated [https://github.com/apertium/phenny/issues/348 GitHub issue] for more details and discussion.
 
|tags=python, bot
 
|mentors=sushain, JNW, wei2912, Josh, shardulc
 
|multi=4
 
|dup=4
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Improve the .logs command of [[begiak]], our IRC bot
 
|description=Currently, the .logs command just links to the root logs. Ideally, it would link to the channel specific logs, support a time being handed to it and have tests. See the associated [https://github.com/apertium/phenny/issues/435 GitHub issue] for more details and discussion.
 
|tags=python, bot
 
|mentors=sushain, JNW, wei2912, Josh, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Update the awikstats module of [[begiak]], our IRC bot, for GitHub
 
|description=There are a couple steps remaining for this process, mostly small modifications to the existing code which are enumerated in the associated [https://github.com/apertium/phenny/issues/389 GitHub issue] which also contains more context and discussion.
 
|tags=python, bot
 
|mentors=sushain, JNW, wei2912, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, research
 
|title=Research and propose a flood control system for [[begiak]], our IRC bot
 
|description=Begiak often floods the channel with notifications from modules such as git. Compile a list of modules which flood Begiak, write a mini-report on the associated [https://github.com/apertium/phenny/issues/159 GitHub issue] and propose changes to be made to the modules. For each module, there should be an issue created with a list of proposed changes, referenced from the main issue. The issue should be added to the associated [https://github.com/apertium/phenny/projects/1 GitHub project].
 
|tags=python, bot
 
|mentors=sushain, JNW, wei2912, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, research, quality
 
|title=Clean up obsolete modules for [[begiak]], our IRC bot
 
|description=Refer to the associated [https://github.com/apertium/phenny/issues/436 GitHub issue] for more details. After this task, the list of modules on [http://wiki.apertium.org/wiki/Begiak Begiak's wiki page] should be updated.
 
|tags=python, bot, wiki
 
|mentors=sushain, JNW, wei2912, shardulc
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Add GitHub issue creation functionality to [[begiak]], our IRC bot
 
|description=Ideally, this would be added to an existing module. If that doesn't make sense, a new module is acceptable as well. The associated [https://github.com/apertium/phenny/issues/433 GitHub issue] includes an example of the command's usage and reply.
 
|tags=python, github, bot
 
|mentors=sushain, JNW, wei2912, Josh, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Support GitHub modules in [[apertium-get]]
 
|description=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 [https://github.com/apertium/apertium-get/issues/7 GitHub issue] issue for more details and discussion.
 
|tags=bash, github
 
|mentors=sushain, Unhammer, wei2912, Josh, xavivars, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, quality
 
|title=Add default CI configs to Apertium packages via [[Apertium-init]]
 
|description=Currently, some Apertium pairs/language modules use CI but it's very inconsistent and doesn't come by default. Apertium-init is the official way to bootstrap a new Apertium package so if it came with CI support by default, that would be great. See the associated [https://github.com/apertium/apertium-init/issues/51 GitHub issue] issue for more details and discussion.
 
|tags=ci, circleci, yaml
 
|mentors=sushain, Unhammer, wei2912, xavivars, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Ensure XML produced by [[Apertium-init]] has consistent XML declarations
 
|description=Currently, some XML produced by [[Apertium-init]], a script which allows bootstrapping Apertium packages easily, has declarations and some doesn't. Moreover, the declarations are sometimes inconsistent. All XML files should have the same declaration. Note that not all of the XML files in [[Apertium-init]] use the .xml file extension. See the associated [https://github.com/apertium/apertium-init/issues/49 GitHub issue] issue for more details and discussion.
 
|tags=xml, python
 
|mentors=sushain, Unhammer, wei2912, xavivars
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=code, quality
 
|title=Make [[Apertium-init]]'s default Makefiles and config files pass make distcheck
 
|description=Currently, the distcheck target for packages created with [[Apertium-init]], a script which allows bootstrapping Apertium packages easily, does not pass the distcheck target. This task requires fixing this issue. See the associated [https://github.com/apertium/apertium-init/issues/50 GitHub issue] issue for more details and discussion.
 
|tags=python, autotools, make, bash
 
|mentors=Unhammer, Flammie, Unhammer, Josh
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, quality
 
|title=Increase [[Apertium-init]] test coverage
 
|description=Currently, we have a decent set of tests for the script but there are some more complex behaviors such as GitHub interaction that we don't test. This task requires making substantial improvements to the test coverage numbers. See the associated [https://github.com/apertium/apertium-init/issues/48 GitHub issue] issue for more details and discussion.
 
|tags=python, unittest
 
|mentors=sushain, Unhammer, wei2912
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Ignore .prob files in bilingual modules created by [[Apertium-init]]
 
|description=[[Apertium-init]] bootstraps Apertium packages and comes with a default gitignore. This gitignore could be improved by making it ignore *.prob files but only for pairs since they are meaningful for language modules. It would be extra cool if we had some tests for this functionality that weren't too contrived. See the associated [https://github.com/apertium/apertium-init/issues/42 GitHub issue] issue for more details and discussion.
 
|tags=python, git
 
|mentors=sushain, Unhammer, wei2912, Josh
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Set repository topic on repos created by [[Apertium-init]]
 
|description=[[Apertium-init]] bootstraps Apertium packages and supports creating an associated GitHub repository. Our source browser and other scripts expect a GitHub repository topic like "apertium-incubator". This task requires creating the incubator topic by default on repo push with an option for custom topics. See the associated [https://github.com/apertium/apertium-init/issues/36 GitHub issue] issue for more details and discussion.
 
|tags=python, github, http
 
|mentors=sushain, Unhammer, wei2912, xavivars, shardulc, JNW
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Install Apertium and verify that it works
 
|description=See [[Installation]] for instructions and if you encounter any issues along the way, document them and/or improve the Wiki!
 
|tags=bash
 
|mentors=ftyers, JNW, Unhammer, anakuz, Josh, fotonzade
 
|multi=150
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=research
 
|title=Write a contrastive grammar
 
|description=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.
 
|mentors=Mikel, JNW, Josh, xavivars, fotonzade
 
|tags=wiki, languages
 
|beginner=yes
 
|multi=40
 
}}
 
 
{{Taskidea
 
|type=quality
 
|mentors=Mikel, anakuz, xavivars, fotonzade
 
|tags=xml, dictionaries, svn
 
|title=Add 200 new entries to a bidix to language pair %AAA%-%BBB%
 
|description=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. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Grow_bilingual Read more]...
 
|multi=40
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=quality
 
|mentors=Mikel, anakuz, xavivars, fotonzade, ftyers
 
|tags=xml, dictionaries, svn
 
|title=Add 500 new entries to a bidix to language pair %AAA%-%BBB%
 
|description=Our translation systems require large lexicons so as to provide production-quality coverage of any input data. This task requires the student to add 500 new words to a bidirectional dictionary. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Grow_bilingual Read more]...
 
|dup=10
 
|beginner=no
 
}}
 
 
 
{{Taskidea
 
|type=quality
 
|mentors=fotonzade, JNW, ftyers, anakuz, xavivars, Mikel, shardulc
 
|tags=xml, dictionaries, svn
 
|title=Post-edit 100 sentences of any public domain text from %AAA% to %BBB%
 
|description=Many of our systems benefit from statistical methods used with (ideally public domain) bilingual data. For this task, you need to translate a public domain text from %AAA% to %BBB% using any available machine translation system and clean up the translations yourself manually. Commit the post-edited texts (in plain text format) to an existing (via pull request) or if needed new github repository for the pair in dev/ or texts/ folder. The texts are subject to mentor approval.
 
|multi=10
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=quality
 
|mentors=Mikel, anakuz, xavivars, fotonzade
 
|tags=disambiguation, svn
 
|title=Disambiguate 500 tokens of text in %AAA%
 
|description=Run some text through a morphological analyser and disambiguate the output. Contact the mentor beforehand to approve the choice of language and text. [http://wiki.apertium.org/wiki/Task_ideas_for_Google_Code-in/Manually_disambiguate_text Read more]...
 
|multi=yes
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Use SWIG or equivalent to add C++ bindings for text analysis in [https://github.com/apertium/apertium-python apertium-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.
 
|tags=python, c++, swig
 
|mentors=sushain
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Use cgo to integrate apertium and lttoolbox C++ libraries in Go
 
|description=Currently, all apertium core libraries are written in C++. There are other languuages, like Go, where concurrency is at the very core of the language itself. It would be great to be able to write small programs like the new lt-proc intergeneration in Go, using [https://golang.org/cmd/cgo/ cgo] as a way to bind both languages.
 
|tags=go, c++, cgo
 
|mentors=xavivars
 
|begginer=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, wei2912, arghya
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Setup scripts for [https://github.com/apertium/apertium-python/blob/windows/windows.py], the relevant issue to ask questions is [[https://github.com/apertium/apertium-python/issues/14]]
 
|description=Write setup.py scripts that install the current setup of Apertium+Python and also additionally make the setup.py script work on Windows too.
 
|tags=python, windows
 
|mentors=sushain, arghya
 
|beginner=yes
 
}}
 
 
{{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, Josh, arghya
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, design
 
|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, xavivars, shardulc
 
|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, jjjppp
 
|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, Unhammer, shardulc
 
|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, Unhammer, xavivars
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Support unicode without escape sequences in apertium.org's API ([[APy]])
 
|description=Currently, HTTP responses with unicode characters are emitted as \uNNNN by the Apertium API. Ideally, the character could just be decoded. See the associated [https://github.com/apertium/apertium-apy/issues/60 GitHub issue] for more details and discussion.
 
|tags=python, api, unicode, json, api, http
 
|mentors=sushain, Unhammer, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Make apertium.org ([[html-tools]]) fail more gracefully when the API is down
 
|tags=javascript, html, css, web
 
|description=Currently, [https://github.com/goavki/apertium-html-tools html-tools] relies on an API endpoint to translate documents, files, etc. However, when this API is down the interface also breaks! This task requires fixing
 
this breakage. See the associated [https://github.com/apertium/apertium-html-tools/issues/207 GitHub issue] for more details and discussion.
 
|mentors=sushain, Unhammer, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, design
 
|title=Refine the apertium.org ([[html-tools]]) dictionary interface
 
|tags=javascript, html, css, web
 
|description=Significant progress has been made towards providing a dictionary-style interface within [https://github.com/apertium/apertium-html-tools html-tools]. This task requires refining the existing [https://github.com/goavki/apertium-html-tools/pull/184 PR] by de-conflicting it with master and resolving the interface concerns discussed [https://github.com/goavki/apertium-html-tools/pull/184#issuecomment-323597780 here]. See the associated [https://github.com/apertium/apertium-html-tools/issues/105 GitHub issue] for more details and discussion.
 
|mentors=sushain, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, design
 
|title=Chained translation path interface for apertium.org ([[html-tools]])
 
|tags=javascript, html, css, web
 
|description=Significant progress has been made towards providing an interface for selecting a path for chained (multi-step) translation in [https://github.com/apertium/apertium-html-tools html-tools]. The code is currently in a [https://github.com/apertium/apertium-html-tools/tree/issue-91-translation-chain-graph branch] that needs to be de-conflicted with master, refined to accommodate changes in the main interface since the code was written, tested, and finally merged.
 
|mentors=sushain, shardulc
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, documentation
 
|title=Add a Swagger/OpenAPI specification for apertium.org's API ([[APy]])
 
|description=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. [https://github.com/apertium/apertium-stats-service/blob/master/api.html this page for another service]). See the associated [https://github.com/apertium/apertium-apy/issues/12 GitHub issue] for more details and discussion.
 
|tags=python, api, http, openapi, swagger
 
|mentors=sushain, xavivars
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Accept ISO-639-1 codes in [https://github.com/apertium/apertium-stats-service apertium-stats-service]
 
|description=This task requires making /en-es, /en-spa, etc. work the same as /eng-spa and then adding tests that verify the behavior. See the associated [https://github.com/apertium/apertium-stats-service/issues/32 GitHub issue] for more details and discussion.
 
|tags=rust, api, http
 
|mentors=sushain
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Support listing of packages in [https://github.com/apertium/apertium-stats-service apertium-stats-service]
 
|description=This information is something that is useful in a lot of different places, for example, our source browser. By having the stats service implement it, everyone doesn't have to write the same code in different languages and the information gets cached. For GCI task credit, the last commit info is not required (another task can be made for that feature). This task requires implementing the initial feature, adding some basic tests and tweaking the swagger spec. One or more of those tasks can be broken into other task(s) if the mentor sees fit and the student requests it. See the associated [https://github.com/apertium/apertium-stats-service/issues/37 GitHub issue] for more details and discussion.
 
|tags=rust, api, http, rest
 
|mentors=sushain
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Add configurable timeout support to [https://github.com/apertium/apertium-stats-service apertium-stats-service]
 
|description=Currently, a stats request has no clear timeout and can take ~forever if the async option is not present. This tasks requires adding a timeout option, adding tests and then tweaking the swagger spec. See the associated [https://github.com/apertium/apertium-stats-service/issues/14 GitHub issue] for more details and discussion.
 
|tags=rust, api, http, rest
 
|mentors=sushain
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Surface errors to the client in [https://github.com/apertium/apertium-stats-service apertium-stats-service]
 
|description=Right now, errors are logged and swallowed. The client never knows what happened. This task requires implementing the feature, adding some basic tests and tweaking the swagger spec. One or more of those tasks can be broken into other task(s) if the mentor sees fit and the student requests it. See the associated [https://github.com/apertium/apertium-stats-service/issues/30 GitHub issue] for more details and discussion.
 
|tags=rust, api, http, rest
 
|mentors=sushain
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|title=Include Git SHA in [https://github.com/apertium/apertium-stats-service apertium-stats-service]'s file info
 
|description=Right now, only the SVN revision number is provided but that doesn't help with mapping back on to a SHA in Git/GH for the client. This task requires implementing the feature, adding some basic tests and tweaking the swagger spec. See the associated [https://github.com/apertium/apertium-stats-service/issues/41 GitHub issue] for more details and discussion.
 
|tags=rust, api, http, rest, git, svn
 
|mentors=sushain
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=documentation
 
|mentors=Flammie, JNW, anakuz, Josh, shardulc
 
|tags=xml, dictionaries, screencast
 
|title=Create a screencast on how to add new entries to an apertium dictionary
 
|description=Screencasts are popular cool way to create a tutorial. Show a narrated work-flow start-to-end on adding new words to a dictionary, compiling and then using it to translate. This task is probably easiest after completing a "Add 200 new entries to a bidix to language pair" task.
 
|multi=no
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=documentation
 
|mentors=Flammie, Josh, shardulc
 
|tags=disambiguation, screencast
 
|title=Create a screencast on how to disambiguate tokens of text
 
|description=Screencasts are popular cool way to create a tutorial. Show a narrated work-flow start-to-end on disambiguating the words. This task is probably easiest after completing a "Disambiguate 500 tokens" task.
 
|multi=no
 
}}
 
 
{{Taskidea
 
|type=quality
 
|mentors=Flammie, wei2912
 
|tags=test, python, bash
 
|title=Create automated (travis-ci) test to ensure naïve coverage
 
|description=The dictionaries can be tested on [[Coverage]], the idea is to make test that operates on frequency word list to count a coverage of a dictionary and then integrate that to Makefile target check for travis to use.
 
|multi=no
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code
 
|mentors=JNW, sushain, wei2912, shardulc
 
|tags=python, git, json
 
|title=Scrape Apertium repo information into json
 
|description=Write a script to scrape information about Apertium's translation pairs as they exist in GitHub repositories into a json file like [https://github.com/apertium/pairviewer/blob/master/pairs.json.txt this one].
 
|multi=no
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=code, design
 
|mentors=JNW, sushain, jjjppp
 
|tags=d3, javascript
 
|title=Integrate globe viewer into language family visualiser interface
 
|description=The [https://github.com/apertium/family-visualizations family visualiser interface] has four info boxes when a language is clicked on, and one of those boxes is empty. The [https://github.com/jonorthwash/Apertium-Global-PairViewer globe viewer] provides a globe visualisation of languages that we can translate a given language to and from. This task is to integrate the globe viewer for a specific language into the fourth box in the family visualiser. There is an [https://github.com/jonorthwash/Apertium-Global-PairViewer/issues/32 associated GitHub issue].
 
|multi=no
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=documentation
 
|mentors=JNW, sushain, wei2912, Josh, xavivars, shardulc
 
|tags=wiki, github, svn
 
|title=Fix (or document the blockers for) five mentions of SVN on the Apertium wiki
 
|description=Apertium recently [https://github.com/apertium/apertium-on-github migrated] to GitHub from SVN. There are unfortunately still a lot of pages on the Wiki in need of their references to the Wiki to SVN URLs and SVN in general. This task requires finding five such pages and either outright fixing them or documenting the difficulty involved in fixing the issues. Note Category:GitHub_migration_updates lists articles currently marked for needing migration but is not exhaustive.
 
|multi=5
 
|beginner=no
 
}}
 
 
{{Taskidea
 
|type=research
 
|mentors=JNW,ftyers, Josh, fotonzade, anakuz
 
|tags=wiki, languages, grammar
 
|title=Document resources for a language
 
|description=Document resources for a language without resources already documented on the Apertium wiki. [[Task_ideas_for_Google_Code-in/Documentation_of_resources|read more]]...
 
|multi=10
 
|beginner=yes
 
}}
 
 
{{Taskidea
 
|type=research
 
|mentors=JNW, Josh
 
|tags=ocr
 
|title=tesseract (OCR) interface for apertium languages
 
|description=Find out what it would take to integrate apertium or voikkospell into tesseract OCR (image to text). Document thoroughly available options on the wiki.
 
|multi=no
 
|beginner=
 
}}
 
{{Taskidea
 
|type=research
 
|mentors=JNW,ftyers, fotonzade
 
|title=Create a UD-Apertium morphology mapping
 
|description=Choose a language that has a Universal Dependencies treebank and tabulate a potential set of Apertium morph labels based on the (universal) UD morph labels. See Apertium's [[list of symbols]] and [http://universaldependencies.org/ UD]'s POS and feature tags for the labels.
 
|tags=morphology, ud, dependencies
 
|beginner=
 
|multi=5
 
}}
 
 
{{Taskidea
 
|type=research
 
|mentors=JNW, ftyers, fotonzade
 
|title=Create an Apertium-UD morphology mapping
 
|description=Choose a language that has an Apertium morphological analyser and adapt it to convert the morphology to UD morphology
 
|tags=morphology, ud, dependencies
 
|beginner=
 
|multi=5
 
}}
 
 
{{Taskidea
 
|type=code,design
 
|mentors=JNW,ftyers
 
|title=Paradigm generator browser interface
 
|description=Write a standalone webpage that makes queries (though javascript) to an [[apertium-apy]] server to fill in a morphological forms based on morphological tags that are hidden throughout the body of the page. For example, say you have the verb "say", and some tags like inf, past, pres.p3.sg—these forms would get filled in as "say", "said", "says".
 
|tags=javascript, html, apy
 
}}
 
 
{{Taskidea
 
|type=Research
 
|mentors=anakuz, fotonzade
 
|title=Syntactic trees
 
|description=Pick up a text of ~200 words and make its syntactic annotation as for Universal Dependencies treebank. UD Annotatrix can be used for visualisation. Consult with mentor about the language.
 
|tags=UD, trees, markup
 
}}
 
 
{{Taskidea
 
|type=Code
 
|mentors=xavivars
 
|title=Improve apertium-tagger's man page
 
|description=The man page for apertium-tagger is outdted, not mentioning some options the --help command does, like -x. They should be synced. See https://github.com/apertium/apertium/issues/10
 
|tags=C++
 
}}
 
 
{{Taskidea
 
|type=Code
 
|mentors=ftyers
 
|title=Port pragmatic segmenter core code to Python
 
|description=Pragmatic segmenter (https://github.com/diasks2/pragmatic_segmenter) is a sentence segmenter written in Ruby. The objective of this task is to port the core code to Python.
 
|tags=Python, Ruby
 
}}
 
 
{{Taskidea
 
|type=Code
 
|mentors=ftyers
 
|title=Port a language model from pragmatic segmenter to Python
 
|description=Pragmatic segmenter (https://github.com/diasks2/pragmatic_segmenter) is a sentence segmenter written in Ruby. The objective of this task is to port a given language (e.g. Armenian) to Python.
 
|tags=Python, Ruby
 
|multi=21
 
}}
 
 
 
{{Taskidea
 
|type=Code
 
|mentors=ftyers
 
|title=Write a language model for pragmatic segmenter in Python or Ruby
 
|description=Pragmatic segmenter (https://github.com/diasks2/pragmatic_segmenter) is a sentence segmenter written in Ruby. The objective of this task is to write a language model for a new language.
 
|tags=Python, Ruby
 
|multi=21
 
}}
 
 
{{Taskidea
 
|type=Code,Documentation
 
|mentors=ftyers, shardulc
 
|title=Write a program to add a dev branch for each of the released language pairs
 
|description=At the moment Apertium language pairs are generally developed in the master branch. We would like to move to having a dev/master split, but we need to make a new dev branch for each pair, and also write documentation to explain to people to send PRs to dev or commit to dev.
 
|tags=python
 
}}
 
 
{{Taskidea
 
|type=code
 
|mentors=JNW
 
|title=Use apertium-init to bootstrap a new language pair
 
|description=Use the [[Apertium-init]] script to bootstrap a new translation pair between two languages which have monolingual modules already in Apertium. To see if a translation pair has already been made, search our repositories on [https://github.com/apertium/ github], and especially ask on IRC. Add 100 common stems to the dictionary. Your submission should be in the form of a repository on github that we can fork to the Apertium organisation.
 
|tags=languages, bootstrap, dictionaries, translators
 
|beginner=yes
 
|multi=25
 
}}
 
 
{{Taskidea
 
|type=code
 
|mentors=JNW
 
|title=Use apertium-init to bootstrap a new language module
 
|description=Use the [[Apertium-init]] script to bootstrap a new language module that doesn't currently exist in Apertium. To see if a language is available, search our repositories on [https://github.com/apertium/ github], and especially ask on IRC. Add enough stems and morphology to the module so that it analyses and generates at least 100 correct forms. Your submission should be in the form of a repository on github that we can fork to the Apertium organisation. [[Task ideas for Google Code-in/Add words from frequency list|Read more about adding stems...]]
 
|tags=languages, bootstrap, dictionaries
 
|beginner=yes
 
|multi=25
 
}}
 
 
{{Taskidea
 
|type=code
 
|mentors=JNW, mlforcada
 
|title=Add a transfer rule to an existing translation pair
 
|description=Add a transfer rule to an existing translation pair that fixes an error in translation. Document the rule on the [http://wiki.apertium.org/ Apertium wiki] by adding a [[regression testing|regression tests]] page similar to [[English_and_Portuguese/Regression_tests]] or [[Icelandic_and_English/Regression_tests]]. Check your code into Apertium's codebase. [[Task ideas for Google Code-in/Add transfer rule|Read more...]]
 
|tags=languages, bootstrap, transfer
 
|multi=25
 
|dup=5
 
}}
 
 
{{Taskidea
 
|type=code
 
|mentors=JNW
 
|title=Write 10 lexical selection to an existing translation pair
 
|description=Add 10 lexical selection rules to an existing translation pair. Submit your work as a github pull request to that pair. [[Task ideas for Google Code-in/Add lexical-select rules|Read more...]]
 
|tags=languages, bootstrap, lexical selection, translators
 
|multi=25
 
|dup=5
 
}}
 
 
{{Taskidea
 
|type=code
 
|mentors=JNW
 
|title=Write 10 constraint grammar rules for an existing language module
 
|description=Add 10 constraint grammar rules to an existing language that you know. Submit your work as a github pull request to that pair. [[Task ideas for Google Code-in/Add constraint-grammar rules|Read more...]]
 
|tags=languages, bootstrap, constraint grammar
 
|multi=25
 
|dup=5
 
}}
 
 
 
</table>
 
   
 
==Mentors==
 
==Mentors==

Revision as of 16:59, 17 October 2019

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

See Talk:Task ideas for Google Code-in for task ideas from previous years.

Mentors

Mentor Languages
ftyers eng, spa, cat, fra, nor, rus, por, swe, tur, gag, aze
JNW eng, spa, fra, rus, tur, gag, aze, kaz, kir, tat, bak, kum, nog, kaa, uzb, uig, crh, khk, yid
anakuz grn, spa, por, rus
fotonzade eng, tur, aze, uig, tat, crh, kmr, ckb, fas
xavivars cat, spa, eng, fra
unhammer nno, nob, swe, dan, fao, sme, ovd
shardulc eng, fra, mar, hin, urd, kan
m-alpha eng, fra, byv

Counts

Last updated by Sushain (talk) 19:22, 15 September 2018 (CEST).

Category Count
code 35
documentation 5
research 10
quality 10
design 5
Total 53