Changes

Jump to navigation Jump to search
526 bytes added ,  20:02, 22 October 2015
Line 2: Line 2:     
Product Opener is the software used by Open Food Facts to create and maintain its collaborative database of food products in open data.
 
Product Opener is the software used by Open Food Facts to create and maintain its collaborative database of food products in open data.
 +
 +
[[File:ProductOpenerStructure.png|thumbnail]]
    
== Open source ==
 
== Open source ==
Line 16: Line 18:     
The data for each product is stored in a structured object (several levels of hashes and arrays). The data is stored on disk in individual files in Perl's binary format for objects (Storable). The history of each change to the product data is also saved in the same format. There is one binary file for each version.
 
The data for each product is stored in a structured object (several levels of hashes and arrays). The data is stored on disk in individual files in Perl's binary format for objects (Storable). The history of each change to the product data is also saved in the same format. There is one binary file for each version.
 +
[[File:ProductOpenerDataStructure.png|thumbnail]]
    
==== Product data index ====
 
==== Product data index ====
Line 21: Line 24:  
The current version of each product is stored in a MongoDB database. The database includes indexes and is used to search and display products.
 
The current version of each product is stored in a MongoDB database. The database includes indexes and is used to search and display products.
 
MongoDB allow storing structured objects as-is, so there is an exact correspondence between Perl's internal format, MongoDB's format and the JSON export of the API.
 
MongoDB allow storing structured objects as-is, so there is an exact correspondence between Perl's internal format, MongoDB's format and the JSON export of the API.
 +
[[File:Perlmongodb.png|thumbnail]]
    
=== Product images ===
 
=== Product images ===
Line 46: Line 50:     
=== Product Opener API ===
 
=== Product Opener API ===
 +
[[Project:API|See Detailed Page: Project:API]]
    
Product Opener provides a JSON API to search products and read their data.
 
Product Opener provides a JSON API to search products and read their data.
Line 51: Line 56:  
There is also a limited API to upload product images and edit some of the product data that is used by the mobile applications.
 
There is also a limited API to upload product images and edit some of the product data that is used by the mobile applications.
   −
The API functionality is currently provided by the Product Opener Web Server, but it may change in the future (e.g. at some point we could implement a full API for accessing (reading + writing) the Product Opener database, and have the Web Server call the API instead of going directly to the database).  
+
The API functionality is currently provided by the Product Opener Web Server, but it may change in the future (e.g. at some point we could implement a full API for accessing (reading + writing) the Product Opener database, and have the Web Server call the API instead of going directly to the database).
    
=== Product Opener client applications ===
 
=== Product Opener client applications ===
    
==== Apache Cordova mobile app for Android, iOS and Windows Phone ====
 
==== Apache Cordova mobile app for Android, iOS and Windows Phone ====
 +
 +
[[Mobile App Development Notes|See detailed article: Mobile App Development Notes]]
    
The current Open Food Facts mobile apps for Android, iOS and Windows Phone are developed with Apache Cordova (previously known as Phonegap) with the same HTML + Javascript (including jquery and jquerymobile) code base.
 
The current Open Food Facts mobile apps for Android, iOS and Windows Phone are developed with Apache Cordova (previously known as Phonegap) with the same HTML + Javascript (including jquery and jquerymobile) code base.
Line 67: Line 74:  
== Installation ==
 
== Installation ==
   −
(In progress.)
+
(in progress)
    
See [[Product Opener installation]]
 
See [[Product Opener installation]]
    
and [[Product Opener installation on Debian / Ubuntu]]
 
and [[Product Opener installation on Debian / Ubuntu]]
 +
 +
== Maintenance tasks ==
 +
* [[Product Opener - How to update a taxonomy]]
 +
* [[Product Opener - How to update interface translations in Lang.pm]]
 +
 +
== Documentation ==
 +
 +
(in progress)
 +
 +
[[Product Opener documentation]]
 +
[[Category:ProductOpener]]
 +
[[Category:Developer]]

Navigation menu