The official COVID-19 app of the University of Illinois. Powered by the Rokwire Platform.
For academic references, please cite our formal release on Zenodo.
Flutter v2.2.2
Android Studio 3.6+
Xcode 12.5
CocoaPods 1.9.3+
[No description available]
[No description available]
- JSON data with the following format:
{
"production": {
"config_url": "https://api.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
},
"dev": {
"config_url": "https://api-dev.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
},
"test": {
"config_url": "https://api-test.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
}
}
- Generate random 16-bytes AES128 key.
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the AES.
- Create a data blob contains the AES key at the beginning followed by the encrypted data.
- Get a base64 encoded string of the data blob and save it as /assets/configs.json.enc.
Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of /assets/configs.json.enc.
NB: For versions prior to 2.8.
- JSON data with the following format:
{
"url": "https://api-dev.rokwire.illinois.edu/assets/buckets/items/organizations",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
}
- Generate random 16-bytes AES128 key.
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the AES.
- Create a data blob contains the AES key at the beginning followed by the encrypted data.
- Get a base64 encoded string of the data blob and save it as /assets/organizations.hook.json.enc.
Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of /assets/organizations.hook.json.enc.
NB: For version 2.8 and later.
- JSON data with the following format:
[
{
"id": "uiuc",
"name": "UIUC",
"icon_url": "https://upload.wikimedia.org/wikipedia/commons/7/7c/Illinois_Block_I.png",
"default": true,
"environments": {
"production": {
"url": "https://api.rokwire.illinois.edu/covid/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX",
"default": "release"
},
"dev": {
"url": "https://api-dev.rokwire.illinois.edu/covid/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX",
"default": "debug"
},
"test": {
"url": "https://api-test.rokwire.illinois.edu/covid/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
}
}
},
...
]
- Generate random 16-bytes AES128 key.
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the AES.
- Create a data blob contains the AES key at the beginning followed by the encrypted data.
- Get a base64 encoded string of the data blob and save it as /assets/organizations.json.enc.
Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of /assets/organizations.json.enc.
NB: Optional way to supply statically embeded organizations in appication bundle. If the list contains single organization definition the application switches to single organization mode. "/assets/organizations.hook.json.enc" must be omited from application assets in order to "/assets/organizations.json.enc" to take efect.
NB: For version 2.8 and later.
The Firebase configuration file for iOS generated from Google Firebase console.
Contains a GoogleMaps and Android Backup API keys.
googleMapsApiKey=XXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX
androidBackupApiKey=XXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXX
The Firebase configuration file for Android generated from Google Firebase console.
$ flutter build apk
$ flutter build ios
NB: You may need to update singing & capabilities content for Runner project by opening /ios/Runner.xcworkspace from Xcode