The Open Food Facts software is developed collaboratively by hackers from all around the world.
We have a lot of development work to do:
- Open Food Facts backend (Perl and MongoDB);
- Web site (HTML5, JS, Foundation, within the backend code as templates);
- iOS native (Swift);
- Android native (Java);
- Robotoff, our machine learning service (Python)
- Our various SDKs (Python, Ruby, Dart, PHP…)
- Build new cool reuses etc...
All our code is on GitHub : https://github.com/openfoodfacts/
Software development page on the website: https://world.openfoodfacts.org/development
There is many issues, categorized by topics, see:
- Website, backend and API issues
- Android app issues
- iOS app issues
- Open Food Facts AI issues
- All the repositories
Our goal is to follow and keep few and simple guidelines.
- discuss the topics or issues or functionalities you want to work on. The slack workspace is the best choice for it.
- if not already done, open an issue on Github to explain the problem you want to solve or the functionality you want to work on.
- if you want to work on an existing issue, tell everyone in the issue's Github comments.
- fork the project and create one branch per issue or functionality you want to work on.
- It's cool to name a branch: issue/[issue_number]-[name]; ex.: issue/1630-name-of-the-issue
- When you're ready to propose something, send a "pull request"; be patient, sometimes it takes time to the core team to review pull request.
- coding style is defined in the .editorconfig file, see https://github.com/openfoodfacts/openfoodfacts-server/blob/master/.editorconfig; many editors support EditorConfig, check yours: https://editorconfig.org
- Inspirations from https://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker
- Wikimedia makes a difference between:
- policies, what people MUST do: https://www.mediawiki.org/wiki/Development_policy
- guidelines, what people SHOULD do: https://www.mediawiki.org/wiki/Development_guideline