Difference between revisions of "Tech Team"

From Open Food Facts wiki
Jump to navigation Jump to search
(links to issues)
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
We have a lot of development work to do: on the Open Food Facts backend (Perl and MongoDB), API (JSON), web site (HTML5, JS, Foundation), iOS / Android / Windows Phone / FirefoxOS apps (currently developed in HTML and JS with Apache Cordova / Phonegap), to build new cool reuses etc. Our code is on GitHub.
+
The Open Food Facts software is developed collaboratively by hackers from all around the world.
 +
 
 +
All developement happens on '''GitHub''': https://github.com/openfoodfacts/
 +
 
 +
We have a lot of development work to do:
 +
 
 +
=== Project we're working on ===
 +
(see also https://github.com/openfoodfacts/)
 +
* Server backend (Perl and MongoDB);
 +
* Web site (HTML5, JS, Foundation, within the backend code as templates);
 +
* iOS native (Swift);
 +
* Android native (Kotlin);
 +
* Robotoff, our machine learning service (Python);
 +
* Hunger Games, our annotation web app (VueJS);
 +
* Our various SDKs (Python, Ruby, Dart, PHP…);
 +
* ''... your idea ...''
 +
 
 +
=== Topics you can work on ===
 +
*[https://github.com/openfoodfacts/smooth-app/issues/525 Flutter app (Dart)]
 +
*[https://github.com/openfoodfacts/openfoodfacts-dart/issues/218 Dart package]
 +
*[https://github.com/openfoodfacts/api-documentation/issues/23 API Documentation (Familiarity with APIs, good pedagogy and writing skills)]
 +
*[https://github.com/openfoodfacts/robotoff/issues/374 Robotoff (Python)]
 +
*[https://github.com/openfoodfacts/openfoodfacts-server/issues/5529 Server (HTML,CSS, JS + Perl)]
 +
*[https://github.com/openfoodfacts/openfoodfacts-hungergames/issues/234 Hunger Games (VueJS)]
 +
*[https://github.com/openfoodfacts/openfoodfacts-androidapp/issues/4169 Android app (Kotlin)]
 +
*[https://github.com/openfoodfacts/openfoodfacts-ios/issues/912 iPhone app (Swift)]
 +
 
 +
''Software development page on the website: https://world.openfoodfacts.org/development''
  
 
== Needs ==
 
== Needs ==
  
* We firstly need resources that work on issues. There is many issues, categorized by topics, see:
+
There is many issues, categorized by topics, see:
** [https://github.com/openfoodfacts/openfoodfacts-server/issues Website and server issues]
+
* [https://github.com/openfoodfacts/openfoodfacts-server/issues Website, backend and API issues]
** [https://github.com/openfoodfacts/openfoodfacts-androidapp Android app issues]
+
** For beginners see [https://github.com/openfoodfacts/openfoodfacts-server/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22 First Good Issue] category
** [https://github.com/openfoodfacts/ All the repositories]
+
** For those who love i18n see [https://github.com/openfoodfacts/openfoodfacts-server/issues?q=is%3Aopen+is%3Aissue+label%3Ai18n translations] category
 +
** See [https://github.com/openfoodfacts/openfoodfacts-server/labels all the categories]
 +
* [https://github.com/openfoodfacts/openfoodfacts-androidapp/issues Android app issues]
 +
* [https://github.com/openfoodfacts/openfoodfacts-ios/issues iOS app issues]
 +
* [https://github.com/openfoodfacts/openfoodfacts-ai/issues Open Food Facts AI issues]
  
 
== Principles ==
 
== Principles ==
  
* You have to discuss the topics or issues or functionalities you want to work on. Slack is the best choice for it.
+
Our goal is to follow and keep few and simple guidelines.
* You should open an issue on Github to explain the problem you want to solve or the functionnality you want to work on.
+
 
* You fork the project and create one branche per issue or functionality you want to work on. When you're ready to propose something, you send a "pull request".
+
# '''Discuss the topics or issues or functionalities you want to work on'''. The [http://slack.openfoodfacts.org/ slack workspace] is the best choice for it.
Coding style is defined in the .editorconfig file, see https://github.com/openfoodfacts/openfoodfacts-server/blob/master/.editorconfig
+
# 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: ''<code>issue/[issue_number]-[name]</code>''; ex.: ''<code>issue/1630-name-of-the-issue</code>''
 +
#* When you're ready to propose something, send a '''Pull Request'''. Be patient, sometimes it takes time to the core team to review PRs.
 +
# The '''coding style''' is defined in the <code>[https://github.com/openfoodfacts/openfoodfacts-server/blob/master/.editorconfig .editorconfig]</code> file. Many editors support EditorConfig, check yours: https://editorconfig.org
 +
 
 +
== Inspirations ==
 +
 
 +
* https://www.mediawiki.org/wiki/How_to_contribute
 +
* 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

Revision as of 11:32, 4 March 2022

The Open Food Facts software is developed collaboratively by hackers from all around the world.

All developement happens on GitHub: https://github.com/openfoodfacts/

We have a lot of development work to do:

Project we're working on

(see also https://github.com/openfoodfacts/)

  • Server backend (Perl and MongoDB);
  • Web site (HTML5, JS, Foundation, within the backend code as templates);
  • iOS native (Swift);
  • Android native (Kotlin);
  • Robotoff, our machine learning service (Python);
  • Hunger Games, our annotation web app (VueJS);
  • Our various SDKs (Python, Ruby, Dart, PHP…);
  • ... your idea ...

Topics you can work on

Software development page on the website: https://world.openfoodfacts.org/development

Needs

There is many issues, categorized by topics, see:

Principles

Our goal is to follow and keep few and simple guidelines.

  1. Discuss the topics or issues or functionalities you want to work on. The slack workspace is the best choice for it.
  2. 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.
  3. If you want to work on an existing issue, tell everyone in the issue's Github comments.
  4. 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 PRs.
  5. The coding style is defined in the .editorconfig file. Many editors support EditorConfig, check yours: https://editorconfig.org

Inspirations