Code Monkey home page Code Monkey logo

openfoodfacts / openfoodfacts-server Goto Github PK

View Code? Open in Web Editor NEW
614.0 34.0 358.0 2.35 GB

Open Food Facts database, API server and web interface - 🐪🦋 Perl, CSS and JS coders welcome 😊 For helping in Python, see Robotoff or taxonomy-editor

License: GNU Affero General Public License v3.0

CSS 0.14% HTML 48.88% JavaScript 2.56% Perl 44.43% Shell 0.84% Dockerfile 0.09% Python 1.02% XSLT 0.02% SCSS 1.68% Makefile 0.22% TypeScript 0.05% PHP 0.07%
food food-products perl database crowdsourcing nutrition recycling allergies allergens hacktoberfest

openfoodfacts-server's Introduction

(Looking for the Open Food Facts API doc ?)

Open Food Facts - Product Opener (Web Server)

Project Status Crowdin Open Source Helpers Backers on Open Collective Sponsors on Open Collective GitHub language count GitHub top language GitHub last commit Github Repo Size

Tests

Pull Requests

What is Product Opener?

Product Opener is the server software for Open Food Facts and Open Beauty Facts. It is released under the AGPL license and is being developed in Perl, HTML and JavaScript as Free and Open-Source Software.

It works together with Robotoff, Open Food Facts' AI system (in Python, which can also be installed locally) and the Open Food Facts App (which can work with your local instance after enabling dev mode)

What is Open Food Facts?

A food product database

Open Food Facts is a database of food products with ingredients, allergens, nutritional facts and all the tidbits of information that is available on various product labels.

Made by everyone

Open Food Facts is a non-profit association of volunteers. 25,000+ contributors like you have added 1.7 million+ products from 150 countries using our Android, iPhone and Windows Phone apps or their camera to scan barcodes and upload pictures of products and their labels.

For everyone

Data about food is of public interest and has to be open (i.e available to everyone). The complete database is published as open data and can be reused by anyone and for any use. Check-out the cool reuses or make your own!

Visit the website for more info.

Weekly Meetings

  • We e-meet on Mondays at 17:00 Paris Time (Europe/Paris), which is CET (UTC+1) or CEST (UTC+2 during Daylight Saving Time). For easy conversion in local time, check 17:00 in Paris.
  • Google Meet Video call link: https://meet.google.com/nnw-qswu-hza
  • Join by phone: https://tel.meet/nnw-qswu-hza?pin=2111028061202
  • Add the event to your calendar by adding the Open Food Facts community calendar to your calendar.
  • Weekly agenda: please add the Agenda items as early as you can.
  • Make sure to check the agenda items in advance of the meeting, so that we have the most informed discussions possible.
  • The meeting will handle agenda items first, and if time permits, collaborative bug triage.
  • We strive to timebox the core of the meeting (decision making) to 30 minutes, with an optional free discussion/live debugging afterwards.
  • We take comprehensive notes in the weekly agenda of agenda item discussions and of decisions taken.

Feature Sprint

User Interface

Priorities

How do I get started?

Note: Documentation follows the Diátaxis Framework.

Contribution Guidelines

If you're new to Open-Source, we recommend you to check out our Contributing Guidelines. Feel free to fork the project and send us a pull request.

  • Writing tests
  • Code review

Please add new features to the CHANGELOG.md file before or after merge to make testing easier

Reporting problems or asking for a feature

Have a bug or a feature request? Please search for existing and closed issues. If your problem or idea is not addressed yet, please open a new issue. You can ask directly in the discussion room if you're not sure.

Translate Open Food Facts in your language

You can help translate the Open Food Facts web version and the app at: https://translate.openfoodfacts.org/ (no technical knowledge required, takes a minute to signup).

Helping with HTML and CSS

We have templatized Product Opener, we use Gulp and NPM, but you'll need to run the Product Opener docker to be able to see the result (see the How do I get set started? section). In particular, you can help with issues on the new design.

Who do I talk to?

Join our discussion room at https://slack.openfoodfacts.org/. Make sure to join the #productopener and #productopener-alerts channels. Stéphane, Pierre, Charles or Hangy will be around to help you get started.

Contributors

