Version at: 19/01/2015, 19:59 vs. version at: 31/01/2015, 03:07
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
77TODO
88
99## Contact
1010
1111* Email/Google groups: [Tatoeba's dev mailing list](https://groups.google.com/forum/#!forum/tatoebaproject)
1212* IRC: [Tatoeba on #Freenode](irc://irc.freenode.net/tatoeba), [Webchat](http://webchat.freenode.net?channels=tatoeba)
1313* XMPP: [Tatoeba conference room on chat.tatoeba.org](xmpp:tatoeba@chat.tatoeba.org?join)
1414
1515To get a feeling for the discussions taking place within the Tatoeba contributor community, visit the [Tatoeba Wall page](http://tatoeba.org/wall/index).
1616
1717## How to submit ideas
1818
1919If 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.
2020If you have access to the wiki, simply edit this page and add the information in the [Ideas](#ideas) section.
2121
2222<pre>
2323### Project title
2424
2525#### Description
2626Brief 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.
2727
2828#### Deliverables
2929What is the student expected to deliver at the end of the summer.
3030
3131#### Prerequisite knowledge
3232Technical 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.
3333</pre>
3434
3535## Ideas
3636
3737TODO: Copy-paste whatever can be reused from [last year's project ideas page](http://en.wiki.tatoeba.org/articles/show/gsoc_ideas).
3838
3939
40### Re-design the the layout of the website, so it also works well on mobile devices.
40### Mobile friendly user interface
41#### Description
42Around 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.
43#### Deliverables
44Implementation in Tatoeba's source code.
45#### Prerequisite knowledge
46
47PHP, HTML, CSS
48
49### Extension of the search feature
4150
4251#### Description
43Convert the existing site to a pre-existing, tested framework such as Bootstrap or something similar, so that the website works well on many devices. The idea would be to use something that has been tested already, so you do not waste time creating new things that need to be tested, and re-tested. Using a well-known framework, would also allow easier updating in the future as that framework is improved.
52The 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:
4453
54 1. To implement more search criteria (tags, username, audio, date...)
55 2. To extend the search feature to comments, wall messages, and possibly other contents (private messages, profile...).
56
57Here are some examples of search we would like to be able to do:
58
59* All English sentences by user "CK" with audio that have not been translated into Japanese.
60* All Georgian sentences with the tag "restaurant" not translated into Armenian.
4561#### Deliverables
46We would want all the files in the "app" folder (see https://github.com/Tatoeba/tatoeba2) converted so that the framework would work.
62Implementation in Tatoeba's source code.
63#### Prerequisite knowledge
64CakePHP, [Sphinx](http://sphinxsearch.com/)
4765
48#### Prerequisite knowledge
49CakePHP, Bootstrap (or whatever is chosen)
50
51
52
53
54### Improvements in the Search Function to Allow Members to Find Sentences They Want to Translate
55
56*Note: this idea is currently too small for a summer-long project. Feel free to extend it or combine with another idea.*
57
58#### Description
59
60Make it possible to generate these kinds of pages.
61
62 * Get all sentences in a given language by a given user that have not been translated into a given language. For example: *Show me all English sentences by user "CK" not yet translated into Japanese.*
63
64 * Same as above, but limited to sentences with audio. For example: *Show me all English sentences by "CK" with audio that have not been translated into Japanese.*
65
66 * Get all sentences by native speakers of a given language not yet translated into a given language. For example: *Show me all Finnish sentences by native speakers not translated into Hungarian.*
67
68 * Get all sentences in a given language with a certain tag not translated into a given language. For example: *Show me all Georgian sentences with the tag "restaurant" not translated into Armenian.*
69
70 * Same as above, but limited to sentences by native speakers not translated into a given language. For example: *Show me all Korean sentences by native speakers with the tag "weather" not translated into Japanese.*
71
72 * Get all sentences in a given language under a certain length not yet translated into a given language. For example: *Show me all Japanese sentences fewer than 50 characters in length not translated into French.*
73 * Same as above, but limited to native speaker sentences.
74 * Same as above, but limited to sentences by a given user.
75
76 * Get all sentences by native speakers of a given language that match a given search keyword that have not been translated into a given language. For example: *Show all English sentences with the word "mountain" not translated into Japanese.*
77 * Same as above, but limited to native speaker sentences.
78 * Same as above, but limited to sentences by a given user.
79
80#### Deliverables
81
82Implementation of some or all of the above. Project might include additional queries. It would be highly desired to provide a generic way of adding new types of queries.
83
84#### Prerequisite knowledge
85
86PHP, CakePHP. Sphinx
8766
8867### Wish list
8968
9069#### Description
9170Wish list 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.
9271
9372See more detailed description: [Wish list](wish_list)
9473
9574#### Deliverables
9675Implementation 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.
9776
9877#### Prerequisite knowledge
9978
10079CakePHP
diff view generated by jsdifflib

Version at: 19/01/2015, 19:59

# 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

TODO

## Contact

* Email/Google groups: [Tatoeba's dev mailing list](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.
</pre>

## Ideas

TODO: Copy-paste whatever can be reused from [last year's project ideas page](http://en.wiki.tatoeba.org/articles/show/gsoc_ideas).


### Re-design the the layout of the website, so it also works well on mobile devices.

#### Description
Convert the existing site to a pre-existing, tested framework such as Bootstrap or something similar, so that the website works well on many devices.  The idea would be to use something that has been tested already, so you do not waste time creating new things that need to be tested, and re-tested.  Using a well-known framework, would also allow easier updating in the future as that framework is improved.

#### Deliverables
We would want all the files in the "app" folder (see https://github.com/Tatoeba/tatoeba2) converted so that the framework would work.

#### Prerequisite knowledge
CakePHP, Bootstrap (or whatever is chosen)




### Improvements in the Search Function to Allow Members to Find Sentences They Want to Translate

*Note: this idea is currently too small for a summer-long project. Feel free to extend it or combine with another idea.*

#### Description

Make it possible to generate these kinds of pages.

 * Get all sentences in a given language by a given user that have not been translated into a given language. For example: *Show me all English sentences by user "CK" not yet translated into Japanese.*

 * Same as above, but limited to sentences with audio. For example: *Show me all English sentences by "CK" with audio that have not been translated into Japanese.*

 * Get all sentences by native speakers of a given language not yet translated into a given language. For example: *Show me all Finnish sentences by native speakers not translated into Hungarian.*

 * Get all sentences in a given language with a certain tag not translated into a given language. For example: *Show me all Georgian sentences with the tag "restaurant" not translated into Armenian.*

 * Same as above, but limited to sentences by native speakers not translated into a given language. For example: *Show me all Korean sentences by native speakers with the tag "weather" not translated into Japanese.*

 * Get all sentences in a given language under a certain length not yet translated into a given language. For example: *Show me all Japanese sentences fewer than 50 characters in length not translated into French.*
   * Same as above, but limited to native speaker sentences.
   * Same as above, but limited to sentences by a given user.

 * Get all sentences by native speakers of a given language that match a given search keyword that have not been translated into a given language. For example: *Show all English sentences with the word "mountain" not translated into Japanese.*
   * Same as above, but limited to native speaker sentences.
   * Same as above, but limited to sentences by a given user.

#### Deliverables

Implementation of some or all of the above. Project might include additional queries. It would be highly desired to provide a generic way of adding new types of queries.

#### Prerequisite knowledge

PHP, CakePHP.  Sphinx

### Wish list

#### Description
Wish list 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](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

version at: 31/01/2015, 03:07

# 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

TODO

## Contact

* Email/Google groups: [Tatoeba's dev mailing list](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.
</pre>

## Ideas

TODO: Copy-paste whatever can be reused from [last year's project ideas page](http://en.wiki.tatoeba.org/articles/show/gsoc_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

### 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...)
  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/)


### Wish list

#### Description
Wish list 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](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

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.