SupplyAlly helps ensure that everyone can get their fair share of items. By scanning a person's ID, you'll be able to track whether his allocated quota has been used up.
- Setup Sentry. Copy
.env.exampleto.envand populate with your values. You can skip this step if you don't want to use Sentry to track app errors. - Install
expo-cliglobally - Login to Expo using
expo login. Ask someone for the credentials. - Install Expo on your mobile device and/or simulator and login with the same account. When using a mobile device for testing, it needs to be on the same network.
- Install dependencies:
npm install - This step only applies if you are on a windows machine. If not, skip this step.
- open
package.jsonand replace thescriptsobject with the following:
- open
{
"start": "set APP_BUILD_VERSION=1 && set APP_BINARY_VERSION=dev && set START_STORYBOOK=false && expo start",
"start:mock": "set APP_BUILD_VERSION=1 && set APP_BINARY_VERSION=dev && set MOCK=true && expo start",
"test": "jest",
"test:coverage": "npm run test -- --coverage",
"test:watch": "jest --watch",
"storybook": "set APP_BUILD_VERSION=1 && set APP_BINARY_VERSION=dev && set START_STORYBOOK=true && expo start",
"android": "set APP_BUILD_VERSION=1 && set APP_BINARY_VERSION=dev && expo start --android",
"ios": "set APP_BUILD_VERSION=1 && set APP_BINARY_VERSION=dev && expo start --ios",
"web": "expo start --web",
"eject": "expo eject",
"lint": "eslint . --ext .ts,.tsx,.mdx --max-warnings 0",
"lint:fix": "npm run lint -- --fix"
}- Run one of the following to start development:
npm run startnpm run start:mock: If you'd like to mock the APIsnpm run storybook: If you'd like to use Storybook for development
- Open Expo and launch the app
npm run test
npm run test:watch // If you'd like to test specific files
We use Github Actions and have supplied the .gihthub/workflows for setting it up. You will need to add the following secrets to the Github Repo:
EXPO_CLI_PROD_USERNAME
EXPO_CLI_PROD_PASSWORD
EXPO_CLI_TEST_USERNAME
EXPO_CLI_TEST_PASSWORD
You will also need to define the following environment variables in a .env file (please refer to .env.example):
SENTRY_ORG: the slug of the organisation to use for a command
SENTRY_PROJECT: the slug of the project to use for a command
SENTRY_AUTH_TOKEN: the authentication token to use for all communication with Sentry
SENTRY_DSN: the DSN to use to connect to sentry
DOMAIN_FORMAT: to validate backend endpoints
If you're releasing this for the first time, you need to create a tag to specify the initial version of the app. This allows the changelog generator to generate the correct set of changes. A base-ref property will then need to be created in the changelog generator's with parameter. Once released, this property can be removed.
uses: metcalfc/changelog-generator@v0.4.0
with:
myToken: ${{ secrets.GITHUB_TOKEN }}
base-ref: <base-tag> # e.g. prod-0