Line 1: |
Line 1: |
− | Project 7: Build a taxonomy editor
| + | === Build a taxonomy editor === |
| Description: | | Description: |
| | | |
| Taxonomies are at the heart of openfoodfacts in many aspects. It helps identify components (ingredients, labels, brands,…) and link them to useful properties, at the base of nutri-score, eco-score, allergens identification and some other properties. | | Taxonomies are at the heart of openfoodfacts in many aspects. It helps identify components (ingredients, labels, brands,…) and link them to useful properties, at the base of nutri-score, eco-score, allergens identification and some other properties. |
| | | |
− | Each taxonomy is a DAG (directed acyclic graph) where leaves have one or more parents. Currently the taxonomy is in a raw text file in our repository: https://github.com/openfoodfacts/openfoodfacts-server/tree/main/taxonomies. | + | Each taxonomy is a DAG (directed acyclic graph) where leaves have one or more parents. Currently the taxonomy is in a raw text file in our repository: <nowiki>https://github.com/openfoodfacts/openfoodfacts-server/tree/main/taxonomies</nowiki>. |
| | | |
| While effective for the application, this format is quite cumbersome to edit for contributors. | | While effective for the application, this format is quite cumbersome to edit for contributors. |
Line 14: |
Line 14: |
| The tool should: | | The tool should: |
| | | |
− | help quickly find an element with a search | + | * help quickly find an element with a search |
− | | + | * help visualize the hierarchy of components |
− | help visualize the hierarchy of components | + | * help visualize the component, it’s synonyms in multiple languages |
− | | + | * indicate inherited properties for an element, and signal when there are more than one |
− | help visualize the component, it’s synonyms in multiple languages | + | * enable edition of those names, synonyms and properties |
− | | + | * run some validation on names, synonyms and properties (no duplicate, specific formats, etc.) |
− | indicate inherited properties for an element, and signal when there are more than one | |
− | | |
− | enable edition of those names, synonyms and properties | |
− | | |
− | run some validation on names, synonyms and properties (no duplicate, specific formats, etc.) | |
| | | |
| As a bonus, it would be really interesting to know the impact of a modification on the application. For that we could imagine simple API’s (one for each taxonomy) on the openfoodfact application to visualize which products would be affected by a change. This feedback could be a really interesting tool to ensure no error is made (unexpected side effects) | | As a bonus, it would be really interesting to know the impact of a modification on the application. For that we could imagine simple API’s (one for each taxonomy) on the openfoodfact application to visualize which products would be affected by a change. This feedback could be a really interesting tool to ensure no error is made (unexpected side effects) |
Line 32: |
Line 27: |
| Skills required/preferred: The candidate should be creative, but also have a good logical thinking capacity and also be able to track possible problems ahead. | | Skills required/preferred: The candidate should be creative, but also have a good logical thinking capacity and also be able to track possible problems ahead. |
| | | |
− | Slack channels: #taxonomies | + | * Slack channels: #taxonomies |
− | | + | * Potential mentors: Stéphane Gigandet / Alexandre Garel |
− | Potential mentors: Stéphane Gigandet / Alexandre Garel | + | * Project duration: 350h |
− | | + | * Difficulty rating: Medium |
− | Project duration: 350h | |
− | | |
− | Difficulty rating: Medium | |