NMF.earth app
iOS & Android app to understand and reduce your carbon footprint.
https://github.com/NMF-earth/nmf-app
Category: Emissions
Sub Category: Carbon Intensity and Accounting
Keywords
android climate-change expo functional-programming global-warming hacktoberfest ios openfoodfacts react-native redux-toolkit sustainability typescript zero-waste
Keywords from Contributors
carbon-footprint fashion nft purchases streaming
Last synced: about 12 hours ago
JSON representation
Repository metadata
Understand and reduce your carbon footprint π± iOS & Android.
- Host: GitHub
- URL: https://github.com/NMF-earth/nmf-app
- Owner: NMF-earth
- License: gpl-3.0
- Created: 2019-11-25T10:12:37.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-12-05T15:38:34.000Z (5 months ago)
- Last Synced: 2025-04-20T11:04:51.344Z (7 days ago)
- Topics: android, climate-change, expo, functional-programming, global-warming, hacktoberfest, ios, openfoodfacts, react-native, redux-toolkit, sustainability, typescript, zero-waste
- Language: TypeScript
- Homepage: https://nmf.earth
- Size: 9.01 MB
- Stars: 525
- Watchers: 9
- Forks: 162
- Open Issues: 25
- Releases: 13
-
Metadata Files:
- Readme: README.md
- Contributing: contributing.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: code_of_conduct.md
README.md
Repository for the NMF.earth React Native application, built with Expo, Redux Toolkit and Typescript.
Design can be found on Figma.
π Data source
Carbon data comes from NMF's carbon footprint repo while barcode product scanned data comes from Open Food Facts api.
π¦ Getting started
Installing Dependencies:
$ yarn
Running the app:
$ yarn start
For starting the app on a specific OS:
$ yarn ios | yarn android
π©πΎβπ» Development
-
Eslint is used in the project to enforce code style and should be configured in your editor.
-
Prettier is also used and apply automatically by eslint
-
Typescript is used in the project for type-checking and should be configured in your editor.
You can check this manually by running:
$ yarn lint
or
$ yarn typescript
You can ask eslint to fix issues by running:
$ yarn lint:fix
π Testing
Use the following command to run unit tests with coverage:
$ yarn test
Use the following to update unit tests
$ yarn test -u
Use the following to run unit tests in watch mode while developing:
$ yarn test --watch
π¨ Storybook
Stories (*.story.tsx) can be automatically added to storyLoader.js
with :
$ yarn prestorybook
π Sustainable guide
To 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: 
and should be place in assets/images/guide
.
For methodology screen, just run node scripts/generate-methodology.js
to update methodology.json
from methodology.md
.
For emission info screen, just run node scripts/generate-emission-info.js
to update emission-info.json
from assets/emission-info/markdown/*.md
.
π£ Translations
You can help us with translate the app with our online tool POEditor. Any help is appreciate and no coding skills are needed π€
PS: please do not use send translations made by Google translate or similar.
Generate
Run node scripts/generate-translation-files.js
in order to create the files needed for the new language you want to add to the app.
Manage Files
Run 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.
π Deployment
Any 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
.
π Build
First you need to configure SENTRY_AUTH_TOKEN
and SENTRY_DSN
secrets on expo.dev 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
.
Run eas build -p ios
to build for the App Store Connect and eas build -p android
for the Google Play Console.
π¨βπ» Contribute β€οΈ
More than 40 developers have contribute to the app, thanks a lot to them!
Have a look to contributing.md if you want to contribute!
π Backers
A big thank you to ChristopherΒ Gwilliams and to the Phelps family for their amazing contribution to the Kickstarter!
Β©οΈ Open source - licence
Repository and contributions are under GNU General Public License v3.0
Owner metadata
- Name: NMF.earth
- Login: NMF-earth
- Email: [email protected]
- Kind: organization
- Description: Understand and reduce your carbon footprint π± π
- Website: http://nmf.earth
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/63661783?v=4
- Repositories: 3
- Last ynced at: 2023-06-03T20:22:39.805Z
- Profile URL: https://github.com/NMF-earth
GitHub Events
Total
- Issues event: 3
- Watch event: 30
- Issue comment event: 3
- Push event: 2
- Pull request review event: 5
- Pull request review comment event: 4
- Pull request event: 1
- Fork event: 7
Last Year
- Issues event: 3
- Watch event: 30
- Issue comment event: 3
- Push event: 2
- Pull request review event: 5
- Pull request review comment event: 4
- Pull request event: 1
- Fork event: 7
Committers metadata
Last synced: 6 days ago
Total Commits: 665
Total Committers: 55
Avg Commits per committer: 12.091
Development Distribution Score (DDS): 0.45
Commits in past year: 8
Committers in past year: 4
Avg Commits per committer in past year: 2.0
Development Distribution Score (DDS) in past year: 0.5
Name | Commits | |
---|---|---|
Pierre Bresson | P****n | 366 |
Theo Lampert | t****t@g****m | 40 |
Pierre Bresson | p****n@M****l | 24 |
adrianxx321 | l****1@g****m | 23 |
Adam Fitzgibbon | f****r@h****m | 17 |
akash.pathak | a****2@g****m | 16 |
a2br | 6****r | 16 |
hb2708 | h****8@g****m | 14 |
Alireza Ghamkhar | m****r@g****m | 13 |
Gurvan Henry | g****y@g****m | 11 |
Stijn Bernards | s****s@e****l | 10 |
NMF.earth | 5****h | 10 |
Prana Thirthahalli Bhat | p****t@m****m | 9 |
Pierre Bresson | p****e@b****p | 6 |
Petrus Pierre | p****e@c****m | 5 |
ChengKangYee | j****3@g****m | 5 |
Paulus Sujono | p****s@p****m | 5 |
Lucien Blunk-Lallet | l****t@g****m | 5 |
CorneΜ Dorrestijn | c****n@e****l | 5 |
adrnliaw | 5****w | 3 |
Chris Gwilliams | e****a@g****m | 3 |
devanshujain95 | d****5@g****m | 3 |
Sai Vittal B | s****b@g****m | 3 |
Emerson Pinheiro | e****s@h****m | 3 |
michel almeida | m****a@n****s | 3 |
Stanislav | s****v@s****m | 3 |
Pierre Bresson | p****n@P****l | 3 |
codesee-maps[bot] | 8****] | 2 |
Stanislav | s****a@y****u | 2 |
Saurabh Chatterjee | 2****3 | 2 |
and 25 more... |
Committer domains:
- emico.nl: 2
- digitals-mbp.lan: 1
- klarna.com: 1
- datafuse.de: 1
- dev-creations.de: 1
- yandex.ru: 1
- seo-experts.com: 1
- nave.rs: 1
- paulussujono.com: 1
- codeminer42.com: 1
- bluelobster.app: 1
- microsoft.com: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 221
Total pull requests: 174
Average time to close issues: 2 months
Average time to close pull requests: 6 days
Total issue authors: 18
Total pull request authors: 60
Average comments per issue: 1.67
Average comments per pull request: 1.37
Merged pull request: 138
Bot issues: 0
Bot pull requests: 9
Past year issues: 3
Past year pull requests: 3
Past year average time to close issues: 15 days
Past year average time to close pull requests: 5 days
Past year issue authors: 1
Past year pull request authors: 2
Past year average comments per issue: 1.0
Past year average comments per pull request: 1.0
Past year merged pull request: 3
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- PierreBresson (189)
- theolampert (10)
- ghost (4)
- DGrothe-PhD (3)
- adamfitzgibbon (2)
- teolemon (1)
- MechanikGamer (1)
- MartinDelille (1)
- EugenSong (1)
- matthieugendrin (1)
- a2br (1)
- SAISUDHEERREDDY (1)
- jonatasbaldin (1)
- RAMAR-RAR (1)
- petruspierre (1)
Top Pull Request Authors
- PierreBresson (45)
- theolampert (12)
- hb2708 (7)
- BatDroid (7)
- dependabot[bot] (7)
- ptbhatcoder (5)
- Michelalmeidasilva (5)
- adamfitzgibbon (5)
- akkikumar72 (4)
- lucienbl (4)
- ChengKangYee (3)
- Stanislavja (3)
- EmersonPinheiro (3)
- petruspierre (3)
- devanshujain95 (3)
Top Issue Labels
- π Feature (92)
- π Bug (44)
- hacktoberfest (34)
- π Good first issue (24)
- π¦ Nice to have (21)
- π¨ Urgent (13)
- βοΈ Chore (11)
- π Documentation (6)
- β‘οΈ Performance (3)
- π€ Android (3)
- π Stickers (3)
- π iOS (1)
Top Pull Request Labels
- hacktoberfest-accepted (7)
Package metadata
- Total packages: 2
- Total downloads: unknown
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 30
proxy.golang.org: github.com/NMF-earth/nmf-app
- Homepage:
- Documentation: https://pkg.go.dev/github.com/NMF-earth/nmf-app#section-documentation
- Licenses:
- Latest release: v0.10.0 (published about 2 years ago)
- Last Synced: 2025-04-25T13:34:57.836Z (1 day ago)
- Versions: 15
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
proxy.golang.org: github.com/nmf-earth/nmf-app
- Homepage:
- Documentation: https://pkg.go.dev/github.com/nmf-earth/nmf-app#section-documentation
- Licenses:
- Latest release: v0.10.0 (published about 2 years ago)
- Last Synced: 2025-04-25T13:34:57.787Z (1 day ago)
- Versions: 15
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
Dependencies
- @babel/core 7.9.0 development
- @storybook/addon-actions 5.2.8 development
- @storybook/addon-knobs 5.3.19 development
- @storybook/addon-links 5.2.8 development
- @storybook/addon-ondevice-knobs 5.3.19 development
- @storybook/addons 5.2.8 development
- @storybook/react-native 5.2.8 development
- @storybook/react-native-server 5.2.8 development
- @types/i18n-js 3.0.2 development
- @types/jest 25.2.1 development
- @types/node 12.12.18 development
- @types/ramda 0.26.39 development
- @types/react 16.9.35 development
- @types/react-native 0.63.2 development
- @types/react-native-vector-icons 6.4.6 development
- @types/react-redux 7.1.7 development
- @types/react-test-renderer 16.9.2 development
- @types/uuid 3.4.6 development
- @types/webpack-env 1.15.0 development
- @typescript-eslint/eslint-plugin 4.29.0 development
- @typescript-eslint/parser 4.29.0 development
- babel-loader 8.1.0 development
- babel-plugin-module-resolver 4.0.0 development
- babel-preset-expo 8.3.0 development
- eslint 6.7.2 development
- eslint-config-prettier 6.12.0 development
- eslint-import-resolver-typescript 2.4.0 development
- eslint-plugin-import 2.22.1 development
- eslint-plugin-jest 23.8.2 development
- eslint-plugin-prettier 3.1.4 development
- eslint-plugin-react 7.17.0 development
- eslint-plugin-react-hooks 4.1.2 development
- front-matter 3.1.0 development
- glob 7.1.6 development
- husky 4.2.5 development
- jest-expo 42.0.0 development
- markdown-it 10.0.0 development
- mockdate 3.0.5 development
- prettier 2.1.2 development
- prompt-sync 4.2.0 development
- react-native-storybook-loader 1.8.1 development
- typescript 4.3.5 development
- @expo/vector-icons 12.0.0
- @react-native-async-storage/async-storage 1.17.0
- @react-native-community/datetimepicker 3.5.2
- @react-native-community/masked-view 0.1.10
- @react-native-community/slider 3.0.3
- @react-navigation/bottom-tabs 5.11.2
- @react-navigation/material-top-tabs 5.2.18
- @react-navigation/native 5.7.5
- @react-navigation/stack 5.12.8
- @reduxjs/toolkit 1.5.1
- carbon-footprint 1.6.0
- expo 42.0.0
- expo-application 3.2.0
- expo-asset 8.3.3
- expo-barcode-scanner 10.2.2
- expo-constants 11.0.1
- expo-device 3.3.0
- expo-document-picker 9.2.4
- expo-file-system 13.0.3
- expo-font 9.2.1
- expo-linking 2.3.1
- expo-localization 10.2.0
- expo-notifications 0.12.3
- expo-sharing 9.2.1
- expo-status-bar 1.0.4
- expo-store-review 4.1.0
- expo-updates 0.8.2
- expo-web-browser 9.2.0
- i18n-js 3.5.1
- lodash.throttle 4.1.1
- moment 2.24.0
- ramda 0.27.0
- react 16.13.1
- react-dom 16.13.1
- react-i18next 11.4.0
- react-native https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz
- react-native-collapsible 1.5.2
- react-native-gesture-handler 1.10.2
- react-native-globalize 3.0.0
- react-native-keyboard-aware-scroll-view 0.9.3
- react-native-modal-datetime-picker 8.5.4
- react-native-progress 5.0.0
- react-native-reanimated 2.2.0
- react-native-render-html 5.1.0
- react-native-safe-area-context 3.2.0
- react-native-screens 3.4.0
- react-native-svg 12.1.1
- react-native-tab-view 2.15.1
- react-redux 7.2.4
- redux 4.1.0
- redux-persist 6.0.0
- redux-thunk 2.3.0
- sentry-expo 4.0.1
- uuid 3.4.0
- 1866 dependencies
- Codesee-io/codesee-action v2 composite
- actions/checkout v2 composite
- actions/setup-node v2 composite
- expo/expo-github-action v7 composite
- actions/checkout v3 composite
- actions/setup-node v3 composite
- borales/actions-yarn v3.0.0 composite
Score: -Infinity