Version at: 07/02/2015, 14:13 vs. version at: 12/02/2015, 01:19
11# GSoC 2015 Project ideas
22
33This page lists project ideas for students who would like to take part in [Google Summer of Code 2015](http://www.google-melange.com/gsoc/homepage/google/gsoc2015) and be mentored by [Tatoeba](http://tatoeba.org).
44
55## About Tatoeba
66
77[Tatoeba](http://tatoeba.org) is a platform that aims to build a large **database of sentences** translated into as many languages as possible. The initial idea was to have a tool in which you could search certain words, and it would return example sentences containing these words with their translations in the desired languages. The name Tatoeba resulted from this concept, because **tatoeba** means **for example** in Japanese.
88
99You can browse the [blog](http://blog.tatoeba.org/) or the [wiki](http://en.wiki.tatoeba.org/) for more information about the project.
1010
1111
1212## Contact
1313
1414* Google group: [tatoebaproject](https://groups.google.com/forum/#!forum/tatoebaproject)
1515* IRC: [#tatoeba on freenode](irc://irc.freenode.net/tatoeba), [Webchat](http://webchat.freenode.net?channels=tatoeba)
1616* XMPP: [Tatoeba conference room on chat.tatoeba.org](xmpp:tatoeba@chat.tatoeba.org?join)
1717
1818To get a feeling for the discussions taking place within the Tatoeba contributor community, visit the [Tatoeba Wall page](http://tatoeba.org/wall/index).
1919
2020## How to submit ideas
2121
2222If you would like to submit an idea and do not have access to the wiki, please [contact us](#contact) and send us the information below.
2323If you have access to the wiki, simply edit this page and add the information in the [Ideas](#ideas) section.
2424
2525<pre>
2626### Project title
2727
2828#### Description
2929Brief description of the project. If you have already specified a lot of things about the project, do not write all the details here. Create a separate wiki page for it and only write a summary here, with a link to that wiki page.
3030
3131#### Deliverables
3232What is the student expected to deliver at the end of the summer.
3333
3434#### Prerequisite knowledge
3535Technical knowledge required to be able to complete the project. If you do not know what are the prerequisite knowledge for the project you are proposing, you can leave this blank, someone else will complete it.
3636
3737#### Possible mentors
3838People from the team that may be able to mentor that idea. You can leave this section blank if you’re a student. Please only add a mentor’s name if you are that person or if the person explicitly agrees.
3939</pre>
4040
4141
4242
4343## A note for students
4444
4545If you are a student and are interested to work on one of the projects listed below, note that at this stage Google has not yet chosen which organizations will participate to GSoC 2015. The list of accepted mentoring organizations will be published on [**March 2**](http://www.google-melange.com/gsoc/events/google/gsoc2015). Until that date, Tatoeba is not officially part of GSoC 2015.
4646
4747Of course this should not stop you from getting started on a project ahead of time. If you do so, we recommend you the following.
4848
49491. Make sure that you have read the [GSoC FAQ](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page) and that you understand how the program works. Please check the [calendar](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page) for the various deadlines.
50502. If the project you are interested in involves implementing code in the current version of Tatoeba, [install Tatoeba on your machine](https://github.com/Tatoeba/tatoeba2), explore the code, experiment with it.
51514. Start preparing your [proposal](http://en.flossmanuals.net/GSoCStudentGuide/ch008_writing-a-proposal/). You won't be implementing anything (at least not anything related to a GSoC project) until you are officially a GSoC student for Tatoeba.
52523. If you would like to contribute code to get familiar with the project before GSoC, but don't know how to get started, you can read [this guide](guide-for-new-developers).
5353
5454## Ideas
5555
5656### Mobile friendly user interface
5757
5858#### Description
5959Around 30% of the visitors of Tatoeba are browsing the website from a mobile device, but the usuability of the current website on mobile devices is very poor. The idea of this project is to redesign the UI to improve the user experience for visitors who are using a mobile.
6060
61Discussion in Google group: [GSoC 2015 - Mobile friendly user interface](https://groups.google.com/forum/#!topic/tatoebaproject/ssK6N3T6in4)
62
6163#### Deliverables
6264Implementation in Tatoeba's source code.
6365
6466#### Prerequisite knowledge
6567PHP, HTML, CSS
6668
6769#### Possible mentors
6870Trang
6971
7072
7173### Extension of the search feature
7274
7375#### Description
7476The search feature is currently available only for sentences and the search criteria are limited to the source/target language and the sentence's text. The goal of this project would be:
7577
7678 1. To implement more search criteria (tags, username, audio, date...) (See [issue #53](https://github.com/Tatoeba/tatoeba2/issues/53))
7779 2. To extend the search feature to comments, wall messages, and possibly other contents (private messages, profile...).
7880
7981Here are some examples of search we would like to be able to do:
8082
8183* All English sentences by user "CK" with audio that have not been translated into Japanese.
8284* All Georgian sentences with the tag "restaurant" not translated into Armenian.
8385
8486#### Deliverables
8587
8688Implementation in Tatoeba's source code.
8789
8890#### Prerequisite knowledge
8991
9092CakePHP, [Sphinx](http://sphinxsearch.com/)
9193
9294#### Possible mentors
9395
9496gillux
9597
9698### Wish list for words and expression
9799
98100#### Description
99101Wish list for words and expressions allows users to add words and expressions to a list and other users can fulfill the wishes by adding sentences with these words and expressions.
100102
101103See more detailed description: [Wish list for words and expression](wish_list)
102104
103105#### Deliverables
104106Implementation of wish list feature than consists of three new views/pages: "Add to wish list", "Browse wish list", and "Wish: xxx in *language* by user *username*". "Add to wish list" is a page where users can submit new wishes and "Browse wish list" is a page where users can browse the wishes the other users have submited. "Wish: xxx in *language* by user *username*" is a page for each individual wish where the orginal submiter of the wish can modify the wish, other users can fulfil the wish, and all the users can discuss about the wish. At the upper part of all of these pages there are two tabs/links: "Add to wish list" and "Browse wish list" for easy access from page to page.
105107
106108#### Prerequisite knowledge
107109
108110CakePHP
109111
110112#### Possible mentors
111113
112114gillux
113115
114116
115117### Achievement system
116118
117119#### Description
118120The goal of this project is to implement a system of achievements that would give users specific tasks to do and reward them with a badge/medal when they complete the tasks.
119121
120122Such a system would be particularly helpful for new contributors. Tatoeba is indeed still not very intuitive. At the moment, when a user registers, they are redirected to a "Getting started" page where information is too dense and that most of them probably don't read.
121123The badge system would guide these new contributors into learning about the features of Tatoeba progressively.
122124
123125This can of course also make contributing more engaging for the more advanced contributors.
124126
125127#### Deliverables
126128
127129Implementation in Tatoeba's source code.
128130
129131#### Prerequisite knowledge
130132CakePHP, MySQL
131133
132134#### Possible mentors
133135
134136Trang
135137
136138
137139### Improvement of communication tools
138140
139141#### Description
140142
141143The Wall is the main place for members to communicate with each other publicly. There are however no categories like in a regular forum. All the topics are mixed together. As a result, one cannot easily find all the posts where people introduce each other, or all the posts where people submit suggestions, or all the posts that are announcements from the admins.
142144
143145The private messages are very old style. There is no notion of a discussion thread, and therefore each message is displayed alone, even if it was a reply of a previous message. This makes it rather unpractical to have a conversation with private messages.
144146
145147The goal of this project is:
146148
1471491. to improve the Wall, or possibly replace it with a forum, or implement a forum in addition to the Wall.
1481502. change the private messages system to display all the messages from a same discussion in a same thread, rather than separated into several private messages.
149151
150152#### Deliverables
151153
152154Implementation in Tatoeba's source code.
153155
154156#### Prerequisite knowledge
155157CakePHP, MySQL
156158
157159#### Possible mentors
158160?
159161
160162
161163
162164### Permissions management
163165
164166#### Description
165167
166168The permissions of a user are based mostly on the user's status: depending on whether you are a contributor, advanced contributor, corpus maintainer or admin, you will have access to more or less features. For instance advanced contributors an add tags to a sentence, while regular contributors cannot. Corpus maintainers can delete sentences while other contributors cannot.
167169
168170The goal of this project is to design and implement a more refined permission system, with an interface to manage these permissions.
169171
170172Here are example of things that we cannot do at the moment, and that could be part of the project:
171173
172174* Disallow a user to add new sentences, but still allow them to translate sentences.
173175* Restrict the languages in which a user can contribute.
174176* Disallow a user from posting comments only on the Wall, but not on sentences.
175177#### Deliverables
176178
177179Implementation in Tatoeba's source code.
178180
179181#### Prerequisite knowledge
180182CakePHP, MySQL
181183
182184#### Possible mentors
183185?
184186
185187
186188### Audio
187189
188190#### Description
189191
190192Tatoeba provides [audio](http://tatoeba.org/eng/sentences/with_audio) for some sentences. These audio are recorded by volunteers, and the process of contributing audio is a bit complicated. This is due to the fact that audio was not at the core of the project.
191193
192194Audio is still a great addition to the project and Tatoeba has received more and more audio contributions over the years. But the audio content lacks the structure that the sentences in the textual corpus benefit of.
193195
194196* There is no way to know (from the website) who is the author of an audio file, not when it was contributed (cf. [Github issue #547](https://github.com/Tatoeba/tatoeba2/issues/547)).
195197* It is not possible either to attach several audio to a same sentence (to illustrate different accents of a same language for instance).
196198* Last but not least, it is a bit tedious to update and maintain the audio.
197199
198200The goal of this project would be to implement the necessary features for a better management the audio content in Tatoeba.
199201
200202#### Deliverables
201203
202204Could be either implementation in Tatoeba's source code, or development of a separate application.
203205#### Prerequisite knowledge
204206CakePHP if implementation in Tatoeba.
205207
206208#### Possible mentors
207209?
208210
209211
210212### API
211213
212214#### Description
213215
214216Projects that are built upon Tatoeba's data currently have to use the CSV dumps that we provide through our [Downloads](http://tatoeba.org/eng/downloads) page.
215217
216218Even though it was requested for a long time, we still do not have any official API for other projects to plug their applications directly to our data (this is especially demanded from developers of mobile apps).
217219
218220There is a beginning of API based on Django that was developed by one of our students from GSoC 2014, but the project did not come to a stable enough state to be released.
219221
220222The goal of this project is to release an API.
221223
222224#### Deliverables
223225
224226A web application that provides a set of API calls for data stored in the current database.
225227Ideally this should be done with pytoeba, but we do not exclude other solutions if there's a good reason for it.
226228
227229#### Prerequisite knowledge
228230
229231A web application language (Python or PHP preferred), MySQL, and a data exchange format such as JSON or XML.
230232
231233#### Possible mentors
232234?
diff view generated by jsdifflib

Version at: 07/02/2015, 14:13

# GSoC 2015 Project ideas

This page lists project ideas for students who would like to take part in [Google Summer of Code 2015](http://www.google-melange.com/gsoc/homepage/google/gsoc2015) and be mentored by [Tatoeba](http://tatoeba.org).

## About Tatoeba

[Tatoeba](http://tatoeba.org) is a platform that aims to build a large **database of sentences** translated into as many languages as possible. The initial idea was to have a tool in which you could search certain words, and it would return example sentences containing these words with their translations in the desired languages. The name Tatoeba resulted from this concept, because **tatoeba** means **for example** in Japanese.

You can browse the [blog](http://blog.tatoeba.org/) or the [wiki](http://en.wiki.tatoeba.org/) for more information about the project.


## Contact

* Google group: [tatoebaproject](https://groups.google.com/forum/#!forum/tatoebaproject)
* IRC: [#tatoeba on freenode](irc://irc.freenode.net/tatoeba), [Webchat](http://webchat.freenode.net?channels=tatoeba)
* XMPP: [Tatoeba conference room on chat.tatoeba.org](xmpp:tatoeba@chat.tatoeba.org?join)

To get a feeling for the discussions taking place within the Tatoeba contributor community, visit the [Tatoeba Wall page](http://tatoeba.org/wall/index).

## How to submit ideas

If you would like to submit an idea and do not have access to the wiki, please [contact us](#contact) and send us the information below.
If you have access to the wiki, simply edit this page and add the information in the [Ideas](#ideas) section.

<pre>
### Project title

#### Description
Brief description of the project. If you have already specified a lot of things about the project, do not write all the details here. Create a separate wiki page for it and only write a summary here, with a link to that wiki page.

#### Deliverables
What is the student expected to deliver at the end of the summer.

#### Prerequisite knowledge
Technical knowledge required to be able to complete the project. If you do not know what are the prerequisite knowledge for the project you are proposing, you can leave this blank, someone else will complete it.

#### Possible mentors
People from the team that may be able to mentor that idea. You can leave this section blank if you’re a student. Please only add a mentor’s name if you are that person or if the person explicitly agrees.
</pre>



## A note for students

If you are a student and are interested to work on one of the projects listed below, note that at this stage Google has not yet chosen which organizations will participate to GSoC 2015. The list of accepted mentoring organizations will be published on [**March 2**](http://www.google-melange.com/gsoc/events/google/gsoc2015). Until that date, Tatoeba is not officially part of GSoC 2015.

Of course this should not stop you from getting started on a project ahead of time. If you do so, we recommend you the following.

1. Make sure that you have read the [GSoC FAQ](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page) and that you understand how the program works. Please check the [calendar](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page) for the various deadlines.
2. If the project you are interested in involves implementing code in the current version of Tatoeba, [install Tatoeba on your machine](https://github.com/Tatoeba/tatoeba2), explore the code, experiment with it.
4. Start preparing your [proposal](http://en.flossmanuals.net/GSoCStudentGuide/ch008_writing-a-proposal/). You won't be implementing anything (at least not anything related to a GSoC project) until you are officially a GSoC student for Tatoeba. 
3. If you would like to contribute code to get familiar with the project before GSoC, but don't know how to get started, you can read [this guide](guide-for-new-developers).

## Ideas

### Mobile friendly user interface

#### Description
Around 30% of the visitors of Tatoeba are browsing the website from a mobile device, but the usuability of the current website on mobile devices is very poor. The idea of this project is to redesign the UI to improve the user experience for visitors who are using a mobile.

#### Deliverables
Implementation in Tatoeba's source code.

#### Prerequisite knowledge
PHP, HTML, CSS

#### Possible mentors
Trang


### Extension of the search feature

#### Description
The search feature is currently available only for sentences and the search criteria are limited to the source/target language and the sentence's text. The goal of this project would be:

  1. To implement more search criteria (tags, username, audio, date...) (See [issue #53](https://github.com/Tatoeba/tatoeba2/issues/53))
  2. To extend the search feature to comments, wall messages, and possibly other contents (private messages, profile...).

Here are some examples of search we would like to be able to do:

* All English sentences by user "CK" with audio that have not been translated into Japanese.
* All Georgian sentences with the tag "restaurant" not translated into Armenian.

#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge

CakePHP, [Sphinx](http://sphinxsearch.com/)

#### Possible mentors

gillux

### Wish list for words and expression

#### Description
Wish list for words and expressions allows users to add words and expressions to a list and other users can fulfill the wishes by adding sentences with these words and expressions.

See more detailed description: [Wish list for words and expression](wish_list)

#### Deliverables
Implementation of wish list feature than consists of three new views/pages: "Add to wish list", "Browse wish list", and "Wish: xxx in *language* by user *username*". "Add to wish list" is a page where users can submit new wishes and "Browse wish list" is a page where users can browse the wishes the other users have submited. "Wish: xxx in *language* by user *username*" is a page for each individual wish where the orginal submiter of the wish can modify the wish, other users can fulfil the wish, and all the users can discuss about the wish. At the upper part of all of these pages there are two tabs/links: "Add to wish list" and "Browse wish list" for easy access from page to page.

#### Prerequisite knowledge

CakePHP

#### Possible mentors

gillux


### Achievement system

#### Description
The goal of this project is to implement a system of achievements that would give users specific tasks to do and reward them with a badge/medal when they complete the tasks.

Such a system would be particularly helpful for new contributors. Tatoeba is indeed still not very intuitive. At the moment, when a user registers, they are redirected to a "Getting started" page where information is too dense and that most of them probably don't read.
The badge system would guide these new contributors into learning about the features of Tatoeba progressively.

This can of course also make contributing more engaging for the more advanced contributors.

#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge
CakePHP, MySQL

#### Possible mentors

Trang


### Improvement of communication tools

#### Description

The Wall is the main place for members to communicate with each other publicly. There are however no categories like in a regular forum. All the topics are mixed together. As a result, one cannot easily find all the posts where people introduce each other, or all the posts where people submit suggestions, or all the posts that are announcements from the admins.

The private messages are very old style. There is no notion of a discussion thread, and therefore each message is displayed alone, even if it was a reply of a previous message. This makes it rather unpractical to have a conversation with private messages.

The goal of this project is:

1. to improve the Wall, or possibly replace it with a forum, or implement a forum in addition to the Wall.
2. change the private messages system to display all the messages from a same discussion in a same thread, rather than separated into several private messages.

#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge
CakePHP, MySQL

#### Possible mentors
?



### Permissions management

#### Description

The permissions of a user are based mostly on the user's status: depending on whether you are a contributor, advanced contributor, corpus maintainer or admin, you will have access to more or less features. For instance advanced contributors an add tags to a sentence, while regular contributors cannot. Corpus maintainers can delete sentences while other contributors cannot.

The goal of this project is to design and implement a more refined permission system, with an interface to manage these permissions.

Here are example of things that we cannot do at the moment, and that could be part of the project:

* Disallow a user to add new sentences, but still allow them to translate sentences.
* Restrict the languages in which a user can contribute.
* Disallow a user from posting comments only on the Wall, but not on sentences.
#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge
CakePHP, MySQL

#### Possible mentors
? 


### Audio

#### Description

Tatoeba provides [audio](http://tatoeba.org/eng/sentences/with_audio) for some sentences. These audio are recorded by volunteers, and the process of contributing audio is a bit complicated. This is due to the fact that audio was not at the core of the project.

Audio is still a great addition to the project and Tatoeba has received more and more audio contributions over the years. But the audio content lacks the structure that the sentences in the textual corpus benefit of.

* There is no way to know (from the website) who is the author of an audio file, not when it was contributed (cf. [Github issue #547](https://github.com/Tatoeba/tatoeba2/issues/547)).
* It is not possible either to attach several audio to a same sentence (to illustrate different accents of a same language for instance).
* Last but not least, it is a bit tedious to update and maintain the audio.

The goal of this project would be to implement the necessary features for a better management the audio content in Tatoeba.

#### Deliverables

Could be either implementation in Tatoeba's source code, or development of a separate application.
#### Prerequisite knowledge
CakePHP if implementation in Tatoeba.

#### Possible mentors
?


### API

#### Description

Projects that are built upon Tatoeba's data currently have to use the CSV dumps that we provide through our [Downloads](http://tatoeba.org/eng/downloads) page.

Even though it was requested for a long time, we still do not have any official API for other projects to plug their applications directly to our data (this is especially demanded from developers of mobile apps).

There is a beginning of API based on Django that was developed by one of our students from GSoC 2014, but the project did not come to a stable enough state to be released.

The goal of this project is to release an API.

#### Deliverables

A web application that provides a set of API calls for data stored in the current database.
Ideally this should be done with pytoeba, but we do not exclude other solutions if there's a good reason for it.

#### Prerequisite knowledge

A web application language (Python or PHP preferred), MySQL, and a data exchange format such as JSON or XML.

#### Possible mentors
?

version at: 12/02/2015, 01:19

# GSoC 2015 Project ideas

This page lists project ideas for students who would like to take part in [Google Summer of Code 2015](http://www.google-melange.com/gsoc/homepage/google/gsoc2015) and be mentored by [Tatoeba](http://tatoeba.org).

## About Tatoeba

[Tatoeba](http://tatoeba.org) is a platform that aims to build a large **database of sentences** translated into as many languages as possible. The initial idea was to have a tool in which you could search certain words, and it would return example sentences containing these words with their translations in the desired languages. The name Tatoeba resulted from this concept, because **tatoeba** means **for example** in Japanese.

You can browse the [blog](http://blog.tatoeba.org/) or the [wiki](http://en.wiki.tatoeba.org/) for more information about the project.


## Contact

* Google group: [tatoebaproject](https://groups.google.com/forum/#!forum/tatoebaproject)
* IRC: [#tatoeba on freenode](irc://irc.freenode.net/tatoeba), [Webchat](http://webchat.freenode.net?channels=tatoeba)
* XMPP: [Tatoeba conference room on chat.tatoeba.org](xmpp:tatoeba@chat.tatoeba.org?join)

To get a feeling for the discussions taking place within the Tatoeba contributor community, visit the [Tatoeba Wall page](http://tatoeba.org/wall/index).

## How to submit ideas

If you would like to submit an idea and do not have access to the wiki, please [contact us](#contact) and send us the information below.
If you have access to the wiki, simply edit this page and add the information in the [Ideas](#ideas) section.

<pre>
### Project title

#### Description
Brief description of the project. If you have already specified a lot of things about the project, do not write all the details here. Create a separate wiki page for it and only write a summary here, with a link to that wiki page.

#### Deliverables
What is the student expected to deliver at the end of the summer.

#### Prerequisite knowledge
Technical knowledge required to be able to complete the project. If you do not know what are the prerequisite knowledge for the project you are proposing, you can leave this blank, someone else will complete it.

#### Possible mentors
People from the team that may be able to mentor that idea. You can leave this section blank if you’re a student. Please only add a mentor’s name if you are that person or if the person explicitly agrees.
</pre>



## A note for students

If you are a student and are interested to work on one of the projects listed below, note that at this stage Google has not yet chosen which organizations will participate to GSoC 2015. The list of accepted mentoring organizations will be published on [**March 2**](http://www.google-melange.com/gsoc/events/google/gsoc2015). Until that date, Tatoeba is not officially part of GSoC 2015.

Of course this should not stop you from getting started on a project ahead of time. If you do so, we recommend you the following.

1. Make sure that you have read the [GSoC FAQ](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page) and that you understand how the program works. Please check the [calendar](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2015/help_page) for the various deadlines.
2. If the project you are interested in involves implementing code in the current version of Tatoeba, [install Tatoeba on your machine](https://github.com/Tatoeba/tatoeba2), explore the code, experiment with it.
4. Start preparing your [proposal](http://en.flossmanuals.net/GSoCStudentGuide/ch008_writing-a-proposal/). You won't be implementing anything (at least not anything related to a GSoC project) until you are officially a GSoC student for Tatoeba. 
3. If you would like to contribute code to get familiar with the project before GSoC, but don't know how to get started, you can read [this guide](guide-for-new-developers).

## Ideas

### Mobile friendly user interface

#### Description
Around 30% of the visitors of Tatoeba are browsing the website from a mobile device, but the usuability of the current website on mobile devices is very poor. The idea of this project is to redesign the UI to improve the user experience for visitors who are using a mobile.

Discussion in Google group: [GSoC 2015 - Mobile friendly user interface](https://groups.google.com/forum/#!topic/tatoebaproject/ssK6N3T6in4)

#### Deliverables
Implementation in Tatoeba's source code.

#### Prerequisite knowledge
PHP, HTML, CSS

#### Possible mentors
Trang


### Extension of the search feature

#### Description
The search feature is currently available only for sentences and the search criteria are limited to the source/target language and the sentence's text. The goal of this project would be:

  1. To implement more search criteria (tags, username, audio, date...) (See [issue #53](https://github.com/Tatoeba/tatoeba2/issues/53))
  2. To extend the search feature to comments, wall messages, and possibly other contents (private messages, profile...).

Here are some examples of search we would like to be able to do:

* All English sentences by user "CK" with audio that have not been translated into Japanese.
* All Georgian sentences with the tag "restaurant" not translated into Armenian.

#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge

CakePHP, [Sphinx](http://sphinxsearch.com/)

#### Possible mentors

gillux

### Wish list for words and expression

#### Description
Wish list for words and expressions allows users to add words and expressions to a list and other users can fulfill the wishes by adding sentences with these words and expressions.

See more detailed description: [Wish list for words and expression](wish_list)

#### Deliverables
Implementation of wish list feature than consists of three new views/pages: "Add to wish list", "Browse wish list", and "Wish: xxx in *language* by user *username*". "Add to wish list" is a page where users can submit new wishes and "Browse wish list" is a page where users can browse the wishes the other users have submited. "Wish: xxx in *language* by user *username*" is a page for each individual wish where the orginal submiter of the wish can modify the wish, other users can fulfil the wish, and all the users can discuss about the wish. At the upper part of all of these pages there are two tabs/links: "Add to wish list" and "Browse wish list" for easy access from page to page.

#### Prerequisite knowledge

CakePHP

#### Possible mentors

gillux


### Achievement system

#### Description
The goal of this project is to implement a system of achievements that would give users specific tasks to do and reward them with a badge/medal when they complete the tasks.

Such a system would be particularly helpful for new contributors. Tatoeba is indeed still not very intuitive. At the moment, when a user registers, they are redirected to a "Getting started" page where information is too dense and that most of them probably don't read.
The badge system would guide these new contributors into learning about the features of Tatoeba progressively.

This can of course also make contributing more engaging for the more advanced contributors.

#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge
CakePHP, MySQL

#### Possible mentors

Trang


### Improvement of communication tools

#### Description

The Wall is the main place for members to communicate with each other publicly. There are however no categories like in a regular forum. All the topics are mixed together. As a result, one cannot easily find all the posts where people introduce each other, or all the posts where people submit suggestions, or all the posts that are announcements from the admins.

The private messages are very old style. There is no notion of a discussion thread, and therefore each message is displayed alone, even if it was a reply of a previous message. This makes it rather unpractical to have a conversation with private messages.

The goal of this project is:

1. to improve the Wall, or possibly replace it with a forum, or implement a forum in addition to the Wall.
2. change the private messages system to display all the messages from a same discussion in a same thread, rather than separated into several private messages.

#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge
CakePHP, MySQL

#### Possible mentors
?



### Permissions management

#### Description

The permissions of a user are based mostly on the user's status: depending on whether you are a contributor, advanced contributor, corpus maintainer or admin, you will have access to more or less features. For instance advanced contributors an add tags to a sentence, while regular contributors cannot. Corpus maintainers can delete sentences while other contributors cannot.

The goal of this project is to design and implement a more refined permission system, with an interface to manage these permissions.

Here are example of things that we cannot do at the moment, and that could be part of the project:

* Disallow a user to add new sentences, but still allow them to translate sentences.
* Restrict the languages in which a user can contribute.
* Disallow a user from posting comments only on the Wall, but not on sentences.
#### Deliverables

Implementation in Tatoeba's source code.

#### Prerequisite knowledge
CakePHP, MySQL

#### Possible mentors
? 


### Audio

#### Description

Tatoeba provides [audio](http://tatoeba.org/eng/sentences/with_audio) for some sentences. These audio are recorded by volunteers, and the process of contributing audio is a bit complicated. This is due to the fact that audio was not at the core of the project.

Audio is still a great addition to the project and Tatoeba has received more and more audio contributions over the years. But the audio content lacks the structure that the sentences in the textual corpus benefit of.

* There is no way to know (from the website) who is the author of an audio file, not when it was contributed (cf. [Github issue #547](https://github.com/Tatoeba/tatoeba2/issues/547)).
* It is not possible either to attach several audio to a same sentence (to illustrate different accents of a same language for instance).
* Last but not least, it is a bit tedious to update and maintain the audio.

The goal of this project would be to implement the necessary features for a better management the audio content in Tatoeba.

#### Deliverables

Could be either implementation in Tatoeba's source code, or development of a separate application.
#### Prerequisite knowledge
CakePHP if implementation in Tatoeba.

#### Possible mentors
?


### API

#### Description

Projects that are built upon Tatoeba's data currently have to use the CSV dumps that we provide through our [Downloads](http://tatoeba.org/eng/downloads) page.

Even though it was requested for a long time, we still do not have any official API for other projects to plug their applications directly to our data (this is especially demanded from developers of mobile apps).

There is a beginning of API based on Django that was developed by one of our students from GSoC 2014, but the project did not come to a stable enough state to be released.

The goal of this project is to release an API.

#### Deliverables

A web application that provides a set of API calls for data stored in the current database.
Ideally this should be done with pytoeba, but we do not exclude other solutions if there's a good reason for it.

#### Prerequisite knowledge

A web application language (Python or PHP preferred), MySQL, and a data exchange format such as JSON or XML.

#### Possible mentors
?

Note

The lines in green are the lines that have been added in the new version. The lines in red are those that have been removed.