Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/thebeaconcrafter/untis-notifier
Server to notify users of timetable/absences/homework changes in Untis
https://github.com/thebeaconcrafter/untis-notifier
untis untis-substitution-plan untis-timetable
Last synced: 6 days ago
JSON representation
Server to notify users of timetable/absences/homework changes in Untis
- Host: GitHub
- URL: https://github.com/thebeaconcrafter/untis-notifier
- Owner: TheBeaconCrafter
- License: mit
- Created: 2024-09-28T07:29:22.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-12-13T14:24:54.000Z (9 days ago)
- Last Synced: 2024-12-13T14:34:31.097Z (9 days ago)
- Topics: untis, untis-substitution-plan, untis-timetable
- Language: JavaScript
- Homepage:
- Size: 99.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Untis Notifier
This project is a notification system for Untis, a school scheduling software. It allows users to receive notifications about upcoming events, such as exams, assignments, or class changes.
## Features:
- **Real-time notifications**: The system sends notifications to users whenever there is a change in their schedule.
- **Customizable notifications**: Users can choose which types of events they want to be notified about and how they want to receive the notifications (e.g., Discord Webhooks, Slack Webhooks).
- **iCal Integration**: Sync your timetable to your calendar app with iCal. The calendar stream shows you when, where and with whom your classes are.
- **No exposed ports**: You don't have to expose any ports or have an outward facing server due to the use of webhooks.**⚠️ IMPORTANT ⚠️** This project was built and tested on Node JS version v20.17.0. It may fail to run on older/newer versions.
## Quick Install:
1. Clone the repository:
```bash
git clone https://github.com/TheBeaconCrafter/untis-notifier.git
```
2. Make the install script executable:
```bash
chmod +x setup.sh
```
3. Run the install script:
```bash
./setup.sh
```
The script installs screen and npm if not already installed and guides you through the setup process. For manual installation, refer to the paragraph below.## Manual Install:
1. Clone the repository:
```bash
git clone https://github.com/TheBeaconCrafter/untis-notifier.git
```
2. Install the required dependencies:
```bash
npm install node-fetch webuntis path express date-fns ejs ical-generator readline
```
3. Set up the configuration file:
- Copy the `configExample.js` file and rename it to `config.js`.
- Fill in the necessary information, such as your Untis credentials and notification settings.
4. Run the application:
```bash
node index.js
```## iCal Sync
- untis-notify can sync your timetable to your favorite calendar app (provided it supports iCal).
- For this feature to work, go into your config.js and enable **enableWebServer**, **enableIcalStreaming** and set your **webServerPort** to one that is open to the web.
- If you want to make sure that nobody can trigger an unauthorized API refresh via the webportal, please enable **disableRoutesExceptIcal** (highly recommended in production).
- Your calendar will be available at http://YOURSERVER:PORT/timetable.ics
- Keep in mind that this calendar is open to anyone with the link
- The calendar will refresh in the same interval that is set for **checkInterval** in your config.js## Usage:
- The system monitors Untis automatically for changes in exams, homework, absences, and timetable changes every 10 minutes (customizable).
- There is a debug web interface at `http://localhost:3000` which should not (yet) be exposed to the internet. There are options for keeping it off in the secrets file.
- **Note**: This software is in early development, so expect bugs. It was built and tested with node version v20.17.0.## Contributing:
1. Fork the repository.
2. Create a new branch:
```bash
git checkout -b feature/your-feature
```
3. Make your changes and commit them:
```bash
git commit -m 'Add some feature'
```
4. Push to the branch:
```bash
git push origin feature/your-feature
```
5. Submit a pull request.## License:
This project is licensed under the MIT License. See the `LICENSE` file for more information.