• Stars
    star
    771
  • Rank 58,926 (Top 2 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created over 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

(Legacy) Native version of Open Food Facts on Android - Coders & Decoders welcome 🤳🥫

Open Food Facts - Android app

The new Open Food Facts app is located HERE

Note: This codebase is currently only deployed for Open Beauty Facts, Open Pet Food Facts and Open Products Facts apps.

Open Food Facts is collaborative food products database made by everyone, for everyone. Open Food Facts contributors gathers information and data on food products from around the world, using mobile apps.


Project Status Quality Gate Crowdin Build Open Source Helpers

What is Open Food Facts?

A food products database

Open Food Facts is a database of food products with ingredients, allergens, nutrition facts… which allow us to compute scores like Nutri-Score, NOVA groups and Eco-Score.

Made by everyone

Open Food Facts is a non-profit association of volunteers. 25000+ contributors like you have added 1,7M+ products from 150 countries using our Android or iPhone apps 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. The complete database is published as open data and can be reused by anyone.

User flows

Visual documentation of the App on Figma

Documentation of the source code

The documentation is generated automatically from the source code and your improvements to code documentation are published automatically. Code documentation on GitHub pages

Helping with our next release

Here are issues and feature requests you can work on:

What can I work on ?

Open Food Facts on Android has 0,5M users and 1,6M products. Each contribution you make will have a large impact on food transparency worldwide. Finding the right issue or feature will help you have even more more impact. Feel free to ask for feedback on the #android channel before you start work, and to document what you intend to code.

If you don't have time to contribute code, you're very welcome to

Help translate Open Food Facts in your language

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

Installation

Choose the right flavor Install steps
* Download the latest Android Studio stable build.
* If you are running the app for the first time, Android Studio will ask you to install the Gradle dependencies.
* If you are a new contributor to open-source, we recommend you read our Setup Guidelines
* In Android Studio, make sure to select OFF as the default flavor for Open Food Facts (OBF is Open Beauty Facts, OPF - Open Products Facts, OPFF - Open Pet Food Facts)
* You should be able to install Open Food Facts on your phone using an USB cable, or run it in an emulator.
* The package name on the Play Store is org.openfoodfacts.scanner. For historic reasons, it's openfoodfacts.github.scrachx.openfood in the code and on F-Droid.

Running a Fastlane lane

The project uses Fastlane to automate release and screenshots generation.

Who do I talk to?

Contributing

If you're new to open-source, we recommend to checkout our Contributing Guidelines. Feel free to fork the project and send a pull request.

Libraries Used

We use the following libraries, and we're not closed to changes where relevant :-)

If you spot any libraries we added or we don't use anymore, feel free to update this list using a Pull Request.

  • Dagger 2 - A fast dependency injector for Android and Java
  • Retrofit - Retrofit turns your REST API into a Java interface
  • OkHttp - An HTTP+SPDY client for Android and Java applications
  • Mockito - Most popular Mocking framework for unit tests written in Java
  • Apache - The Apache Commons IO library contains utility classes, stream implementations, file filters, file comparators, endian transformation classes, and much more.
  • Kotlin Coroutines - A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.
  • Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
  • Dagger - Manual dependency injection or service locators in an Android app can be problematic depending on the size of your project. You can limit your project's complexity as it scales up by using Dagger to manage dependencies. Dagger automatically generates code that mimics the code you would otherwise have hand-written.
  • Jackson - Core part of Jackson that defines Streaming API as well as basic shared abstractions
  • journeyapps/zxing-android-embedded - Barcode scanner library for Android, based on the ZXing decoder
  • GreenDao
  • mikepenz/MaterialDrawer - The flexible, easy to use, all in one drawer library for your Android project.

Big thanks to their contributors!

Copyright and License

Copyright 2016-2022 Open Food Facts

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and 
limitations under the License.



Contributors

The project was initially started by Scot Scriven, other contributors include:



More Repositories

1

smooth-app

The new Open Food Facts mobile application for Android and iOS, crafted with Flutter and Dart
Dart
773
star
2

openfoodfacts-server

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

openfoodfacts-ios

Native (Swift) version of Open Food Facts for iOS. Coders & Decoders welcome 🤳🥫 😊
Swift
359
star
4

openfoodfacts-python

Python package for Open Food Facts
Python
308
star
5

openfoodfacts-ai

This is a tracking repo for all our AI projects. 🍕 🤖🍼
Python
213
star
6

off-nutrition-table-extractor

Important: Please have a look at the higher level issue in Robotoff: openfoodfacts/robotoff#372 This is an old model and we have made progress since then.
Jupyter Notebook
204
star
7

openfoodfacts-dart

Open Food Facts API Wrapper
Dart
162
star
8

openfoodfacts-laravel

Open Food Facts API wrapper for Laravel
PHP
150
star
9

openfoodfacts-nodejs

Official Node package for Open Food Facts
TypeScript
143
star
10

openfoodfacts-cordova-app-old-with-blob

Open Food Facts App in Cordova (Android)
JavaScript
83
star
11

robotoff

Real-time and batch prediction service for Open Food Facts
Python
72
star
12

openfoodfacts-php

PHP wrapper for Open Food Facts
PHP
57
star
13

openfoodfacts-apirestpython

Python API for Open Food Facts (using a DB dump)
Python
53
star
14

openfoodfacts-go

Go Wrapper for Open Food Facts
Go
51
star
15

openfoodfacts-react-native

Code to send product data and photos to Open Food Facts
JavaScript
40
star
16

openbeautyfacts

Meta project for Open Beauty Facts 💄
36
star
17

open-prices

An open database of prices 🧾💸💰🏷️🤑🍽️
Python
36
star
18

openfoodfacts-ruby

Open Food Facts API Wrapper
Ruby
33
star
19

openfoodfacts-cordova-app

Open Food Facts mobile app, developed with Cordova, for iOS, Android, Windows Phone, FirefoxOS etc.
JavaScript
28
star
20

open-prices-frontend

A vue.js front-end for Open Prices
Vue
25
star
21

hunger-games

One click Mini-Games for Open Food Facts
TypeScript
23
star
22

api-documentation

Version 2 of the documentation of the V1 API. The code behind the API is at https://github.com/openfoodfacts/openfoodfacts-server. An effort is made there to create a V3 of the documentation based on OpenAPI
19
star
23

openfoodfacts-web

Content pages (and translations) for the web version
HTML
16
star
24

taxonomy-editor

Taxonomies are at the heart of Open Food Facts data structure - this project provides an editor
Python
15
star
25

openfoodfacts-kotlin

Official Kotlin package for Open Food Facts
Kotlin
12
star
26

openfoodfacts-java

Java Wrapper for OpenFoodFacts
Java
12
star
27

power-user-script

User script for your browser, to empower Open Food Facts contribution
JavaScript
11
star
28

rate-my-recipe

A project allowing you to get the Nutri-Score, Eco-Score…on your own food recipe
TypeScript
11
star
29

folksonomy_api

A light REST API designed for Open Food Facts folksonomy engine
Python
11
star
30

openfoodfacts-hungergames

One click Mini-Games for Open Food Facts for: categories, labels, weight, brands, logos… We'd need to port and improve nutrition and ingredients from the old version.
Vue
9
star
31

eu-food-data

This repository aggregates food packaging codes available about European countries, and foreign countries trading with the EU.
HTML
9
star
32

openbeautyfacts-ruby

Open Beauty Facts API Wrapper 💎💄
Ruby
8
star
33

search-a-licious

🍊🔎 A pluggable search service for large collections of objects (like Open Food Facts)
Python
8
star
34

off-category-classification

Jupyter Notebook
8
star
35

openfoodfacts-ubuntu

Open Food Facts project for Ubuntu Touch
QML
7
star
36

openfoodfacts-events

Events repository and API for product scans, photo uploads, robotoff annotations etc.
Python
7
star
37

community-portal

A community portal for Open Food Facts contributors
Python
6
star
38

openfoodfacts-resources

Resources (images, SVGs, presentations etc.) for the Open Food Facts project
CSS
6
star
39

facets-knowledge-panels

Providing knowledge panels for a particular open food fact facet (category, brand, etc...)
Python
6
star
40

openfoodfacts-explorer

An alternative frontend for OpenFoodFacts, made with SvelteKit
Svelte
5
star
41

openfoodfacts-hungergames-react

One click categorizer for Open Food Facts
JavaScript
5
star
42

openfoodfacts-design

5
star
43

impactestimator

Service providing product level Eco-Score for OFF products.
Python
4
star
44

ruby-games

Games to complete data on Open Food Facts
Ruby
4
star
45

openfoodfacts-elixir

Elixir
4
star
46

robotoff-models

Models for Robotoff, the Open Food Facts AI
4
star
47

openfoodfacts-rust

Rust SDK package
Rust
4
star
48

openfoodfacts-translations

Translations for the Open Food Facts blog. Most of the other folders are being moved elsewhere.
HTML
4
star
49

hungergames-old

Gamification of Open Food Facts using Python and Django
Python
4
star
50

openfoodfacts-java-demo

Demo application using Java Wrapper for OpenFoodFacts
Java
3
star
51

off-product-environmental-impact

A fork of https://framagit.org/GustaveCoste/off-product-environmental-impact
Jupyter Notebook
3
star
52

recipe-estimator

A recipe estimator for Open Food Facts products
Python
3
star
53

www

Repository for phonegapbuild
JavaScript
3
star
54

openfoodfacts-moodstocks

Open Food Facts app with Moodstocks scanner
Java
2
star
55

openbeautyfacts-cordova-app

JavaScript
2
star
56

fastlane-descriptions-smoothie

Automation of the Play Store and App Store listings for Smoothie with Fastlane
Ruby
2
star
57

r-dashboard

R
2
star
58

openfoodfacts-upptime

📈 Uptime monitor and status page for Open Food Facts, powered by @upptime
Markdown
2
star
59

egg-codes

Repository for Egg Codes
2
star
60

folksonomy_engine

2
star
61

nutripatrol

A moderation tool for Open Food Facts
Python
2
star
62

contributor-quality-issues

Report data quality issues due to contributing apps/users
1
star
63

openfoodfacts-metrics

1
star
64

openfoodfacts-connect

1
star
65

openfoodfacts-infrastructure

Where we collaboratively plan and maintain the infrastructure of Open Food Facts
Shell
1
star
66

openfoodfacts-marketing

1
star
67

openfoodfacts-csharp

C#
1
star
68

msc-codes

List of MSC Codes for Open Food Facts
1
star
69

fastlane-descriptions

JavaScript
1
star
70

folksonomy_frontend

Folksonomy Engine front end
JavaScript
1
star
71

brand-data

1
star
72

openfoodfacts-monitoring

Makefile
1
star
73

openfoodfacts-build-cache

A repo to store some build caches (when github cache is not the right option)
1
star
74

openfoodfacts-corrector

Ruby script to correct and enhance data on OpenFoodFacts
Ruby
1
star
75

openfoodfacts_flutter_lints

Lints for OpenFoodFacts Flutter apps & packages
Dart
1
star
76

openproductsfacts

1
star
77

openfoodfacts-ffos

Repo for the Firefox OS port of Open Food Facts
JavaScript
1
star
78

.github

A repository for default files such as style guides, issue templates, etc.
1
star
79

openfoodfacts-swift

Swift
1
star
80

nutripatrol-frontend

The front-end (React) of nutripatrol moderation tool
TypeScript
1
star
81

recipe-estimator-metrics

Metrics framework for recipe estimation (estimating percentage of each ingredient)
Python
1
star