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

From Open Food Facts wiki
Jump to navigation Jump to search
Line 29: Line 29:
 
'''Language:'''Strong UX skills, good knowledge of Swift<br>
 
'''Language:'''Strong UX skills, good knowledge of Swift<br>
  
=== Refactor the API ===
+
=== Define a proper clean API (new version) ===
 
Use Swagger to create a self documenting API and automatic bindings for various programming languages.
 
Use Swagger to create a self documenting API and automatic bindings for various programming languages.
  

Revision as of 23:53, 8 February 2017

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)

Integrate a cloud-based OCR into Product Opener

  • 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

Mentor:Stéphane or Laurent
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)

Insert description. Mentor:Aleene, Pierre
Language:Strong UX skills, good knowledge of Swift

Define a proper clean API (new version)

Use Swagger to create a self documenting API and automatic bindings for various programming languages.

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

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
Language:Any web language (Rail, Python, Backend JS framework)

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
Language: Java, Swift/ObjC or Web technologies (Cordova…)

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.

Mentor:Stephane or Laurent
Language: 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 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.

Mentor:Stephane or Laurent
Language: 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)
Language: Your choice: will require both front and backend-skills.

Bulk edit with web GUI for mass product modifications

...

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. Mentor:Pierre
Language: Pick your favorite

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.

Re-work gamification and make it an important part of the User experience

...

Product comparison implemented in the mobile app

  • 2 by 2, scanned by bar codes or input by text (supermarket mode)
  • the web feature of comparing nutritional info of products of the same category
  • charts on mobile
  • other usages of comparisons

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 comes in many formats (XLS, CSV, HTML, and yes, even PDF). This project is 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
Language: Your language of choice. The current script is in Python

Add content management capabilities to all static pages of the product opener

Create a connected microwave prototype

Create a connected fridge prototype

Create a smart bin prototype

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