Changes

Jump to navigation Jump to search
Added First steps
Line 1: Line 1: −
The Open Food Facts software is developed collaboratively by hackers from all around the world.
+
=== Aim 🎯 ===
   −
We have a lot of development work to do:
+
==== What ====
* Open Food Facts backend (Perl and MongoDB);
+
The Open Food Facts software is developed collaboratively by hackers from all around the world.  
* Web site (HTML5, JS, Foundation, within the backend code as templates);
  −
* iOS native (Swift);
  −
* Android native (Java);
  −
* Robotoff, our machine learning service (Python)
  −
* Hunger Games, our annotation engine (Javascript)
  −
* Our various SDKs (Python, Ruby, Dart, PHP…)
  −
* Build new cool reuses etc...
     −
All our code is on GitHub : [https://github.com/openfoodfacts/ https://github.com/openfoodfacts/]
+
Technical skills are really appreciated in a wide variety of domains.  
   −
Software development page on the website: https://world.openfoodfacts.org/development
+
Every thing we code is under a free software license (possibly [https://www.gnu.org/licenses/agpl-3.0.en.html AGPL])
   −
== Needs ==
+
==== Why ====
 +
Providing tools is essential to be able to [[Data Contribution Team|grow the database]] as fast as possible and maintain its quality.
   −
There is many issues, categorized by topics, see:
+
The mobile app and the main website reach a large public and provide health and environment information. They also enable crowdsourcing the database at a large scale. Their user experience is very important.
* [https://github.com/openfoodfacts/openfoodfacts-server/issues Website, backend and API 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
  −
** 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]
  −
* [https://github.com/openfoodfacts/ All the repositories]
     −
== Principles ==
+
The other tools help tracking data quality, fixing errors, augmenting contribution through machine learning etc.
   −
Our goal is to follow and keep few and simple guidelines.
+
Having qualitative technical documentation helps a lot reaching new contributors that can help us more efficiently.
   −
# '''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.
+
Writing SDKs and API documentation helps lower the entry for [[Reusing Open Food Facts Data|database reuse]] projects.
# 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 https://github.com/openfoodfacts/openfoodfacts-server/blob/master/.editorconfig]; many editors support EditorConfig, check yours: https://editorconfig.org
     −
== Inspirations ==
+
=== Tools ⚒️ ===
 +
📢 [https://slack.openfoodfacts.org/ Slack channels]:
 +
*<nowiki>#dev - is a general channel around development</nowiki>
 +
*#<nowiki>#infrastructure - is about managing servers, installing software, etc.</nowiki>
 +
*#<nowiki>#documentation - about documentation</nowiki>
 +
*All our software projects have their own channels, for example #product-opener (main server), #mobile_app. You may find specific channels in the README of each project.
 +
*There are also channels specific to languages: #perl, #flutter, #python, etc. to ask questions specific to the language or develop the SDK
 +
*Some are specific to wider arguments. For example for ML #robotoff and #ai-machinelearning.
 +
All developments happens on '''GitHub''': https://github.com/openfoodfacts/ (even infrastructure has its repo)
 +
 
 +
'''Some projects have weekly or bimonthly meeting,''' see the README of each projects or [[Events|community calendar.]]
 +
 
 +
We have a monthly infrastructure meeting (see [[Events|community calendar).]]
 +
 
 +
=== First steps 🐣 ===
 +
 
 +
* read this page ! It's the only mandatory step 😉
 +
* you may [https://connect.openfoodfacts.org/join-the-contributor-skill-pool-open-food-facts register to skill pool] if you haven't yet
 +
* you may also join the slack dedicated to the sub project you are interested in (enables a faster communication), and ping the project lead
 +
* if you are not sure were your skill will be better used, ask for Alex or any team leader, we will tell try to match needs with your talents and interests
 +
* eventually put the monthly / weekly meeting of the project in your agenda, if you are able to participate
 +
* if you want to code,
 +
** [https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo fork the repository on github], install the project locally (see Readme), and make it run. If you are stuck [https://stackoverflow.com/help/how-to-ask ask for help]
 +
** search for an issue with '''good first issue''' label and try to fix it ! If the issue is a bit old, it is better to check it's still there (closing an already fixed issue is also a win !). Once again, if you are stuck or in case of doubt, don't hesitate to [https://stackoverflow.com/help/how-to-ask ask for help]
 +
** celebrate 🎉 you are now part of the Tech Team contributors !
 +
* if you want to help in project management / UX it will certainly start with a discussion with the project leader
 +
 
 +
=== Needs / Missions 🏗️ ===
 +
 
 +
* Software development 🤓
 +
** there is a large variety of projects to develop. see [https://github.com/openfoodfacts/.github/blob/main/profile/README.md#developers https://github.com/openfoodfacts/]
 +
** if you want to help with the core of the project, consider learning Perl (server) or Flutter (mobile app)
 +
** new ideas are also welcome
 +
** after one or two successful merge PR you can ask direct access to a repository
 +
** For beginners we often try to add a ''good-first-issue'' label on accessible issues
 +
 
 +
* Project management / product design / design 📐
 +
** skills in project or product design can really help: triaging bug, imagining new UI and UX
 +
** also if you have skills for design do not hesitate to propose your skills
 +
** see [[Design]]
 +
* Technical Documentation 📚
 +
** help improve documentation on projects directly (often docs/ folder, but also the README)
 +
** contributing to this wiki is also useful in some cases
 +
** remember that putting good links at the right place is also very efficient
 +
* Infrastructure 🖧
 +
** if you have a good level of expertise in Linux, ZFS, Proxmox or some specific architecture, we would really welcome your participation.  see [https://github.com/openfoodfacts/openfoodfacts-infrastructure/ openfoodfacts-infrastructure repository]
 +
** [https://github.com/openfoodfacts/openfoodfacts-monitoring/ monitoring] is also important
 +
** contributing in docker in projects, and CI/CD actions is also much appreciated
 +
* Machine learning 🤖
 +
** robotoff is at the heart of machine learning usage (orchestrator)
 +
** [https://hunger.openfoodfacts.org/ hunger-games] is a fantastic tool to contribute data to it
 +
** openfoodfacts-ai is the main repository for machine learning
 +
** see also [[Artificial Intelligence]]
 +
* Programs 🏅
 +
** We regularly participate in programs like Google Summer Of Code, Google Season of docs, [https://outreachy.org/ outreachy], [https://dataforgood.fr/ data for good],
 +
** If you are interested in mentoring or participating, or if you would like to propose another program, reach out to us.
 +
===Team referent 🧑🏽‍💻===
 +
Alex (alex -at- openfoodfacts.org | slack: Alex G. | github: [https://github.com/alexgarel alexgarel])
 +
 
 +
The role of referent, does not mean "maintainer" or "manager", it's just a facilitator to help people onboarding and cooperation flow.
 +
====Subteams in Tech 🪆====
 +
Because there are a lot of projects, we have subteams for each area of interest.
 +
 
 +
====[[Mobile Apps|Mobile 📲]]====
 +
Team referent: Edouard (edouard -at- openfoodfacts.org | slack: Edouard Marquez | github: [https://github.com/g123k g123k])
 +
====[[Artificial Intelligence|Machine Learning 🤖]]====
 +
Team referent: Raphael (raphael -at- openfoodfacts.org | slack: Raphaël | github: [https://github.com/raphael0202 raphael0202])
 +
====[[Product Opener|Server 🐫]]====
 +
Team referent: Stéphane (stephane -at- openfoodfacts.org | slack: stephane | github: [https://github.com/stephanegigandet stephanegigandet])
 +
 
 +
'''All the rest'''
 +
 
 +
Infrastructure, all projects based on Python / Javascript have Alex as referent.
 +
=== Principles 💎 ===
 +
 
 +
Be sure to always respect the [https://world.openfoodfacts.org/code-of-conduct code of conduct]
 +
 
 +
Some simple guidelines.
 +
 
 +
# Be '''as autonomous as possible''', even if you are new to the project or open source projects.
 +
# '''Don't be afraid to ask''' questions but '''know [https://stackoverflow.com/help/how-to-ask how to ask].'''
 +
# It's ok to be a learner, but try first to do your part to use available learning resources.
 +
# If you feel some '''documentation is missing, please add it''' (after requesting information if needed).
 +
# '''Your opinion has value,''' try to propose a sensible solution to the problem at hand. Discuss your plan with others when it implies a lot of work.
 +
# '''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.
 +
# 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'''. (no need to get it assigned)
 +
# Fork the project and '''create one branch per issue or functionality you want to work on''' (never work on main branch, even if you forked the project), see https://learngitbranching.js.org/.
 +
#* 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''', name it following [https://www.conventionalcommits.org/en/v1.0.0/ Conventional commits] principles
 +
#* Be patient, sometimes it takes time to the core team to review PRs, but you can also ping people on slack if needed.
 +
# 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
 +
Also you can refer to individual repository contributing guidelines.
 +
 
 +
==== Inspirations ====
    
* https://www.mediawiki.org/wiki/How_to_contribute
 
* https://www.mediawiki.org/wiki/How_to_contribute
Line 46: Line 120:  
** policies, what people MUST do: https://www.mediawiki.org/wiki/Development_policy
 
** policies, what people MUST do: https://www.mediawiki.org/wiki/Development_policy
 
** guidelines, what people SHOULD do: https://www.mediawiki.org/wiki/Development_guideline
 
** guidelines, what people SHOULD do: https://www.mediawiki.org/wiki/Development_guideline
 +
 +
===Perks of being a volunteer at Open Food Facts 🏅===
 +
⭐Collective action / Impact / actively contributing to citizen science !
 +
 +
⭐Highlighting global impact / individual impact (through testimonials, invites)
 +
 +
⭐Developing skills, learning new ones
 +
 +
⭐Events (annual Open Food Facts days, meet-ups…)
 +
 +
⭐Goodies
 +
 +
⭐LinkedIn volunteer badge / recommendations
 +
===Other teams===
 +
''How can I join a specific team ?'' Fill out the [https://connect.openfoodfacts.org/join-the-contributor-skill-pool-open-food-facts Contributor Skill Pool.]
 +
=====Main page of [[Contributor|HOW TO HELP]].=====
 +
[[Category:Teams]]
199

edits

Navigation menu