Difference between revisions of "Student projects/GSOC/2017 ideas list"

From Open Food Facts wiki
Jump to navigation Jump to search
m (Alex-off moved page Student projects/GSOC/Proposals/2017 to Student projects/GSOC/2017 ideas list: consistency with 2022 and 2023)
 
(16 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
= Old list =
 +
 +
The new list for 2018 projects is here: https://en.wiki.openfoodfacts.org/Student_projects/GSOC/Proposals
 +
  
 
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)
  
== Projects common to Open Food Facts and Open Beauty Facts ==
+
= Match OpenCorporates data to OpenFoodFacts with simple user controls =
=== Improve the Cross-platform mobile app ===
+
OpenCorporates is an ODBL licensed dataset with an API. Many of the companies that manufacture food have a specific legal entity which should be identifiable in OpenCorporates.
The Open Food Facts mobile app is the key component to contribute.The easier it is for contributors to contribute a product, the faster the base grows. This project is about turning the current Cordova app in a first class application, using all the latest bells and whistles to improve user experience and contributions.
+
 
<br><br>
+
From https://github.com/openfoodfacts/openfoodfacts-server/issues/1072
'''Mentor:'''TBD<br>
+
* Capture the legal entity (name, street address, suburb, state, country or similar geographic modelling)
'''Language:'''Strong UX skills, good HTML and Javascript, good knowledge of Cordova and mobile development<br>
+
* When country/state are present, provide users with an autocomplete control looking up the OpenCorporates API
 +
* Suggest matches based on suburb, state, country(jurisdiction) and name; setting an OpenCorporatesID
 +
 
  
=== 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>
+
See also:[[Project:OCR]]
'''Language:'''Perl
+
'''Mentor:''' Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend), Pierre (OCR)<br>
 
+
'''Technologies:''' Perl, MongoDB
 
 
=== 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 improving the contribution flow on the mobile app.
 
<br><br>
 
'''Mentor:'''Stéphane and Pierre<br>
 
'''Language:'''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 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 improving the contribution flow on the mobile 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 Cordova mobile app (currently, only image capture is possible).
 
<br><br>
 
<br><br>
'''Mentor:'''Herau, Itchix and Pierre<br>
+
'''Mentor:''' Stéphane and Pierre<br>
'''Language:'''Strong UX skills, good knowledge of Android Java<br>
+
'''Technologies:''' Strong UX skills, good knowledge of Cordova, good HTML and Javascript<br>
 
 
=== Improve the UX of the native iOS app (Food Viewer) ===
 
'''Mentor:'''Aleene<br>
 
'''Language:'''Strong UX skills, good knowledge of Swift<br>
 
  
=== Improve the edit workflow on the web and mobile web versions ===
+
= 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 improving the contribution flow online.
+
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:'''Stéphane and Pierre<br>
+
'''Mentor:''' Herau, Itchix and Pierre<br>
'''Language:'''Strong UX skills, good HTML and Javascript, some knowledge of Perl<br>
+
'''Technologies:''' Strong UX skills, good knowledge of Android Java<br>
 
 
=== Refactor the API ===
 
  
Use Swagger to create a self documenting API and automatic bindings for various programming languages.
+
= 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.<br><br>
 +
'''Mentor:''' Aleene, Pierre<br>
 +
'''Technologies:''' good knowledge of Swift, Knowledge and interest in UI/UX<br>
  
=== Create a power contribution tool ===
+
= Define a proper RESTful API (new version) =
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
+
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>
<br><br>
+
'''Mentor:''' Anca, Stéphane, Vincent (API design), Aleene<br>
'''Mentor:'''depending on your tech choice<br>
+
'''Technologies:''' Experience with using (and building) APIs, knowledge of REST,  
'''Language:'''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 (Anca)<br>
'''Language:''' 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 =
Currently, we use a wiki based system for taxonomies, that we have to reload. This is error prone and requires maintenance work. This project would be about adding a system into product opener to let moderators define parent categories, add translations, wikidata links and various properties.<br><br>
+
Many core concepts of the Open Food Facts environment are organized as taxonomies (multilanguage categories of products, additives, etc).
'''Mentor:'''Stephane or Laurent<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. See [[Global taxonomies]] for more details on taxonomies<br><br>
'''Language:''' Perl, some HTML/JS
+
'''Mentor:''' Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend), Anca (frontend)<br>
 +
'''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 basic changes, but once a product is edited, we can't see how it evolved over time. 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 (backend), Sebastien (backend), Johannes (backend), Laurent (backend)<br>
'''Language:''' 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.
+
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>
 +
