/nmf-app

Understand and reduce your carbon footprint 🌱 iOS & Android.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

🌱 NMF.earth app

Understand and reduce your carbon footprint


app-store google-play


screenshots

Depfu Contributor Covenant Build Status

Repository for the NMF.earth React Native application, built with Expo, Redux Toolkit and Typescript.


📦 Getting started

Installing Dependencies:

$ yarn

Running the app:

$ yarn start

For starting the app on a specfic OS:

$ yarn ios | yarn android

Copy the 2 files that contains secrets and replace them with yours

$ cp app.example.json app.json
$ cp secret.example.ts secret.ts

👩🏾‍💻 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 typechecking 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 a 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.


Same for methodology screen, just run node scripts/generate-methodology.js to update methodology.json from methodology.md.


🗣 Generate Translation Files

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.


🚀 Deployment

Any branches merged into master will trigger a github action that 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.


👨‍💻 Contributors

Have a look here if you want to contribute!

🌐 You can help us with translations with our online tool POEditor.


🏆 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