Sign inSign up

canardconfit/is-academia-bot

By canardconfit

•Updated over 1 year ago

A simple bot that allows me to scrap my grades from my school's IS-Academia website

Image
Monitoring & observability
0

3.5K

canardconfit/is-academia-bot repository overview

⁠IS-Academia Bot

Docker Pulls GitHub Release GitHub Repo stars

⁠Introduction

IS-Academia Bot is an automated tool designed to fetch, analyze, and report changes in course modules from the IS-Academia platform, commonly used by academic institutions to manage course registrations, grades, and schedules. This bot simplifies tracking changes in course details, offering notifications through various channels and updates via a Git repository.

Note: This bot is currently designed to work with the HES-SO website (https://age.hes-so.ch⁠) and the SWITCH Edu-Id connection. If you are not within these settings, you may need to modify the program to make this work for you.

⁠Table of Contents

⁠Installation

⁠Local Installation
  1. Clone the repository:
git clone https://github.com/yourusername/IS-Academia-Bot.git
cd IS-Academia-Bot
  1. Install dependencies:
npm install
# or, if you use yarn
yarn install
  1. Configure the .env file with your IS-Academia credentials, Discord webhook, and other settings. Refer to the provided .env.example for guidance.
  2. Run the bot:
npm start
# or, if you use yarn
yarn start
⁠Installation with Docker

The Docker image can be pulled from Docker Hub, here (ghcr.io) or Quay.io:

# Docker Hub
docker pull canardconfit/is-academia-bot

# ghcr.io
docker pull ghcr.io/canardconfit/is-academia-bot

# Quay.io
docker pull quay.io/canardconfit/is-academia-bot

Docker compose file:

version: '3'

services:
  is-academia-bot:
    image: canardconfit/is-academia-bot:latest
    container_name: is-academia-bot
    restart: always
    volumes:
      - "./git-history:/app/git-history"
    env_file:
      - "./environment.env"

Note: Create environment.env file with a copy of .env.example

From file docker-compose.yml⁠.

⁠Environment Configuration

Configure the bot by editing the .env file. Essential configurations include:

  • SWITCH_USERNAME and SWITCH_PASSWORD for IS-Academia login.
  • GIT_REMOTE, GIT_BRANCH, GIT_FOLDER and GIT_FILE for Git repository details.
  • DISCORD_ID and DISCORD_TOKEN for Discord notifications.
  • TELEGRAM_TOKEN and TELEGRAM_CHAT_ID for Telegram notifications.

For more details on configuration options, refer to the .env.example file.

⁠Features

Module Tracking: Automatically tracks changes in course modules.

Git Version Control: Maintains a version-controlled history of module changes.

Flexible Configuration: Customizable to monitor specific courses or semesters.

Notification Support: Sends notifications through different channels :

  • Discord via Webhook
  • Telegram via Bot API

⁠How It Works

IS-Academia Bot scrapes the IS-Academia webpage for the specified courses or modules, compares the fetched data with the previously stored state, and identifies any changes. On detecting updates, it commits these changes to a Git repository and optionally sends notifications through the configured channels.

⁠Contributing

Contributions are welcome! Please fork the repository and submit pull requests with your improvements. For major changes, open an issue first to discuss what you would like to change.

⁠License

Apache 2.0 License⁠

Tag summary

Content type

Image

Digest

sha256:5f2bba6b6…

Size

1.1 GB

Last updated

over 1 year ago

docker pull canardconfit/is-academia-bot