{"id":25024904,"url":"https://github.com/nmf-earth/nmf-app","last_synced_at":"2025-04-12T21:20:18.129Z","repository":{"id":41834353,"uuid":"223918844","full_name":"NMF-earth/nmf-app","owner":"NMF-earth","description":"Understand and reduce your carbon footprint 🌱 iOS \u0026 Android.","archived":false,"fork":false,"pushed_at":"2024-12-05T15:38:34.000Z","size":9451,"stargazers_count":525,"open_issues_count":25,"forks_count":161,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-10T06:05:51.025Z","etag":null,"topics":["android","climate-change","expo","functional-programming","global-warming","hacktoberfest","ios","openfoodfacts","react-native","redux-toolkit","sustainability","typescript","zero-waste"],"latest_commit_sha":null,"homepage":"https://nmf.earth","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NMF-earth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"code_of_conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"pierrebresson","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":"NMF-earth/nmf-app","otechie":null,"custom":null}},"created_at":"2019-11-25T10:12:37.000Z","updated_at":"2025-04-09T11:16:38.000Z","dependencies_parsed_at":"2023-09-21T19:44:06.141Z","dependency_job_id":"de3c464e-81a4-41a6-8aa3-c664fa8c6e44","html_url":"https://github.com/NMF-earth/nmf-app","commit_stats":{"total_commits":662,"total_committers":54,"mean_commits":12.25925925925926,"dds":0.4501510574018127,"last_synced_commit":"e63d1a21e779b3d84707622b5ac67c0187fae0ff"},"previous_names":["notmyfaultearth/nmf-app"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NMF-earth%2Fnmf-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NMF-earth%2Fnmf-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NMF-earth%2Fnmf-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NMF-earth%2Fnmf-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NMF-earth","download_url":"https://codeload.github.com/NMF-earth/nmf-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248632269,"owners_count":21136655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","climate-change","expo","functional-programming","global-warming","hacktoberfest","ios","openfoodfacts","react-native","redux-toolkit","sustainability","typescript","zero-waste"],"created_at":"2025-02-05T16:33:16.618Z","updated_at":"2025-04-12T21:20:18.095Z","avatar_url":"https://github.com/NMF-earth.png","language":"TypeScript","funding_links":["https://ko-fi.com/pierrebresson","https://issuehunt.io/r/NMF-earth/nmf-app"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e🌱 NMF.earth app\u003c/h1\u003e\n\u003ch3 align=\"center\"\u003eUnderstand and reduce your carbon footprint\u003c/h3\u003e\n\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://apps.apple.com/us/app/nmf-earth/id1494561829\"\u003e\n    \u003cimg alt=\"app-store\" src=\"https://github.com/NotMyFaultEarth/nmf-app/blob/main/app-store.png\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://play.google.com/store/apps/details?id=nmf.earth\"\u003e\n    \u003cimg alt=\"google-play\" src=\"https://github.com/NotMyFaultEarth/nmf-app/blob/main/play-store.png\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.figma.com/community/file/967052407514062912\"\u003e\n    \u003cimg alt=\"figma\" src=\"https://github.com/NotMyFaultEarth/nmf-app/blob/main/figma.png\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n![screenshots](https://github.com/NotMyFaultEarth/nmf-app/blob/main/app-preview.png)\n\n![](https://github.com/NMF-earth/nmf-app/workflows/Test%20CI/badge.svg)\n[![Depfu](https://badges.depfu.com/badges/f3b06c819202baf2a14b3241cbf249c9/overview.svg)](https://depfu.com/repos/github/NotMyFaultEarth/nmf-app?project_id=10243)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](code_of_conduct.md)\n[![Build Status](https://img.shields.io/static/v1.svg?label=CSL\u0026message=software%20against%20climate%20change\u0026color=green?style=flat\u0026logo=github)](https://github.com/climate-strike/license)\n[![runs with expo](https://img.shields.io/badge/Runs%20with%20Expo-000.svg?style=flat-square\u0026logo=EXPO\u0026labelColor=f3f3f3\u0026logoColor=000)](https://expo.io/)\n\nRepository for the [NMF.earth](https://nmf.earth/) React Native application, built with Expo, Redux Toolkit and Typescript.\nDesign can be found on [Figma](https://www.figma.com/community/file/967052407514062912).\n\n\u003cbr /\u003e\n\n### 📊 Data source\n\nCarbon data comes from NMF's [carbon footprint repo](https://github.com/NMF-earth/carbon-footprint) while barcode product scanned data comes from [Open Food Facts](https://world.openfoodfacts.org/) api.\n\n\u003cbr /\u003e\n\n### 📦 Getting started\n\nInstalling Dependencies:\n\n```bash\n$ yarn\n```\n\nRunning the app:\n\n```bash\n$ yarn start\n```\n\nFor starting the app on a specific OS:\n\n```bash\n$ yarn ios | yarn android\n```\n\n\u003cbr /\u003e\n\n### 👩🏾‍💻 Development\n\n- Eslint is used in the project to enforce code style and should be configured in your [editor](https://eslint.org/docs/user-guide/integrations).\n\n- Prettier is also used and apply automatically by eslint\n\n- Typescript is used in the project for type-checking and should be configured in your [editor](https://github.com/Microsoft/TypeScript/wiki/TypeScript-Editor-Support).\n\nYou can check this manually by running:\n\n```bash\n$ yarn lint\n```\n\nor\n\n```bash\n$ yarn typescript\n```\n\nYou can ask eslint to fix issues by running:\n\n```bash\n$ yarn lint:fix\n```\n\n\u003cbr /\u003e\n\n### 🛠 Testing\n\nUse the following command to run unit tests with coverage:\n\n```bash\n$ yarn test\n```\n\nUse the following to update unit tests\n\n```bash\n$ yarn test -u\n```\n\nUse the following to run unit tests in watch mode while developing:\n\n```bash\n$ yarn test --watch\n```\n\n\u003cbr /\u003e\n\n### 🎨 Storybook\n\nStories (\\*.story.tsx) can be automatically added to `storyLoader.js` with :\n\n```bash\n$ yarn prestorybook\n```\n\n\u003cbr /\u003e\n\n### 📗 Sustainable guide\n\nTo place new `.md` files inside `guides` folder or modify existing guide and then run `node scripts/generate-guides.js` to generate a new sustainable guide. Images can be used in the `.md` as follow: `![Earth](earth.png)` and should be place in `assets/images/guide`.\n\n\u003cbr /\u003e\n\nFor methodology screen, just run `node scripts/generate-methodology.js` to update `methodology.json` from `methodology.md`.\n\n\u003cbr /\u003e\n\nFor emission info screen, just run `node scripts/generate-emission-info.js` to update `emission-info.json` from `assets/emission-info/markdown/*.md`.\n\n\u003cbr /\u003e\n\n## 🗣 Translations\n\nYou can help us with translate the app with our online tool [POEditor](https://poeditor.com/join/project/0MbginCsWp). Any help is appreciate and no coding skills are needed 🤗\n\nPS: please do not use send translations made by Google translate or similar.\n\n\u003cbr /\u003e\n\n### Generate\n\nRun `node scripts/generate-translation-files.js` in order to create the files needed for the new language you want to add to the app.\n\n### Manage Files\n\nRun `node scripts/poeditor/group-translation-files.js` to generate 1 JSON file per language, with all the translation vars in it. From there, you can easily make any edit you want. When you're done, you can run `node scripts/poeditor/spread-translation-files.js` to merge your edits and spread them into all the translation files across the repo.\n\n\u003cbr /\u003e\n\n### 🚀 Deployment\n\nAny tag starting with `v` will runs expo publish. During this step `app.example.json` is used to generate an `app.json` file for expo's deployment, this is done with the following script `scripts/generate-app-json.js`.\n\n\u003cbr /\u003e\n\n### 🏗 Build\n\nFirst you need to configure `SENTRY_AUTH_TOKEN` and `SENTRY_DSN` secrets on [expo.dev](https://expo.dev/accounts/%5Baccount%5D/settings/secrets) and then define `projectId` in `app.config.js`. Then run `npm install dotenv` and place your secrets inside `.env` file that you need to create with `SENTRY_AUTH_TOKEN` and `SENTRY_DSN`, like in `.env.example`.\n\nRun `eas build -p ios` to build for the [App Store Connect](https://appstoreconnect.apple.com) and `eas build -p android` for the [Google Play Console](https://play.google.com/console/developers).\n\n\u003cbr /\u003e\n\n### 👨‍💻 Contribute ❤️\n\nMore than 40 developers have contribute to the app, thanks a lot to [them](https://github.com/NMF-earth/nmf-app/graphs/contributors)!\n\nHave a look to [contributing.md](https://github.com/NotMyFaultEarth/nmf-app/blob/main/contributing.md) if you want to contribute!\n\n\u003cbr /\u003e\n\n### 🏆 Backers\n\nA big thank you to [Christopher Gwilliams](https://github.com/encima) and to the Phelps family for their amazing contribution to the [Kickstarter](https://www.kickstarter.com/projects/pierrebresson/not-my-fault)!\n\n\u003cbr /\u003e\n\n### ©️ Open source - licence\n\nRepository and contributions are under [GNU General Public License v3.0](https://github.com/NotMyFaultEarth/nmf-app/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmf-earth%2Fnmf-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmf-earth%2Fnmf-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmf-earth%2Fnmf-app/lists"}