'''Technologies:''' Your choice: will require both front and backend-skills.
 +
 
 +
= 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.<br><br>
 +
'''Mentor:''' Anca, Pierre, Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend)<br>
 +
'''Technologies:''' some Perl, HTML/JS, REST<br>
  
'''Mentor:'''Stephane (mainly for the API and product-opener requirements)<br>
+
= Re-work gamification and make it an important part of the User experience =
'''Language:''' Your choice: will require both front and backend-skills.
+
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 (backend), Sebastien (backend), Johannes (backend), Laurent (backend), Anca, Pierre (frontend and UX)<br>
 +
'''Technologies:''' Perl, HTML/JS, UI/UX<br>
  
=== Migrate Product Opener to GetText ===
+
= Product comparison implemented in the mobile app =
Open Food Facts is a global project. We need it to be available in as many languages as possible. Currently we use a custom system that makes it complicated to translate Open Food Facts. Your task will be to make Product Opener use GetText, and migrate the current translations.
+
An important usage of the Open Food Facts database is in the area 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)
 +
* bringing to mobile the feature of comparing nutritional info of products of the same category
 +
* bringing charts to
 +
* etc.<br><br>
 +
'''Mentor:''' Stephane, Anca, Pierre, Qian(Android), herau (Android), itchix (Android), aleene (iOS)<br>
 +
'''Technologies:''' Mobile language (see above on the mobile proposals), UI/UX, Statistics basics<br>
  
'''Mentor:'''Stephane + Pierre<br>
+
= Create tooling to import all EU-packaging codes =
'''Language:''' Perl. GetText knowledge a plus.
+
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.
 +
Bonus point if you add Fishing codes and Recyclable Paper codes to that.<br><br>
 +
'''Mentor:''' Pierre<br>
 +
'''Technologies:''' Your language of choice. The current script is in Python, Text processing
  
=== Pentest and audit the Product Opener codebase ===
+
= Add content management capabilities to all static pages of Product Opener =
Product Opener is open source, but we require contributors to ask for access to the code for security reasons: the code hasn't been properly audited yet. Your task will be to audit the code and proposes fixes as you find flaws.
+
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 or Sebastien <br>
 +
'''Technologies:''' basic understanding of CMS, Perl or other technology(?)<br>
  
'''Mentor:'''Stephane<br>
+
= Tool for syncing with Wikidata on additives =
'''Language:''' Perl, Security background.
+
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…
 +
* Display them in a human readable way on relevant pages and as tooltips
 +
* Expose this information in the API.<br><br>
 +
'''Mentor:''' Pierre (wikidata)<br>
 +
'''Technologies:''' Perl, REST, Open data concepts, Wiki data<br>
  
=== Create a bot to perform smart edits on the products ===
+
= Create a power contribution tool =
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 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.
'''Mentor:'''Pierre<br>
+
<br><br>
'''Language:''' Pick your favorite
+
'''Mentor:''' depending on your tech choice<br>
 +
'''Technologies:''' Any web language (Rail, Python, Backend JS framework…)<br>
  
=== Create a Google Cardboard / Daydream compatible viewer app ===
+
= Create a bot to perform smart edits on the products =
Enable browsing Open Food Facts in VR with Google Cardboard or Google Daydream. Bonus point if you enable contributions using the camera.
+
Open Food Facts already has a couple of basic editing bots in Perl and Ruby. You will have to expand the bindings of your choice, and design a series of sensible edition rules and create an easy to use edition bot based on it.<br><br>
 +
'''Mentor:''' Pierre (Python), Nicolas (Ruby)…<br>
 +
'''Technologies:''' Pick your favorite
  
=== Your own idea ===
+
= Create a contribution quality score =
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.
+
Predict if a contribution is of high or low quality using several signals and techniques
 +
'''Mentor:''' Stéphane…<br>
 +
'''Technologies:''' Pick your favorite
  
 +
= Create an Android Wear lookup app =
 +
Enable browsing Open Food Facts with Android Wear. For lack of a camera, You will use the native input methods to type the barcode, and design simple way to access the most essential information<br><br>
 +
'''Mentor:'''Qian, Herau, itchix<br>
 +
'''Technologies:'''<br>
  
 +
= Create a Google Cardboard / Daydream compatible viewer app =
 +
Enable browsing Open Food Facts in VR with Google Cardboard or Google Daydream.<br><br>
 +
