Hey! We're excited that you're interested in contributing to Junto and thank you for your time in advance. Please review the following guidelines to get started.
We encourage all of our contributors to hold space for mutual respect, diversity, and open-mindedness. View our code of conduct here.
- Bug reports
- UX/UI optimizations
- Feature development
- Code clean up
- Translations
- Feedback & new ideas
Report all issues here. Remember to add the appropriate labels.
The master branch is just a snapshot of the latest stable release. All development should be done in dedicated branches. Do not submit PRs against the master branch.
As you start developing, create a new branch off of dev and make your pull request against that branch.
- Latest version of Flutter (Junto development team uses branch
beta) - Junto API (Request an API key at hi@junto.foundation. We are optimizing our security and will open source our API soon)
Once you've configured Flutter and obtained an API key from the dev team:
- Create a file called
api.dartin the project'slibfolder and add the values provided to you by the dev team. - If you are building for Android, create a
key.propertiesfile in the root of theandroidfolder containing the following:
storePassword=dev-password
keyPassword=key-password
keyAlias=key-alias
storeFile=file-location
- And you're all set! Feel free to inspect our code and contribute to the project. PRs are welcome :)
Junto's mobile app has three flavors called dev, tst and prod. Please use the dev flavor to begin contributing to the project. If you'd like to install a separate dev build on your phone through our CI, feel free to reach out at dev@junto.foundation and run the tst flavor instead.
flutter run --flavor dev --target lib/main_dev.dart
You can also access flavors by calling appConfig.flavor.
We're using Localizely and arb files to i18n the app. We recommend using Flutter Intl extension for VS Code or Android Studio to automatically generate the language files. It should automatically detect the files.
In order to download the arb files from Localizely, add your API key to the scripts/fetch_localizely.sh file. To download just run it. You can also run it through VS Code tasks. Sample tasks.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Download translations from Localizely",
"type": "shell",
"command": "./scripts/fetch_localizely.sh",
"problemMatcher": []
}
]
}To use term in Dart code just call:
S.of(context).welcome_password_lengthSometimes the translations may not refresh/regenerate immediately. In this case, just open any arb file and press CMD+S. The extension should automatically regenerate dart files.
You can read more how to use this approach here.
