# SkillCourt Phone Application

Mobile application for the SkillCourt project

---

## Dependencies

* [Java JRE > 1.8](https://adoptopenjdk.net/index.html?variant=openjdk16&jvmVariant=hotspot)
* [git](https://git-scm.com/)
* [git-flow-avh](https://github.com/petervanderdoes/gitflow-avh) or another [git-flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) plugin for Git.
* [Flutter SDK](https://flutter.dev/docs/get-started/install)
* [Android Studio](https://developer.android.com/studio) or [XCode](https://developer.apple.com/xcode/) with an installed phone emulator
* (Optional) [Visual Studio Code](https://code.visualstudio.com/) with [Flutter Plugin](https://flutter.dev/docs/development/tools/vs-code)
* (Optional) [Python 3](https://www.python.org/downloads/) to run the pad emulator script.

## Installation

1. Clone this repository.
2. Symlink [`hooks/pre-commit`](./hooks/pre-commit) to `.git/hooks/pre-commit`.
3. Run `flutter pub get` inside the repository to pull the latest dependencies.
4. Run `flutter pub run build_runner build --delete-conflicting-outputs` inside the repository.
5. Run the [`main.dart`](./lib/main.dart) application using the emulator of your choice.
6. (Optional) Install [requirements.txt](./requirements.txt) using `pip` to download all required Python dependencies.

## Contributions

Contributions to the SkillCourt phone application must:

1. Correctly use and pass the `pre-commit` git hook.
2. Properly use [git-flow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) as the Git branching model.
3. Implement all Flutter Widgets in both an Android and iOS style using no platform-specific sub-widgets.