'''Mentor:'''Qian, Herau<br>
 +
'''Technologies:'''<br>
  
== Open Food Facts specific projects ==
+
= Expand the Hololens prototype =
=== Create tooling to import all EU-packaging codes ===
+
Niwra has created a Hololens able to display multilingual ingredients in your field of view. Finish implemeting the API (labels, categories) in the Hololens app. Add contribution abilities (taking photos)
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 comes in many formats (XLS, CSV, HTML, and yes, even PDF).
+
'''Mentor:'''Niwra<br>
This project is building on the basic Python script we have for 3 countries, and extend it to the rest of Europe.
+
'''Technologies:'''UWP, C…<br>
Bonus point if you add Fishing codes and Recyclable Paper codes to that.
 
'''Mentor:'''Pierre<br>
 
'''Language:''' Your language of choice. The current script is in Python
 
  
=== Create a connected microwave prototype ===
 
*[[Project:Microwave]]
 
=== Create a connected fridge prototype ===
 
=== Create a smart bin prototype ===
 
  
== Open Beauty Facts specific projects ==
+
= Create a connected microwave prototype =
 +
* Create a connected microwave prototype that uses Open Food Facts data and a barcode scanner or computer vision techniques to assess products taken in and out of the microwave, find the product and choose the right cooking programme accordingly.
 +
[[Project:Microwave]]<br><br>
 +
'''Mentor:'''Qian<br>
 +
'''Technologies:''' Arduino or your own<br>
  
 +
= 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.<br>
 +
'''Mentor:'''Qian<br>
 +
'''Technologies:''' Arduino or your own
  
 +
= Create a smart bin prototype =
 +
Create a smart bin prototype that uses Open Food Facts data and a barcode scanner or computer vision techniques to assess products thrown away in the bin, and give recycling instructions.<br>
 +
'''Mentor:'''Qian<br>
 +
'''Technologies:''' Arduino or your own<br>
  
== Mentors ==
+
= Your own idea =
* Name or pseudonym - Skills - Available time for mentoring
+
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.
* '''Add yourself !'''
 
  
== Other ideas ==
+
= Other ideas =
*[[Project:Archeology]]
 
*[[Project:Blind people]]
 
 
*[[Project:Community portal]]
 
*[[Project:Community portal]]
 
*[[Project:Contribute Back]]
 
*[[Project:Contribute Back]]
Line 133: Line 172:
 
*[[Project:What's in my yogurt?]]
 
*[[Project:What's in my yogurt?]]
 
*[[Project:Structured Data]]
 
*[[Project:Structured Data]]
*[[Project:Internationalization]] & [[Global taxonomies]] & [[Translations]]
+
*[[Project:Internationalization]] & & [[Translations]]
*[[Project:Fast Food]]
 
 
*[[Project:Gamification]]
 
*[[Project:Gamification]]
 
*[[Project:Google Glass]]
 
*[[Project:Google Glass]]
*[[Project:Made Near You]]
+
 
*[[Project:Media monitoring]]
 
*[[Project:Non Standard Barcodes]]
 
*[[Project:OCR]]
 
*[[Project:Public Data]]
 
*[[Project:Roadmap]]
 
*[[Project:Social Media]]
 
*[[Project:Stands]]
 
 
*[[Project:ProductOpener]]
 
*[[Project:ProductOpener]]
*[[Project:Food Open Data Challenge UK 2014]]
 
*[[Project:EU Project Citizen Observatories]]
 
 
*[[Project:Redesign]]
 
*[[Project:Redesign]]
 
*[[Project:Food establishments]]
 
*[[Project:Food establishments]]

Latest revision as of 18:10, 1 February 2024

Old list

The new list for 2018 projects is here: https://en.wiki.openfoodfacts.org/Student_projects/GSOC/Proposals


Here is the list of Open Food Facts proposed projects for the Google Summer of Code.
Any questions can be asked on the dedicated channel on Slack (https://openfoodfacts.slack.com/messages/summerofcode)

Match OpenCorporates data to OpenFoodFacts with simple user controls

OpenCorporates is an ODBL licensed dataset with an API. Many of the companies that manufacture food have a specific legal entity which should be identifiable in OpenCorporates.

From https://github.com/openfoodfacts/openfoodfacts-server/issues/1072

* Capture the legal entity (name, street address, suburb, state, country or similar geographic modelling) 
* When country/state are present, provide users with an autocomplete control looking up the OpenCorporates API
* Suggest matches based on suburb, state, country(jurisdiction) and name; setting an OpenCorporatesID


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
  • 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
  • Create a mini-game to let users turn the Raw OCR into data

See also:Project:OCR Mentor: Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend), Pierre (OCR)
Technologies: Perl, MongoDB

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

Mentor: Stéphane and Pierre
Technologies: Strong UX skills, good knowledge of Cordova, good HTML and Javascript

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

Mentor: Herau, Itchix and Pierre
Technologies: Strong UX skills, good knowledge of Android Java

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.

Mentor: Aleene, Pierre
Technologies: good knowledge of Swift, Knowledge and interest in UI/UX

Define a proper RESTful 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 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.

Mentor: Anca, Stéphane, Vincent (API design), Aleene
Technologies: Experience with using (and building) APIs, knowledge of REST,

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… 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.

Mentor: TBD (Anca)
Technologies: Java, Swift/ObjC or Web technologies (Cordova…)

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). 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. See Global taxonomies for more details on taxonomies

Mentor: Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend), Anca (frontend)
Technologies: Perl, some HTML/JS

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. 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.

Mentor: Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend)
Technologies: Perl, some HTML/JS

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.
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.

Mentor: Stephane (mainly for the API and product-opener requirements)
Technologies: Your choice: will require both front and backend-skills.

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.

Mentor: Anca, Pierre, Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend)
Technologies: some Perl, HTML/JS, REST

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.

