GSOC/2023 ideas list

From Open Food Facts wiki
Revision as of 10:59, 7 February 2023 by Teolemon (talk | contribs)
Jump to navigation Jump to search

Ideas for GSOC 2023 will be posted here. There are just ideas, and are non limitative.

Server-side

A New API: Simplify and unify the Open Food Facts API used by 200+ apps

Description

Open Food Facts provides a free and open API to read, search and write products data and photos. This API powers more than 200 apps developed by 3rd parties, and is also used by many tools like our AI platform Robotoff and our power contribution tool Hunger Games. Our API is unfortunately very difficult to understand and use as it evolved organically in the last 10 years. It's not 1 API in fact, it's several APIs to do different things, and we have multiple versions of those APIs, each with a different state of features and documentation. This project aims to bring "A New API" to our many reusers. An API that is simple, unified, easy to understand and use, well documented (with OpenAPI) and well tested.

Expected outcomes

We started to build a new API v3 to provide a clean, generic and unified way to query all API features of Open Food Facts. This new API v3 is currently available for only a very small subsets of our existing APIs: product read, a very small subset of product write, and taxonomy suggestions.

This project is about revisiting one by one all existing APIs to:

  1. Decide which feature should be added, changed (or maybe even removed)

  2. Define the API for each feature (e.g. method, path, parameters, query and response headers and bodies etc.) and document it using OpenAPI.
    This step is critical to ensure that the API will be both useful and used, and will need to be done in coordination with existing users of the API.

  3. Implement the API for the feature and add integration tests for it

APIs that needs to be converted to API v3:

  • Product image upload, selection and crop

  • Full support for product write (should be done incrementally)

  • Search

  • Taxonomy read

  • User creation and profile edition

  • Authentification

Project information

Bring Taxonomy editor to a fully usable tool