---
[**Helium**](https://www.heliumedu.com) is a free, color-coded online student planner for classes, homework, grades, and notes.
---
# Helium Frontend
[](https://github.com/HeliumEdu/frontend/actions/workflows/build.yml)
[](https://app.codacy.com/gh/HeliumEdu/frontend/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)

The `frontend` for Helium - Student Planner, including mobile and web deployments.
## Prerequisites
- Dart & Flutter
- Android or iOS Emulator
- ChromeDriver (for Integration Tests)
## Getting Started
## Development
To build a development versions of the app for Android and iOS, execute:
```sh
make build-android
make build-ios
```
Tun run a development version of the app for `web`, executing:
```sh
make run-devserver
```
Before commits are made, be sure to also run tests.
```sh
make test
make test-integration
```
When running a local `web` version of the project but hitting `prod` APIs, CORS will need to be disabled
by passing a flag like `--web-browser-flag=--disable-web-security` to Flutter so it starts the browser with this
disabled.
### Platform API
The backend `platform` API is served from a separate repository and can be found [here](https://github.com/HeliumEdu/platform#readme).
If `platform` has been provisioned and is running locally, and you would like to run the frontend against the local
backend instead of production, run with `--dart-define PROJECT_API_HOST=http://localhost:8000`, or use `PROJECT_API_HOST=http://localhost:8000 make run-devserver`.
Note that to reach `localhost` from within an Android emulator, use `10.0.2.2` instead.
## Local Docker (Web)
The web app can be built and served locally in Docker as a static SPA on port `--web-port=8080`.
```sh
make
```
The Docker image serves the built Flutter web assets on `http://localhost:8080`.