This project exists thanks to all the people who contribute.

Backers

Thank you to all our backers! 🙏 [Become a backer]



Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. Become a sponsor

Logo NLnet: abstract logo of four people seen from above Logo NGI Zero: letterlogo shaped like a tag

Open Food Facts Personal Search project was funded through the NGI0 Discovery Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme.

openfoodfacts-server's People

Contributors

acuariocat avatar aleene avatar alexgarel avatar areeshatariq avatar ban3 avatar benbenben2 avatar bradfora avatar charlesnepote avatar dependabot-preview[bot] avatar dependabot[bot] avatar dipietror avatar github-actions[bot] avatar hangy avatar jolesh avatar lan33 avatar monalikapatnaik avatar moon-rabbitoff avatar mrmd8 avatar nerocro avatar openchris avatar openfoodfacts-bot avatar raphael0202 avatar roshnaeem avatar roto15 avatar stephanegigandet avatar svensven avatar syronanm avatar teolemon avatar vaiton avatar yuktea avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openfoodfacts-server's Issues

Allow ambassadors to create a referral URL

What

  • Going forward, It would be good to register ambassadors automatically.
  • One way to do it would be a unique URL, that an ambassador can send to the potential new contributors.
  • When a user creates an account from that URL, the ambassador will be linked with the new contributor

Part of

Support for allergens in ingredients list

Since December 13th 2014, ingredients lists now have allergens in bold/italic/underline.
In Open Food Facts, we can create a special syntax to surround allergens with underscores.

e.g. protéines de lait, farine de froment (gluten)
(github transforms underscored words to italic)

Phases:

  1. Accept the enhanced syntax, display allergens in bold.
  2. Add allergerns from the ingredient list as "allegerns" tags (similar to the current "traces")
  3. Create a taxonomy for allergens / traces.
  4. Autodetection of allergens in ingredients lists that do not use the new syntax?

Possible extensions:

A. * for organic ingredients, ** for fair trade ingredients, *** for organic + fair trade ingredients

Product Opener always assigns product to Åland Islands

Tacite:
When I write "德国" (Germany) in "Countries where sold" on OFF China, it converts to "奥兰群岛" (Åland Islands), but if I write "Germany" it convert to "德国". Weird

In some cases, Product Opener will default to Åland Islands if the recognition is ineffective.

Search - "Products search" page only uses "EMB code" to generate Maps

What

  • Currently only the "EMB code" is used in the process of generating maps.
  • It would be beneficial to be able to use all 5 location aware field:
Origin of ingredients
Manufacturing or processing places
EMB code
City, state and country where purchased
Countries where sold
  • Some of the information above is highly accurate and should get a highly accurate output:
EMB code
City, state and country where purchased
  • Some information is likely to be less accurate, and should be grouped in a country wide counts:
Origin of ingredients
Manufacturing or processing places
Countries where sold

Part of

Add "criteria" in the "Products search" page

What

  • I found multiple criteria to be missing from the drop down.

Current list:

brands
categories
packaging
labels
origins of ingredients
packager codes
purchase places
stores
additives
allergens
traces
states

Expected list (using underscore for the missing one)

brands
_product name_
_Common name_
categories
packaging
labels
origins of ingredients
_Manufacturing or processing places_
packager codes
purchase places
stores
_Countries where sold_
additives
allergens
traces
states

Other field that would benefit from being in the list but add complexity:

Quantity
Best before date
picture
Link to the product page on the official site of the producer

Part of

OFF needs to use GetText for translations.

That way, we'd be able to import existing translations into Launchpad to avoid loss of translation work, and in turn, distribute translation work using Launchpad or any Gettext compatible system

Make it easy to merge products when moving a product to another project

What

Make it easy to merge products when moving a product to another project (eg Open Beauty Facts), that you have new data, but the product already exists on Open Beauty Facts

Code barre : 2727846181615
Merci de corriger les erreurs suivantes :
Un produit existe déjà avec le nouveau code

OpenFoodFacts should make it easy to merge items.

Part of

Add a style guide / graphic charter

In order to have people use the OpenFoodFacts image accordingly, we need to provide a guide.
That guide would be a reference for both internal and external use

