Skip to content

Commit 54df1dd

Browse files
authored
Merge pull request #4 from passlickdev/wip-miscfiles
README and other miscellaneous files
2 parents 95eb969 + c55be0a commit 54df1dd

File tree

5 files changed

+184
-1
lines changed

5 files changed

+184
-1
lines changed

.github/FUNDING.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl
99
liberapay: # Replace with a single Liberapay username
1010
issuehunt: # Replace with a single IssueHunt username
1111
otechie: # Replace with a single Otechie username
12-
custom: ['paypal.me/passlick'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
12+
custom: ['https://passlickdev.com/redirect?id=4002'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

.github/RESOURCES/logo.png

8.81 KB
Loading

.github/RESOURCES/passlickdev.png

3.27 KB
Loading

CODEOWNERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# This file provides an overview of code owners in this repository.
2+
3+
# Each line is a file pattern followed by one or more owners.
4+
# The last matching pattern has the most precedence.
5+
# For more details, read the following article on GitHub: https://help.github.com/articles/about-codeowners/.
6+
7+
# These are the default owners for the whole content of this repository. The default owners are automatically added as reviewers when you open a pull request, unless different owners are specified in the file.
8+
* @nicopasslick

README.md

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
<br/><br/>
2+
3+
<p align="center">
4+
<a href="#"><img src=".github/RESOURCES/logo.png"></a>
5+
</p>
6+
<p align="center"><b>WWU Learnweb Notifier Service</b></p>
7+
8+
<br/>
9+
10+
<hr />
11+
<p align="center">
12+
<a href="https://github.com/passlickdev/learnweb-notifier/releases"><b>Download Binaries</b></a>&nbsp;&nbsp;–&nbsp;
13+
<a href="#technology">Technology</a>&nbsp;&nbsp;–&nbsp;
14+
<a href="#setup--installation">Setup & Installation</a>&nbsp;&nbsp;–&nbsp;
15+
<a href="#configuration">Configuration</a>&nbsp;&nbsp;–&nbsp;
16+
<a href="#licensing">Licensing</a>&nbsp;&nbsp;–&nbsp;
17+
<a href="https://passlickdev.com/redirect?id=4002">Donate</a>
18+
</p>
19+
<hr />
20+
<br/>
21+
22+
The <b>Learnweb Notifier Service</b> monitors your Learnweb courses and notifies you when new content is available. The service is compatible with [Learnweb](https://www.uni-muenster.de/LearnWeb/learnweb2/) of the WWU University of Münster, which is based on [Moodle](https://moodle.org/). Completely written in C# on the platform-independent .NET Core environment. Developed by Passlick Development.
23+
24+
<br/>
25+
26+
## Technology
27+
28+
### General
29+
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.
30+
31+
<br/>
32+
33+
### Modules
34+
35+
The service is divided into separate modules. The purpose of the individual modules is explained below.
36+
37+
#### LearnwebNotifier.Library
38+
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.
39+
40+
#### LearnwebNotifier.Test
41+
This module provides unit tests and test resources for the service and can be used to test the service.
42+
43+
#### LearnwebNotifier.Push
44+
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.
45+
46+
<br/>
47+
48+
### Requirements for Courses
49+
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!
50+
51+
<br/>
52+
53+
### Client Notifications (Push)
54+
In this current version, notifications of new activities are sent to your mobile phone as push notifications. This is currently implemented using [Pushover](https://pushover.net/), 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.
55+
56+
<br/>
57+
58+
### Course Activities
59+
The service retrieves activities from courses and notifies you of new activities. Below you will find the types of activities currently supported.
60+
61+
#### Supported Activities
62+
Every first-level activity in courses, for example ...
63+
* New/updated file in course
64+
* New/updated link in course
65+
* New/updated assignment in course
66+
* Deletion of files/folders/...
67+
* ...
68+
69+
#### Currently Non-Supported Activities
70+
Second-level activities, for example ...
71+
* Activities inside folders
72+
* Assignment upload confirmations
73+
* Forum posts and updates (covered by Learnweb notifications)
74+
* ...
75+
76+
<br/>
77+
78+
## Setup & Installation
79+
>:rocket: The following installation instructions focus on the installation of the LearnwebNotifier.Push module
80+
81+
>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
82+
83+
### System Requirements
84+
* OS: Linux (e.g. Debian)
85+
The service can run on virtually any host. For example, you can use a vServer instance or a Raspberry Pi!
86+
* RAM: ~50 MB
87+
* Environment: .NET Core 3.1 runtime, Docker (optional)
88+
89+
<br/>
90+
91+
### Setup Pushover
92+
1. Go to [Pushover](https://pushover.net/) and create an account, if not already existing
93+
2. You have to register an application to receive notifications; just follow [this documentation](https://pushover.net/api#registration) to do so
94+
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
95+
4. Download the Pushover app on your desired devices and log-in with your account
96+
97+
<br/>
98+
99+
### Install with Docker
100+
>:rocket: Support for Docker coming soon! Please install manually
101+
102+
<br/>
103+
104+
### Manual Installation
105+
We recommend installing the service with Docker, but the service can also be installed manually. Just follow the steps below.
106+
107+
#### Install .NET Core
108+
The service requires .NET Core 3.1 runtime. Refer to [this documentation](https://docs.microsoft.com/en-us/dotnet/core/install/linux) 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.
109+
110+
```bash
111+
sudo apt-get update
112+
sudo apt-get install apt-transport-https
113+
sudo apt-get update
114+
sudo apt-get install dotnet-runtime-3.1
115+
```
116+
117+
#### Download Binary
118+
119+
Head over to the [Releases](https://github.com/passlickdev/learnweb-notifier/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.
120+
121+
#### Run the Service
122+
123+
>:warning: Please run the service as a non-root user!
124+
125+
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!
126+
127+
```bash
128+
./lwnotif-push
129+
```
130+
131+
It is recommended to run the service in a separate [screen](https://linuxize.com/post/how-to-use-linux-screen/) session. You can also set up the service as a systemd daemon after creating a config file.
132+
133+
<br/>
134+
135+
### Configuration
136+
137+
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.
138+
139+
#### Assistant Execution
140+
141+
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.
142+
143+
```bash
144+
./lwnotif-push --config
145+
```
146+
147+
#### Optional Settings
148+
149+
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.
150+
151+
##### Refresh Interval
152+
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).
153+
154+
##### Sentry Integration
155+
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.
156+
157+
<br/>
158+
159+
## Licensing
160+
161+
Copyright (c) 2020 Passlick Development. All rights reserved.
162+
163+
Licensed under the **GNU General Public License v3.0** (the "License"); you may not use this file except in compliance with the License.
164+
165+
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](./LICENSE) for the specific language governing permissions and limitations under the License.
166+
167+
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!
168+
169+
<br/>
170+
<hr />
171+
<br/><br/>
172+
<p align="center">
173+
<a href="https://passlickdev.com/"><img src=".github/RESOURCES/passlickdev.png"></a>
174+
</p>
175+
<br/>

0 commit comments

Comments
 (0)