An ILIAS Companion App
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

ILIAS Pegasus

ILIAS Pegasus is an app which is running on Android or iOS and integrate functions of the ILIAS learn management system. For example viewing courses or personal news. Furthermore it is possible to make files offline available to read them while offline.

Getting Started

These instructions will get the ILIAS Pegasus app up and running.


The following tools are needed to build and deploy the app.

Ionic CLI:

npm install -g ionic

Cordova CLI:

npm install -g cordova

iOS Development

A few additional tools are needed to run the app on an iOS device or emulator.

Install xcode over the apple app store.

Install the development cli tools with

xcode-select --install

Install ios-sim which is used to fire up the iOS emulator.

npm install -g ios-sim

Install ios-deploy which is used to deploy apps on a device.

npm install ios-deploy

Android Development

Install Android Studio from google.

Install the latest Android SDK with the Android Studio Android SDK manager. Add the root of your Android SDK to the environment variable $ANDROID_HOME.

Install the Java 8 SDK from oracle. Java 9 and 10 are not supported at the moment. Add the path to your java runtime to the $JAVA_HOME environment variable.


Clone the project to your workspace. Change into the cloned project and install all dependencies. This could take several minutes.

npm install

Install the both platforms.

ionic cordova prepare

Copy and edit the template of config.json and add the development ILIAS installation.

mv src/assets/config.json.template src/assets/config.json

Debug Build

The iOS app can be build with the following command.

ionic cordova build ios

The Android can be build with the same command.

ionic cordova build android

Run the Tests


The linter can be run as shown bellow.

npm run tslint

A lot of old code does not comply with the new code style rules checked by tslint, which result in a lot of warnings.

Unit tests

The unit tests can be run with the command shown bellow.

npm run karma:singlerun

If karma should keep running after the tests use the following command.

npm run karma



Add only the productive ILIAS installations which are ready for production use.

Move the template file if not already done.

mv src/assets/config.json.template src/assets/config.json

Caution! Never reuse a installation id, use a new one instead.


The iOS app can be build with the following command.

ionic cordova build ios --release --prod


There is a separate build script ./tools/ which can be used to build the Android release version. Execute the script in the root of the app project. Only Linux and macOS are currently supported by the build script.


There is a range of environment variables which can be used to run the Android build scripts.

  • ANDROID_BUILD_TOOLS_VERSION - Set the Android tools version which should be used for example "27.0.3"
  • KEYSTORE_PASSWORD - The password of the keystore which is used to sign the app, the script will ask for a password if empty.
  • KEY_STORE - The path to the keystore which should be used to sign the app.
  • OUTPUT_DIR - The directory which will contain the signed build of the Android app.
  • PROJECT_ROOT - The project root of the project which should be built, defaults to current working directory.

Example with options.

KEY_STORE="mystore.jks" \ 
OUTPUT_DIR="./bin" \ 

Build With

  • Cordova - Is powering the app.
  • Ionic - To build a responsive UI.
  • Typescript - Helps maintaining large code bases and catch type issues early.


We use SemVer for versioning. For the versions available, see the releases on this repository.


See the list of contributors who participated in this project.


This project is licensed under the GNU GPLv3 License - see the file for details.


We would also like to thank all the authors of the plugins and libraries we used! Please check the package.json or run the command bellow to see a list of all the plugins and libraries.

npm la --depth 0