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.
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
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
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.
Clone the project to your workspace. Change into the cloned project and install all dependencies. This could take several minutes.
npm install
Copy and edit the template of sserver.config.json.template and add the development ILIAS installation. Save you configurationfile as server.config.json in branding/common/config. Add you Installation id to the config.json file in your brand (eg. branding/brands/vanilla/config.json)
Choose your brand, following the README.md in the branding folder.
Install the both platforms.
ionic cordova prepare
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
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.
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/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
In order to use Learnplaces (Lernorte) you need the google map plugin. Use Version 2.4.6. If allready installed another version remove the plugin:
ionic cordova plugin remove cordova-plugin-googlemaps
Add it using your API Key:
ionic cordova plugin add cordova-plugin-googlemaps@2.4.6 \
--variable API_KEY_FOR_ANDROID="YOUR API KEY ANDROID GOES HERE" \
--variable API_KEY_FOR_IOS= "YOUR API KEY IOS GOES HERE"
- 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 LICENSE.md 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