Mentor: Stephane (backend), Sebastien (backend), Johannes (backend), Laurent (backend), Anca, Pierre (frontend and UX)
Technologies: Perl, HTML/JS, UI/UX

Product comparison implemented in the mobile app

An important usage of the Open Food Facts database is in the area 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)
  • bringing to mobile the feature of comparing nutritional info of products of the same category
  • bringing charts to
  • etc.

Mentor: Stephane, Anca, Pierre, Qian(Android), herau (Android), itchix (Android), aleene (iOS)
Technologies: Mobile language (see above on the mobile proposals), UI/UX, Statistics basics

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

Mentor: Pierre
Technologies: Your language of choice. The current script is in Python, Text processing

Add content management capabilities to all static pages of 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.

Mentor: Anca, Stephane or Sebastien
Technologies: basic understanding of CMS, Perl or other technology(?)

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:

  • Automatically fetch relevant information from Wikidata about categories, labels, additives, ingredients…
  • Display them in a human readable way on relevant pages and as tooltips
  • Expose this information in the API.

Mentor: Pierre (wikidata)
Technologies: Perl, REST, Open data concepts, Wiki data

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.

Mentor: depending on your tech choice
Technologies: Any web language (Rail, Python, Backend JS framework…)

Create a bot to perform smart edits on the products

Open Food Facts already has a couple of basic editing bots in Perl and Ruby. You will have to expand the bindings of your choice, and design a series of sensible edition rules and create an easy to use edition bot based on it.

Mentor: Pierre (Python), Nicolas (Ruby)…
Technologies: Pick your favorite

Create a contribution quality score

Predict if a contribution is of high or low quality using several signals and techniques Mentor: Stéphane…
Technologies: Pick your favorite

Create an Android Wear lookup app

Enable browsing Open Food Facts with Android Wear. For lack of a camera, You will use the native input methods to type the barcode, and design simple way to access the most essential information

Mentor:Qian, Herau, itchix
Technologies:

Create a Google Cardboard / Daydream compatible viewer app

Enable browsing Open Food Facts in VR with Google Cardboard or Google Daydream.

Mentor:Qian, Herau
Technologies:

Expand the Hololens prototype

Niwra has created a Hololens able to display multilingual ingredients in your field of view. Finish implemeting the API (labels, categories) in the Hololens app. Add contribution abilities (taking photos) Mentor:Niwra
Technologies:UWP, C…


Create a connected microwave prototype

  • Create a connected microwave prototype that uses Open Food Facts data and a barcode scanner or computer vision techniques to assess products taken in and out of the microwave, find the product and choose the right cooking programme accordingly.

Project:Microwave

Mentor:Qian
Technologies: Arduino or your own

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.
Mentor:Qian
Technologies: Arduino or your own

Create a smart bin prototype

Create a smart bin prototype that uses Open Food Facts data and a barcode scanner or computer vision techniques to assess products thrown away in the bin, and give recycling instructions.
Mentor:Qian
Technologies: Arduino or your own

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.

Other ideas