Provide md5sum/sha256 sum for the data dump

In order to prove that the data hasn't been tempered with, the dumps available on the data page should have their associated fingerprint.
This will allow user to ensure that the data they downloaded are the same as the one we publish.

Fix upload dialog box that shows up unexpectedly

Some user report being presented with a upload dialog box when clicking on different part of the website.
I personally get one when clicking on the numbers available on the points page http://world.openfoodfacts.org/points

Previous discussion talked about " the <input id="imgupload_search" ..> is in a huge 1760x408 box when javascript is disabled".
Also "weird css rules [being] applied"

border-width: 0px 0px 100px 200px;
opacity: 0;
transform: translate(-300px, 0px) scale(4);
.fileinput-button {
 position: relative;
 overflow: hidden;
}
.fileinput-button input {
 position: absolute;
 top: 0;
 right: 0;
 margin: 0;
 border: solid transparent;
 border-width: 0 0 100px 200px;
 opacity: 0;
 filter: alpha(opacity=0);
 -moz-transform: translate(-300px, 0) scale(4);
 direction: ltr;
 cursor: pointer;
} 

And finally the version of "https://github.com/blueimp/jQuery-File-Upload" being old.

Add "contributor" to the searching capability of the "Products search" page

It would be beneficial to be able to graph and map contribution by user from the product search page.

So far one can only search by contributor, fromt the home page link.
Here is an example of how a search can be done from this link

It has the following shortcomings:

  • It doesn't produce graphs.
  • It doesn't produce maps.
  • It doesn't produce CSV.
  • One user looking for contributor, will only find the contributor after she choose a country (world. pl. uk. etc.).
  • Choosing a country implies a language, since languages selections are done against a country.
  • One can choose a maximum of 2 criteria in the follwoing set "countries, brands, categories, labels, packaging, origins of ingredients, manufacturing or processing places, packager codes, ingredients, additives, allergens, traces, contributors, states".

Add a way to sort by completeness in the "Products search" page

So far one can sort the results by the following

Popularity
Product name
Add date
Edit date

Here is a user story: "A user want to find all the items purchased in belgium that are not completed"
It would be beneficial to be able to sort items by the level of completeness.

Allow better control over additive color coding

Depending on the version of the website, some color coding can be encountered.
The goal of this feature request is to allow better transparency on the source for the color coding and better control over what source a user want to choose.

Color coding is there as a visual clue on possible adverse effect an additive is regarded to have.
Some additives are even banned in some countries, either by food regulators or by religious authorities.
Other studies might cast a doubt on wether an additive should be regarded as 'bad' or not.

The best way to deal with such cases would be to have a preset per country.
That would serve as a base for user not logged.
User would then be able to add their own color scheme.

Get checkbot to skip "error on label"

When label are wrong, we keep the data from the label.
We should tag those product "error on label" (as opposed to error by the person that typed the product in).

Checkbot should not repport those as a problem, hence skip the product with "error on label"

Search - Split "Nutriments" dropdown into "Nutriments" and "other" on the "Products search" page

What

  • I'm not sure what is the best way going forward.
  • What I'm sure is that the following items do not belong in the "Nutriments" dropdown
Fruits, vegetables and nuts (minimum)
Collagen/Meat protein ratio (maximum)
Carbon footprint / CO2 emissions
Experimental nutrition score
Nutrition score - UK

Let's discuss how to make the above item part of the graphing experience where one can find them

Part of

Mention every informers

Product pages footers state :
"Product added on 02/05/15 00:25 by bcatelin"

We could add more information, like :
"Product added on 02/05/15 00:25 by bcatelin, modified by X, Y, and Z on (last edit date)"

Search - Use the same words for criteria in "Products search" and in the product page (and edition page)

When looking at the list of Criteria available in the products search it is not clear how they relate to the one in the product pages.

Here are the terms that diverge, with the one from the product saerch and their equivalent when you edit a product:

labels => Labels, certifications, awards
packager codes => EMB code
purchase places => City, state and country where purchased

I would like those terms to be the same for clarity's sake.
I don't mind which words are choosen as long as they are the same everywhere.
This should also reflect in translation work and make it easier (less strings to trans;ate).

Part of

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.