Changes

Jump to navigation Jump to search
1,523 bytes added ,  16:25, 26 November 2021
testing
Line 1: Line 1: −
== Introduction ==
+
'''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|Diagram explaining the infrastructure of ''Product Opener'']]
 
  −
[[File:ProductOpenerStructure.png|thumbnail]]
      
== Open source ==
 
== Open source ==
   −
Product Opener will be released under an open source licence so that it can be reused by other projects, for instance to open the data for other types of products.
+
Product Opener is released under the [https://en.wikipedia.org/wiki/GNU_Affero_General_Public_License GNU Affero License], a free, copyleft license so that it can be reused by other projects, for instance to open the data for other types of products.
   −
The Product Opener original code includes code related to the original developer's other projects. Efforts are under way to clean, decouple and document the Product Opener code so that it can be released as open source.
+
Product Opener original code includes code related to the original developer's other projects. Efforts are under way to clean, decouple and document the Product Opener code so that it can be released as open source.
    
== Components ==
 
== Components ==
Line 24: Line 22:  
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 49: Line 48:     
=== 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 54: Line 54:  
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 75: Line 77:     
and [[Product Opener installation on Debian / Ubuntu]]
 
and [[Product Opener installation on Debian / Ubuntu]]
 +
 +
For updated installation instructions see [[Infrastructure]]
 +
 +
== Testing ==
 +
Product Opener is a big software with dozens of features. For each important project/modification, we should do tests.
 +
 +
This tests can be listed and used at the [[Product Opener/Acceptance testing]] page.
 +
 +
== Maintenance tasks ==
 +
* [[Product Opener - How to update a taxonomy]]
 +
* [[Product Opener - How to update interface translations in Lang.pm]]
    
== Documentation ==
 
== Documentation ==
Line 83: Line 96:  
[[Category:ProductOpener]]
 
[[Category:ProductOpener]]
 
[[Category:Developer]]
 
[[Category:Developer]]
 +
 +
== Draft roadmap ==
 +
Note: Those are propositions
 +
* Templatize the pages
 +
* Create pathways to account creation
 +
** [https://github.com/openfoodfacts/openfoodfacts-server/issues/3158 Show Robotoff questions to non-logged users, with a prompt to sign-up or login]
 +
* Inline editing
 +
* Simplify the UI (place UI elements according to web standards, use a newer CSS framework, material design…)
 +
* Simplify the product page
 +
** Inline value added data from linked pages (eg Packager Codes, Additives)
 +
** Hide complexity or low value things
 +
* [https://github.com/openfoodfacts/openfoodfacts-server/issues/1686 Create a landing page]
 +
* Document the API (and other things) inside the code to auto-generate SDKs and doc
 +
* Modernize search
 +
* Integrate features from the Power User Script into the web version

Navigation menu