Skip to content

Unified API for Schulnetz, simplifying data access with dynamic routing

License

Notifications You must be signed in to change notification settings

PianoNic/SchulwareAPI

Repository files navigation

SchulwareAPI

SchulwareAPI Logo

Unified API for Schulnetz, simplifying data access with dynamic routing.

visits

Important

This project is NOT affiliated with, endorsed by, or connected to Schulnetz or Centerboard AG in any way. This is an independent, unofficial API wrapper that provides a unified interface to interact with their existing systems.

⚙️ About The Project

SchulwareAPI is a unified API designed for Schulnetz systems, simplifying data access through dynamic routing. It allows access to data via mobile REST or web scraping and includes interactive Swagger UI for automatic documentation, making API understanding easier.

✨ Features

  • Unified API: Access data via mobile REST or web scraping, optimized for each endpoint.
  • Auto-Docs: Interactive Swagger UI and openapi.json for easy API understanding.
  • Docker Ready: Simple, containerized deployment.

🛠️ Compatibility

This API has been tested on:

  • bbbaden
  • kanti baden (Still implementing php scraper)

Schulnetz systems.

Access the API

API will be live at:

🐳 Docker & Container Registry Usage

You can run SchulwareAPI easily using Docker or pull prebuilt images from public registries.

Docker Compose

You can also use the provided compose.yml for local development or deployment. Make sure to set up your .env file with the required environment variables.

docker compose up -d

Option 2: Run with Docker Compose (Recommended)

1. Create a compose.yml file:
Use your favorite editor to create a compose.yml file and paste this into it:

services:
  schulware-api:
    image: pianonic/schulwareapi:latest # Uses the image from Docker Hub
    # image: ghcr.io/pianonic/schulwareapi:latest # Uses the image from GitHub Container Registry
    ports:
      - "8000:8000"
    environment:
      - PYTHONUNBUFFERED=1
      - SCHULNETZ_API_BASE_URL=${SCHULNETZ_API_BASE_URL}
      - SCHULNETZ_WEB_BASE_URL=${SCHULNETZ_WEB_BASE_URL}
      - SCHULNETZ_CLIENT_ID=${SCHULNETZ_CLIENT_ID}
    env_file:
      - .env
    restart: unless-stopped
    init: true  # Recommended to avoid zombie processes
    ipc: host   # Recommended for Chromium to avoid memory crashes

2. Start it:

docker compose up -d

The API will be available at http://localhost:8000.

📜 License

This project is licensed under the MIT License. See LICENSE for details.


Made with ❤️ by PianoNic

Buy Me A Coffee

About

Unified API for Schulnetz, simplifying data access with dynamic routing

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages