Changes

Jump to navigation Jump to search
no edit summary
Line 1: Line 1: −
   
Here is the list of [http://world.openfoodfacts.org Open Food Facts] proposed projects for the [https://summerofcode.withgoogle.com/ Google Summer of Code]. <br>
 
Here is the list of [http://world.openfoodfacts.org Open Food Facts] proposed projects for the [https://summerofcode.withgoogle.com/ Google Summer of Code]. <br>
 
Any questions can be asked on the dedicated channel on Slack (https://openfoodfacts.slack.com/messages/summerofcode)
 
Any questions can be asked on the dedicated channel on Slack (https://openfoodfacts.slack.com/messages/summerofcode)
   −
=== Integrate a cloud-based OCR into Product Opener ===
+
= Integrate a cloud-based OCR into Product Opener =
 +
The main source of data for the products in the Open Food Facts and Open Beauty Facts databases is the packaging of the products, photographed by contributors and then typed into the database by the contributors. This ensures accuracy and verifiability of the information. Naturally, this manual transfer is tedious and our precious contributors deserve better tools. This project is about using an Optical Character Recognition service (cloud-based OCR) in the Product Opener (the server software running Open Food Facts and Open Beauty Facts) to provide the following (non-exhaustive list):
 
* Process all uploaded images proactively using Tesseract and/or the New Cloud based engine
 
* Process all uploaded images proactively using Tesseract and/or the New Cloud based engine
 
* Store JSON and return a processed version to mobile client and/or web client for suggestions to the user
 
* Store JSON and return a processed version to mobile client and/or web client for suggestions to the user
 
* Add support to search into OCR results
 
* Add support to search into OCR results
 
* Create a mini-game to let users turn the Raw OCR into data<br><br>
 
* Create a mini-game to let users turn the Raw OCR into data<br><br>
'''Mentor:'''Stéphane or Laurent<br>
+
'''Mentor:''' Stéphane or Laurent<br>
'''Technologies:'''Perl, MongoDB
+
'''Technologies:''' Perl, MongoDB
   −
 
+
= Add editing capabilities to the Cordova app (for Android, iOS and Windows Phone) =
=== Add editing capabilities to the Cordova app (for Android, iOS and Windows Phone) ===
   
Open Food Facts and Open Beauty Facts rely on crowdsourcing. The easier it is for contributors to complete a product, the faster the base grows. This project is about adding full editing capabilities on the Cordova mobile app (currently, only image capture is possible).
 
Open Food Facts and Open Beauty Facts rely on crowdsourcing. The easier it is for contributors to complete a product, the faster the base grows. This project is about adding full editing capabilities on the Cordova mobile app (currently, only image capture is possible).
 
<br><br>
 
<br><br>
'''Mentor:'''Stéphane and Pierre<br>
+
'''Mentor:''' Stéphane and Pierre<br>
'''Technologies:'''Strong UX skills, good knowledge of Cordova, good HTML and Javascript<br>
+
'''Technologies:''' Strong UX skills, good knowledge of Cordova, good HTML and Javascript<br>
   −
=== Add editing capabilities to the Native Android app ===
+
= Add editing capabilities to the Native Android app =
 
Open Food Facts and Open Beauty Facts rely on crowdsourcing. The easier it is for contributors to complete a product, the faster the base grows. This project is about adding full editing capabilities on the native Android mobile app (currently only image capture is possible).
 
Open Food Facts and Open Beauty Facts rely on crowdsourcing. The easier it is for contributors to complete a product, the faster the base grows. This project is about adding full editing capabilities on the native Android mobile app (currently only image capture is possible).
 
<br><br>
 
<br><br>
'''Mentor:'''Herau, Itchix and Pierre<br>
+
'''Mentor:''' Herau, Itchix and Pierre<br>
'''Technologies:'''Strong UX skills, good knowledge of Android Java<br>
+
'''Technologies:''' Strong UX skills, good knowledge of Android Java<br>
   −
=== Improve the UX of the native iOS app (Food Viewer) ===
+
= Improve the UX of the native iOS app (Food Viewer) =
As opposed to the other 2 mobile applications, the native iOS application contains full viewing and editing capabilities. However, the UX of this application is not as good as the other two. The work needed on this application is a presentation work, to put things in a form easy to use.
+
As opposed to the other 2 mobile applications, the native iOS application contains full viewing and editing capabilities. However, the UX of this application is not as good as the other two. The work needed on this application is a presentation work, to put things in a form easy to use.<br><br>
'''Mentor:'''Aleene, Pierre<br>
+
'''Mentor:''' Aleene, Pierre<br>
'''Technologies:'''good knowledge of Swift, Knowledge and interest in UI/UX<br>
+
'''Technologies:''' good knowledge of Swift, Knowledge and interest in UI/UX<br>
   −
=== Define a proper clean API (new version) ===
+
= Define a proper clean API (new version) =
The current REST API of the Open Food Facts database was built with time and can be improved from the point of view of its completitude, consistency and error management. This proposal is about defining and implementing a new API, thought from scratch and but learning from the lessons of the previos experience. Solutions like Swagger can be envisaged to create a self documenting API and automatic bindings for various programming languages, but the proposal is not limited to this.
+
The current REST API of the Open Food Facts database was built with time and can be improved from the point of view of its completitude, consistency and error management. This proposal is about defining and implementing a new API, thought from scratch and built by learning from the lessons of the previos experience. Solutions like Swagger can be envisaged to create a self documenting API and automatic bindings for various programming languages, but the proposal is not limited to this.<br><br>
'''Mentor:'''Anca, Stéphane, Vincent, Aleene<br>
+
'''Mentor:''' Anca, Stéphane, Vincent, Aleene<br>
'''Technologies:'''Experience with using (and building) APIs, knowledge of REST,  
+
'''Technologies:''' Experience with using (and building) APIs, knowledge of REST,  
   −
=== Create a power contribution tool ===
+
= Create a power contribution tool =
 
Open Food Facts and Open Beauty Facts rely on crowdsourcing. The easier it is for contributors to complete a product, the faster the base grows. This projects is about creating a standalone power-edit tool using the API.
 
Open Food Facts and Open Beauty Facts rely on crowdsourcing. The easier it is for contributors to complete a product, the faster the base grows. This projects is about creating a standalone power-edit tool using the API.
 
<br><br>
 
<br><br>
'''Mentor:'''depending on your tech choice<br>
+
'''Mentor:''' depending on your tech choice<br>
'''Technologies:'''Any web language (Rail, Python, Backend JS framework)<br>
+
'''Technologies:''' Any web language (Rail, Python, Backend JS framework)<br>
   −
=== Create an Open Food Facts mobile game ===
+
= Create an Open Food Facts mobile game =
 
Imagine a game where products would be useful items on your quest, and scanning them would unlock bonuses, Lifepoints…
 
Imagine a game where products would be useful items on your quest, and scanning them would unlock bonuses, Lifepoints…
 
This is about creating a game that would be a fun way to discover more about food or cosmetics and/or contribute to Open Food/Beauty Facts.
 
This is about creating a game that would be a fun way to discover more about food or cosmetics and/or contribute to Open Food/Beauty Facts.
 
<br><br>
 
<br><br>
'''Mentor:'''TBD<br>
+
'''Mentor:''' TBD<br>
'''Technologies:''' Java, Swift/ObjC or Web technologies (Cordova…)
+
'''Technologies:''' Java, Swift/ObjC or Web technologies (Cordova…)
   −
=== Create a system to update taxonomies from Product Opener ===
+
= Create a system to update taxonomies from Product Opener =
 
Many core concepts of the Open Food Facts environment are organized as taxonomies (multilanguage categories of products, additives, etc).
 
Many core concepts of the Open Food Facts environment are organized as taxonomies (multilanguage categories of products, additives, etc).
 
Currently, we use a wiki based system for managing these taxonomies, that we have to reload in the Product Opener server every time we make updates to it. This is error prone and requires maintenance work. This feature is about adding a system in the Product Opener to allow moderators to define parent categories, add translations, wikidata links, etc.<br><br>
 
Currently, we use a wiki based system for managing these taxonomies, that we have to reload in the Product Opener server every time we make updates to it. This is error prone and requires maintenance work. This feature is about adding a system in the Product Opener to allow moderators to define parent categories, add translations, wikidata links, etc.<br><br>
'''Mentor:'''Stephane or Laurent, Anca<br>
+
'''Mentor:''' Stephane or Laurent, Anca<br>
 
'''Technologies:''' Perl, some HTML/JS
 
'''Technologies:''' Perl, some HTML/JS
   −
=== Make Product Opener able to show revisions ===
+
= Make Product Opener able to show revisions =
 
Food and cosmetics change over time. Nutrition info, ingredients sometimes slightly change. Our contributors are here to document all that using photos, and then update the product.
 
Food and cosmetics change over time. Nutrition info, ingredients sometimes slightly change. Our contributors are here to document all that using photos, and then update the product.
 
Product Opener already stores these basic changes, but, once a product is edited, we can not see how it evolved over time. This project is about providing an interface for displaying the subsequent revisions of a product and all the tools that come with that (comparisons between versions, rollback, tracing an information to a revision, etc). It would be tremendously interesting for nutrition science and contributors to be able to see how (positive) change happens over time.<br><br>
 
Product Opener already stores these basic changes, but, once a product is edited, we can not see how it evolved over time. This project is about providing an interface for displaying the subsequent revisions of a product and all the tools that come with that (comparisons between versions, rollback, tracing an information to a revision, etc). It would be tremendously interesting for nutrition science and contributors to be able to see how (positive) change happens over time.<br><br>
'''Mentor:'''Stephane or Laurent<br>
+
'''Mentor:''' Stephane or Laurent<br>
 
'''Technologies:''' Perl, some HTML/JS
 
'''Technologies:''' Perl, some HTML/JS
   −
=== Improve Bulk Import of images ===
+
= Improve Bulk Import of images =
 
We currently have a very basic system to bulk-import images and create products accordingly. The project would be to create a web interface for this system for contributors, with a way to recognize barcodes, sort images by timestamp/name/manually. A basic moderation system will ensure data quality.<br>
 
We currently have a very basic system to bulk-import images and create products accordingly. The project would be to create a web interface for this system for contributors, with a way to recognize barcodes, sort images by timestamp/name/manually. A basic moderation system will ensure data quality.<br>
 
The project will be tested with a massive trove of images that will be eventually imported into Open Food Facts if the project is successful.<br><br>
 
The project will be tested with a massive trove of images that will be eventually imported into Open Food Facts if the project is successful.<br><br>
'''Mentor:'''Stephane (mainly for the API and product-opener requirements)<br>
+
'''Mentor:''' Stephane (mainly for the API and product-opener requirements)<br>
 
'''Technologies:''' Your choice: will require both front and backend-skills.
 
'''Technologies:''' Your choice: will require both front and backend-skills.
   −
=== Bulk edit with web GUI for mass product modifications ===
+
= Bulk edit with web GUI for mass product modifications =
Sometimes, the same error can sneak into a massive amount of contribution, for example related to a typo or a misunderstanding on an information on the packaging. In other situations, similar products might need to be updated in a similar way, for example filling in the type of packaging for all products of a same brand. This proposal is about creating a tool that would allow a moderator to easily select the products and perform these bulk changes on the selected products.
+
Sometimes, the same error can sneak into a massive amount of contribution, for example related to a typo or a misunderstanding on an information on the packaging. In other situations, similar products might need to be updated in a similar way, for example filling in the type of packaging for all products of a same brand. This proposal is about creating a tool that would allow a moderator to easily select the products and perform these bulk changes on the selected products.<br><br>
'''Mentor:'''Anca, Pierre, Stephane<br>
+
'''Mentor:''' Anca, Pierre, Stephane<br>
'''Technologies:'''some Perl, HTML/JS, REST<br>
+
'''Technologies:''' some Perl, HTML/JS, REST<br>
   −
=== Create a bot to perform smart edits on the products ===
+
= Create a bot to perform smart edits on the products =
Open Food Facts has a basic bot system. You will have to design sensible rules and create an edition bot based on it.
+
Open Food Facts has a basic bot system. You will have to design sensible rules and create an edition bot based on it.<br><br>
'''Mentor:'''Pierre<br>
+
'''Mentor:''' Pierre<br>
 
'''Technologies:''' Pick your favorite
 
'''Technologies:''' Pick your favorite
   −
=== Create a Google Cardboard / Daydream compatible viewer app ===
+
= Create a Google Cardboard / Daydream compatible viewer app =
Enable browsing Open Food Facts in VR with Google Cardboard or Google Daydream. Bonus point if you enable contributions using the camera.
+
Enable browsing Open Food Facts in VR with Google Cardboard or Google Daydream. Bonus point if you enable contributions using the camera.<br><br>
 
'''Mentor:'''<br>
 
'''Mentor:'''<br>
 
'''Technologies:'''<br>
 
'''Technologies:'''<br>
   −
=== Re-work gamification and make it an important part of the User experience ===
+
= Re-work gamification and make it an important part of the User experience =
 
Currently there is a basic gamification system in Open Food Facts, giving badges to contributors based on their amount and type of contributions. However, this system is not receiving the attention it should, from a developement point of view, and the concept is not exploited to the maximum of its capabilities. As Open Food Facts relies on contributions from users, gamification can be used to improve retention of users, boost their contributions and increase the quality. Also, it can be used as a tool to drive the contributions in a direction that would not be followed naturally by the users but which is very valuable for the purpose of collecting open data. This proposal comprises the re-working of the gamification backend, along with ideas and implementations of the presentation of the badges, to make it an important part of the Open Food Facts experience.<br><br>
 
Currently there is a basic gamification system in Open Food Facts, giving badges to contributors based on their amount and type of contributions. However, this system is not receiving the attention it should, from a developement point of view, and the concept is not exploited to the maximum of its capabilities. As Open Food Facts relies on contributions from users, gamification can be used to improve retention of users, boost their contributions and increase the quality. Also, it can be used as a tool to drive the contributions in a direction that would not be followed naturally by the users but which is very valuable for the purpose of collecting open data. This proposal comprises the re-working of the gamification backend, along with ideas and implementations of the presentation of the badges, to make it an important part of the Open Food Facts experience.<br><br>
'''Mentor:'''Stephane, Anca, Pierre<br>
+
'''Mentor:''' Stephane, Anca, Pierre<br>
'''Technologies:'''Perl, HTML/JS, UI/UX<br>
+
'''Technologies:''' Perl, HTML/JS, UI/UX<br>
   −
=== Product comparison implemented in the mobile app ===
+
= Product comparison implemented in the mobile app =
 
An important usage of the Open Food Facts database is in the are of products comparison. Currently, some comparison tools exist (e.g. displaying products on a chart, comparison of nutrition facts with the average of a category), but they are not complete and they are only available on the web. This feature is about bringing these tools to (one of) the mobile application(s), allowing the users to:
 
An important usage of the Open Food Facts database is in the are of products comparison. Currently, some comparison tools exist (e.g. displaying products on a chart, comparison of nutrition facts with the average of a category), but they are not complete and they are only available on the web. This feature is about bringing these tools to (one of) the mobile application(s), allowing the users to:
 
* compare pairs of products (one-to-one), scanned by bar codes or input by text (supermarket mode)
 
* compare pairs of products (one-to-one), scanned by bar codes or input by text (supermarket mode)
Line 91: Line 90:  
* bringing charts to
 
* bringing charts to
 
* etc.<br><br>
 
* etc.<br><br>
'''Mentor:'''Stephane, Anca, Pierre<br>
+
'''Mentor:''' Stephane, Anca, Pierre<br>
'''Technologies:'''Mobile language (see above on the mobile proposals), UI/UX, Statistics basics<br>
+
'''Technologies:''' Mobile language (see above on the mobile proposals), UI/UX, Statistics basics<br>
   −
=== Create tooling to import all EU-packaging codes ===
+
= Create tooling to import all EU-packaging codes =
 
EU packaging codes are those little logos on food that -once decyphered- will tell you where the product was packaged and produced. Unfortunately, the data, mandatory for all European Union countries, comes in many formats (XLS, CSV, HTML, and yes, even PDF).
 
EU packaging codes are those little logos on food that -once decyphered- will tell you where the product was packaged and produced. Unfortunately, the data, mandatory for all European Union countries, comes in many formats (XLS, CSV, HTML, and yes, even PDF).
 
This project would be building on the basic Python script we have for 3 countries, and extend it to the rest of Europe.
 
This project would be building on the basic Python script we have for 3 countries, and extend it to the rest of Europe.
Bonus point if you add Fishing codes and Recyclable Paper codes to that.
+
Bonus point if you add Fishing codes and Recyclable Paper codes to that.<br><br>
'''Mentor:'''Pierre<br>
+
'''Mentor:''' Pierre<br>
 
'''Technologies:''' Your language of choice. The current script is in Python, Text processing
 
'''Technologies:''' Your language of choice. The current script is in Python, Text processing
   −
=== Add content management capabilities to all static pages of the product opener ===
+
= Add content management capabilities to all static pages of the product opener =
The Product Opener server side software contains, besides the product pages, lots of pages with helper text, explanation and extra information about the elements of the Open Food Facts environment. Currently, these texts are in the source code, or, in the best cases, stored and edited on the wiki and regularily migrated to the Open Food Facts database site. This project is about implementing / integrating a content management system to allow this content to be easily authored by moderators of the site.
+
The Product Opener server side software contains, besides the product pages, lots of pages with helper text, explanation and extra information about the elements of the Open Food Facts environment. Currently, these texts are in the source code, or, in the best cases, stored and edited on the wiki and regularily migrated to the Open Food Facts database site. This project is about implementing / integrating a content management system to allow this content to be easily authored by moderators of the site.<br><br>
'''Mentor:'''Anca, Stephane<br>
+
'''Mentor:''' Anca, Stephane<br>
'''Technologies:'''basic understanding of CMS, Perl or other technology(?)<br>
+
'''Technologies:''' basic understanding of CMS, Perl or other technology(?)<br>
   −
=== Tool for syncing with Wikidata on additives ===
+
= Tool for syncing with Wikidata on additives =
 
The purpose of Open Food Facts and Open Beauty Facts is to provide the facts, not to issue judgement. Thus, we heavily rely on external sources of information (Wikidata) in what concerns the facts we present about the attributes of food products (such as additives, labels, ingredients, etc). This project is about providing a tool to better integrate these external data sources, including but not limited to:
 
The purpose of Open Food Facts and Open Beauty Facts is to provide the facts, not to issue judgement. Thus, we heavily rely on external sources of information (Wikidata) in what concerns the facts we present about the attributes of food products (such as additives, labels, ingredients, etc). This project is about providing a tool to better integrate these external data sources, including but not limited to:
 
* Automatically fetch relevant information from Wikidata about categories, labels, additives, ingredients…
 
* Automatically fetch relevant information from Wikidata about categories, labels, additives, ingredients…
 
* Display them in a human readable way on relevant pages and as tooltips
 
* Display them in a human readable way on relevant pages and as tooltips
 
* Expose this information in the API.<br><br>
 
* Expose this information in the API.<br><br>
'''Mentor:'''Pierre<br>
+
'''Mentor:''' Pierre<br>
'''Technologies:'''Perl, REST, Open data concepts, Wiki data<br>
+
'''Technologies:''' Perl, REST, Open data concepts, Wiki data<br>
=== Create a connected microwave prototype ===
+
= Create a connected microwave prototype =
*[[Project:Microwave]]
+
*[[Project:Microwave]]<br><br>
 
'''Mentor:'''<br>
 
'''Mentor:'''<br>
'''Technologies:'''Probably: Arduino<br>
+
'''Technologies:''' Probably: Arduino<br>
   −
=== Create a connected fridge prototype ===
+
= Create a connected fridge prototype =
Create a connected fridge prototype that uses Open Food Facts data and a barcode scanner or computer vision techniques to assess products taken in and out of the fridge, calculate calorie input by user and is able to create a list of things to buy again.
+
Create a connected fridge prototype that uses Open Food Facts data and a barcode scanner or computer vision techniques to assess products taken in and out of the fridge, calculate calorie input by user and is able to create a list of things to buy again.<br><br>
 
'''Mentor:'''<br>
 
'''Mentor:'''<br>
'''Technologies:'''Probably: Arduino<br>
+
'''Technologies:''' Probably: Arduino<br>
   −
=== Create a smart bin prototype ===
+
= Create a smart bin prototype =
 +
<br><br>
 
'''Mentor:'''<br>
 
'''Mentor:'''<br>
'''Technologies:'''Probably: Arduino<br>
+
'''Technologies:''' Probably: Arduino<br>
   −
=== Your own idea ===
+
= Your own idea =
 
You can of course propose your own great idea, as long as it's suitable in terms of workload with the requirements of the Summer of Code.
 
You can of course propose your own great idea, as long as it's suitable in terms of workload with the requirements of the Summer of Code.
   −
== Other ideas ==
+
= Other ideas =
 
*[[Project:Archeology]]
 
*[[Project:Archeology]]
 
*[[Project:Blind people]]
 
*[[Project:Blind people]]
44

edits

Navigation menu