Skip to content

Notifer service for the WWU Learnweb. Monitors your Learnweb courses and notifies you when new content is available.

License

Notifications You must be signed in to change notification settings

passlickdev/learnweb-notifier

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



WWU Learnweb Notifier Service



Download Binaries  –  Technology  –  Setup & Installation  –  Configuration  –  Licensing  –  Donate



The Learnweb Notifier Service monitors your Learnweb courses and notifies you when new content is available. The service is compatible with Learnweb of the WWU University of Münster, which is based on Moodle. Completely written in C# on the platform-independent .NET Core environment. Developed by Passlick Development.


Technology

General

Learnweb Notifier retrieves your Learnweb courses regularly and notifies you as soon as there is a new activity in the course, which eliminates tedious manual retrieval of courses for new content. The service runs as a server app on all common operating systems and can be deployed manually or as a Docker container. To run the service, a Learnweb SSO account of the University of Münster is required.


Modules

The service is divided into separate modules. The purpose of the individual modules is explained below.

LearnwebNotifier.Library

The library is the core of the service. It provides basic functionality for the service, like the retrieval of Learnweb courses or the parsing of activities.

LearnwebNotifier.Test

This module provides unit tests and test resources for the service and can be used to test the service.

LearnwebNotifier.Push

This module implements the library and provides a universal worker service that regularly checks courses and sends push notifications using Pushover. The following installation instructions focus on the installation of this module.


Requirements for Courses

To retrieve the latest activities of a course, the "Recent Activities" widget is used, which is usually embedded in the course page. In order for the service to be able to retrieve activities for a course, the widget must be embedded in the course page, otherwise, the service will not work for the course!


Client Notifications (Push)

In this current version, notifications of new activities are sent to your mobile phone as push notifications. This is currently implemented using Pushover, which is a push service for custom push messages on iOS, Android, and Desktop. To receive notifications in the current version, a Pushover account and the correspondingly installed app is required. Please note that the Pushover service requires a one-time license payment of $5.00. A separate client for receiving and managing activities is planned for future versions of the Learnweb Notifier Service.


Course Activities

The service retrieves activities from courses and notifies you of new activities. Below you will find the types of activities currently supported.

Supported Activities

Every first-level activity in courses, for example ...

  • New/updated file in course
  • New/updated link in course
  • New/updated assignment in course
  • Deletion of files/folders/...
  • ...

Currently Non-Supported Activities

Second-level activities, for example ...

  • Activities inside folders
  • Assignment upload confirmations
  • Forum posts and updates (covered by Learnweb notifications)
  • ...

Setup & Installation

🚀 The following installation instructions focus on the installation of the LearnwebNotifier.Push module

Note: Since the service is mainly developed for Linux as a target system, the following installation instructions and software binaries are only available for Linux (using Debian 9 as an example) at this time

System Requirements

  • OS: Linux (e.g. Debian)
    The service can run on virtually any host. For example, you can use a vServer instance or a Raspberry Pi!
  • RAM: ~50 MB
  • Environment: .NET Core 3.1 runtime, Docker (optional)

Setup Pushover

  1. Go to Pushover and create an account, if not already existing
  2. You have to register an application to receive notifications; just follow this documentation to do so
  3. After you created an account and registered an application, you will receive a User Key and Application API Token which will be used later on
  4. Download the Pushover app on your desired devices and log-in with your account

Install with Docker

🚀 Support for Docker coming soon! Please install manually


Manual Installation

We recommend installing the service with Docker, but the service can also be installed manually. Just follow the steps below.

Install .NET Core

The service requires .NET Core 3.1 runtime. Refer to this documentation to learn how to install .NET Core on your system. Below is an example of installing the runtime on Debian 9. Execute the commands in the given order to install the runtime.

sudo apt-get update
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-runtime-3.1

Download Binary

Head over to the Releases and download the latest compiled version for your system. Copy the binary file to a folder of your choice (e.g. your home directory) on your host system.

Run the Service

⚠️ Please run the service as a non-root user!

Change into the directory in which you copied the binary file and execute the binary. Follow the steps of the assistant at the first start of the service to create a config file. After the setup routine, restart the service. You are good to go!

./lwnotif-push

It is recommended to run the service in a separate screen session. You can also set up the service as a systemd daemon after creating a config file.


Configuration

The assistant guides you through the setup of the service and creates a config file which is necessary to run the service. This file contains information about your Learnweb login, the monitored courses, and your Pushover data.

Assistant Execution

The assistant is executed if no config file is found (e.g. when the service is executed for the first time). If data needs to be changed, you can use the --config flag when starting the push service to force execution.

./lwnotif-push --config

Optional Settings

Some settings are not covered by the assistant. These settings can be configured using the config file located in the working directory of the push service.

Refresh Interval

The duration of the refresh interval can be configured by changing the refresh value in the section service. The value is specified in minutes (default is five minutes).

Sentry Integration

The push service supports log collection and error monitoring with Sentry. To activate Sentry, set the activate value to true and enter the Sentry DSN in dsn inside the sentry section.


Licensing

Copyright (c) 2020 Passlick Development. All rights reserved.

Licensed under the GNU General Public License v3.0 (the "License"); you may not use this file except in compliance with the License.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the LICENSE for the specific language governing permissions and limitations under the License.

This project is neither developed by the University of Münster nor is it related to it. The software uses inofficial ways to retrieve the required data, which could lead to account suspensions. The software is used at your own risk!