Created at the hubraum T Phone Hackathon, which took place in Berlin from 21.01.2023 to 22.01.2023.
The NMF.earth app was used as the starting point for a crypto investing app.
Repository for the TChain React Native application, built with Expo, Redux Toolkit and Typescript. Design can be found on Figma.
Token prices come from Binance while NFT data comes from OpenSea.
Installing Dependencies:
$ yarn
Running the app:
$ yarn start
For starting the app on a specific OS:
$ yarn ios | yarn android
Copy the 2 files that contain secrets and replace them with yours
$ cp app.example.json app.json
$ cp secret.example.ts secret.ts
-
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
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
Stories (*.story.tsx) can be automatically added to storyLoader.js
with :
$ yarn prestorybook
To place new .md
files inside guides
folder or modify existing guide and then run node scripts/generate-guides.js
to generate a new investment guide. Images can be used in the .md
as follow: ![Token](token.png)
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 token info screen, just run node scripts/generate-token-info.js
to update token-info.json
from assets/token-info/markdown/*.md
.
You can help us with translate the app with our online tool POEditor. Any help is appreciate and no coding skills are needed 🤗
The app supports fully or partially the following languages : English, French, German, Swedish, Danish, Russian, Portuguese, Spanish, Polish, Chinese and Malaysian.
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.
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.
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
.
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.
More than 30 developers have contribute to the app, thanks a lot to them!
Have a look to contributing.md if you want to contribute!
A big thank you to hubraum for hosting the hackathon.
Repository and contributions are under GNU General Public License v3.0