GSOC/2025 ideas list
Here are ideas for GSOC There are just ideas, and are non limitative.
IMPORTANT:
- for an introduction on how to candidate, read https://world.openfoodfacts.org/google-summer-of-code
- take also the time to visit our website to understand the project more in depth.
Open Food Facts proposals
Folksonomy Engine: a one size fit all for any product data
Description
At Open Food Facts we are on a mission to collect any factual data about food products, but also cosmetics, and any products. Modelling every possible products is a challenging task but also topics can be very different based on usage. For example some researchers are interested in knowing the correlation between sugar in cereals and the presence of a cartoon on the front package.
Faithful to our crowded sourced approach to open data collection, we devised Folksonomy Engine, akin to the way Open Street Map works.
The basics are there, but we need to make it more easy and efficient to use in order to reach a large public. We must introduce better properties suggestion, reusable widgets and
Expected outcomes
The project, should deliver new API features, like suggestion based on popularity and categories, a better handling of nested properties values, tools for exploring and merging values.
It should also deliver an improved reusable javascript based web interface for display and edition, with maybe some formalization of properties definition.
The roadmap can be changed while iterating over features, to better achieve the goal of usability by a large variety of contributors.
Project information
- repository: https://github.com/openfoodfacts/folksonomy_api (and https://github.com/openfoodfacts/folksonomy_frontend)
- Slack channels: #folksonomy_engine
- Potential mentors: Alex G. (slack: Alex G., alex -at- openfoodfacts.org, github: alexgarel), Charles Nepote
- Project duration: 175 hours or 350 hours
- Skills required: Python, Javascript
- Difficulty rating: Medium
Add a way to easily extend the features of the Open Food Facts website, mobile app and reusing apps
Description
Open Food Facts gathers raw product data and computes attributes (e.g. nutritional and environmental scores, allergens) that users can filter and rank products on, and knowledge panels to provide useful and actionable information (e.g. information about ingredients). We already have an internal API for sending attributes and knowledge panels to the Open Food Facts website and mobile app. We now want to make it much easier to our community to create new attributes and knowledge panels to create extensions for our website, app and all the apps that reuse Open Food Facts data.
Expected outcomes
The task is to create a standalone system in Python to compute attribute and knowledge panels from the raw JSON product data (we already have a standalone sytem to compute panels for categories that can be reused as a model). The system should make it easy for community developers to create and test new attributes and knowledge panels. As a first use case, the system will provide attributes and panels to let users declare that they do not eat specific ingredients of their choosing.
Project information
- repository: https://github.com/openfoodfacts/facets-knowledge-panels
- Slack channels: #productopener
- Potential mentors: Stéphane Gigandet, Pierre Slamich, Alex Garel
- Project duration: ~350 hours
- Skills required: Python, JSON REST API
- Difficulty rating: Medium
Moodle Integration Plugin
Description
This project aims to create a bridge between Moodle, a popular learning platform (stats), and Open Food Facts (OFF), the open database of food products. The goal is to facilitate the creation of high-quality educational resources on healthy and sustainable food choices. It will make OFF data easily accessible to course creators. It could also lead teachers and students to contribute data into OFF through educational activities like hunger games, scan parties, etc.
Expected outcomes
A Moodle integration plugin for Open Food Facts. This plugin should allow the automatic import of OFF data into:
- Moodle Blocks, to display food information in the side dock (column on the right)
- Moodle Database activitiy and Glossary activity, to make food information accessible in the main course sections
- Moodle Question bank and Quiz activity, for the creation of quizzes
Ultimately, the project also plans for an OFF Moodle theme and a resource sharing hub like MoodleNet. We may swap one of these items into the project backlog, if a contributor prefers to.
Project information
- Repo: to be created on May 8
- Slack channels: #summerofcode #education
- Potential mentors: Louis Bastarache
- Project duration: 350 hours
- Skills required: PHP, HTML, MySQL and a data source here
- Difficulty rating: Medium
- Moodle: https://moodle.mieuxchoisir.org/
H5P Content Generator
Description
This project aims to create a bridge between H5P and the Open Food Facts database. It's related to the Moodle project, but it's shorter and the skills are different. It would make food content available on Moodle, but also on CMS, wiki and web pages. Consider it as an ETL project: you have to extract data from the OFF DB, transform it, and load it in an HTML5 package. We will need a UI/API to use it. It's an ongoing project, so should be easier to complete something in less than 350 hours.
Expected outcomes
A standalone H5P generator that will create H5P content types based on OFF data. We've begun to work on automatic content generation from the OFF database. The next step would be to improve our work and generate some H5P content types. Since we have a generation recipe for them, the content types that we target first are Drag the words, Fill in the blanks, Mark the words, Quiz, Single choise set and Summary.
Project information
- Repo: to be created on May 8
- Slack channels: #summerofcode #education
- Potential mentors: Louis Bastarache
- Project duration: 175-350 hours
- Skills required: PHP, Java, Spring, Firebase and a data source here
- Difficulty rating: Medium
Open Food Facts Explorer - a new generation frontend
Description
The Open Food Facts Explorer is a modern frontend for Open Food Facts, developed using SvelteKit. It offers functionalities such as basic editing, product page displays with Knowledge Panels support, search capabilities, and user authentication. Additionally, it incorporates the new folksonomy engine and a taxonomy explorer, enhancing data organization and accessibility.
Expected outcomes
The main objective of the project is to refine and expand its features to align with the standard Open Food Facts website.
- Decoupling the backend from the frontend will improve the long-term maintainability of the codebase, while leveraging a modern JavaScript framework will facilitate the development of new features.
- It also has the potential to make the website far more easy to use on a mobile, which constitute more than 70% of visits
- SvelteKit's support for server-side rendering (SSR) and emphasis on accessibility enhance the responsiveness of the web application, broadening its potential reach.
The development roadmap remains flexible, allowing adjustments during iterations to improve usability and ensure feature completeness.
We strive to reuse our JS SDK (openfoodfacts-nodejs) and to put some features into reusable webcomponents.
Project information
- Repository: https://github.com/openfoodfacts/openfoodfacts-explorer, https://github.com/openfoodfacts/openfoodfacts-nodejs, https://github.com/openfoodfacts/openfoodfacts-webcomponents
- Slack channels: #off-explorer
- Potential mentors: VaiTon
- Project duration: ~175 hours
- Skills required: TypeScript, Svelte and SvelteKit (really easy to learn), a basic understanding of HTTP APIs
- Difficulty rating: Medium (for its length)
Add Mini Games to the Open Food Facts Mobile App
Description
- Open Food Facts empowers users with information about food products. This project aims to enhance user engagement and education by introducing fun, informative mini-games within the Open Food Facts mobile app. These games will leverage the existing Open Food Facts data. The games will focus on contributions, and increasing user understanding of food .
- Potential mini-games are:
- Hunger Games (AI Prediction Validation): This game will present users with questions about products, one after the other, on a given topic (category, nutrition facts, ingredients…). Users will then be asked to validate the prediction, and will move to a similar prediction for another product.
- How Much Sugar? (Sugar Cube Guessing): This game will display a product image and name. Users will guess the number of sugar cubes equivalent to the product's sugar content per serving (or per 100g). The actual number of sugar cubes will drop in a playful animation.
- Caloprix (Nutri-Score Guessing): This game challenges users to guess the Nutri-Score (A, B, C, D, or E) of a product based on its image, name, and potentially a limited set of other data points (e.g., category). The game will reveal the correct Nutri-Score and provide a brief explanation of what factors contribute to that score. The game ends when the user gets it wrong. The goal is to get as many good answers as possible in a row.
- The Price is Right (Price Guessing): This game challenges you to guess the price of an item of a product, and answers you by saying “More” or “Less”. The goal is to guess the right prices in as little guesses as possible.
Expected Outcomes
- Working Mini-Games: Several mini-games integrated into the Open Food Facts mobile app (iOS and Android) and our website.
- User Interface: A clean, intuitive, and engaging user interface for each mini-game, consistent with the Open Food Facts app's design.
- Testing: Thorough testing of the mini-games on various devices and screen sizes.
Project Information
- Main Repository: https://github.com/openfoodfacts/smooth-app
- Web version of Hunger Games for reference: https://hunger.openfoodfacts.org
- Slack Channels: #mobile-app-dev, #dev
- Potential Mentors: Edouard M, Primael Q and Pierre S
- Project Duration: ~350 hours
- Skills Required:
- Mobile App Development with Flutter
- JSON REST API interaction
- Design integration
- An experience with web development would be a great plus
- Difficulty Rating: Medium
Porting Open Prices Features to the Open Food Facts Mobile App
Description
This project aims to integrate the core features of Open Prices into the Open Food Facts mobile application. Open Prices allows users to contribute and view price information for products, creating a valuable resource for consumers. Currently, this functionality is primarily available on the Open Prices website. Bringing Open Prices to the mobile app will significantly increase accessibility and user engagement, leveraging the app's existing user base. This will empower users to easily compare prices while shopping, contribute new price data on-the-go. The project will focus on seamlessly integrating these features into the existing app structure, ensuring a consistent and user-friendly experience.
Expected outcomes
- Beautify the current user Interface and review the current user Experience (UI/UX) for existing flows: Prioritize a user-friendly and intuitive interface for both viewing and contributing price data, adhering to mobile design best practices.
- Price Viewing: Implement the ability to browse and search for product prices within the Open Food Facts mobile app. This should include clear display of current and historical prices, potentially with visualizations (e.g., price trends).
- Bulk Price Contribution using Artificial Intelligence: Enable users to easily add new bulk price information for products directly through the app. This should include mechanisms for data validation and image uploads for price verification.
- Offline Functionality: Add offline price contribution (data synced when a connection is available) using the current background task system
Project Information
- Repository: https://github.com/openfoodfacts/smooth-app
- Slack channels: #prices
- Potential mentors: Raphael O., Edouard M., Pierre (contacted via Slack/GitHub)
- Project duration: ~175 hours (can be adjusted based on specific feature scope)
- Skills required: Flutter, mobile app development experience, familiarity with RESTful APIs, basic understanding of data visualization.
- Difficulty rating: Medium (due to mobile development complexities and API integration)
Enhancing Developer Experience Through Automation and Workflow Optimization
Description
This project aims to significantly improve the developer experience (DevX) within Open Food Facts by automating workflows and streamlining processes. The initiative focuses on delivering practical code contributions that enhance productivity and simplify daily tasks for developers. Key components include automated documentation generation, optimized GitHub workflow management, integration of cloud-based development environments, automated deployment pipelines for testing changes, and conditional test execution to reduce build times.
Expected outcomes
Deliverables and KPI / benefits:
- KPIs: Reduced build/test times, faster issue resolution, and improved developer satisfaction.
- Automated Documentation Pipeline: A system that continuously updates project documentation (eg. OpenAPI specs) in sync with code changes.
- Examples include using markdown-based solutions such as MDX, nextra.site, fumadocs, or mintlify. For instance, Langufuse’s documentation (Langufuse Documentation) serves as both a technical resource and a marketing tool, illustrating how a well-maintained documentation system can elevate a project’s profile.
- Additional examples include the markdown-only page OSS LLMOps Stack and the documentation repository langfuse-docs.
- Modern Development Environments: Integration of solutions like GitPod or GitHub Codespaces to provide uniform, pre-configured setups for contributors.
- Automated Deployment for Testing: Pipelines that deploy changes immediately for real-time testing feedback.
- Enhanced Testing Efficiency: Conditional test execution that reduces unnecessary build and test cycle times.
- Optimized GitHub Workflow: Automation scripts or GitHub Actions for issue triage, pull request management, and repository organization (example script to reduce labels).
- Develop an NLP/AI-powered solution to categorize, prioritize, and suggest resolutions for open GitHub issues within the Open Food Facts ecosystem.
- Implement a dashboard/overview (simple example) for better repository management, tracking contributions.
Project information
- repositories: openfoodfacts-server, openfoodfacts-python, smooth-app, robotoff
- DevOps Issue tracker
- Slack channels: #dev, #infrastructure
- Potential mentors: Hangy, with assistance from Malte.
- Project duration: ~90 hours (focused implementation), ~175 hours (moderate scope), or ~350 hours (comprehensive integration)
- Skills required:
- Proficiency in scripting (Python, Bash)
- Experience with CI/CD systems (GitHub Actions, Jenkins)
- Familiarity with containerization (Docker)
- Knowledge of cloud-based development environments
- Understanding of testing frameworks and automation strategies
- Difficulty rating: Moderate to Advanced – Involves integrating diverse tools and workflows to significantly enhance developer experience.
Your idea
You are a candidate and have a specific project idea, that's really welcome.
But to maximize your chances, please:
- Contribute to the project none the less in the bounding period
- Check with us that your idea is a good fit and align with our priorities
Project template
<DESCRIPTIVE TITLE>
Description
Explain what, why.
Expected outcomes
Deliverables and KPI / benefits
Project information
- repository:
- Slack channels:
- Potential mentors:
- Project duration: ( ~90 hour, ~175 hours or ~350 hours)
- Skills required:
- Difficulty rating: