An ILIAS Companion App
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
docs
resources
src
test
www
.editorconfig
.gitignore
.gitlab-ci.yml
CHANGELOG.md
LICENSE.md
README.md
config.xml
ionic.config.json
package-lock.json
package.json
tsconfig.json
tslint.json

README.md

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.

Prerequisites

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. https://developer.android.com/studio/index.html

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. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Add the path to your java runtime to the $JAVA_HOME environment variable.

Install

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

Lint

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

Deployment

Configuration

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.

iOS

The iOS app can be build with the following command.

ionic cordova build ios --release --prod

Android

There is a separate build script ./tools/build-android.sh 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.

./tools/build-android.sh

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.

ANDROID_BUILD_TOOLS_VERSION="27.0.3" \  
KEY_STORE="mystore.jks" \ 
OUTPUT_DIR="./bin" \ 
./tools/build-android.sh

Build With

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

Versioning

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

Authors

See the list of contributors who participated in this project.

License

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

Acknowledgments

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

Contact

info@studer-raimann.ch
https://studer-raimann.ch