Java library for parsing schools' substitution schedules. Supports multiple different systems mainly used in the German-speaking countries, including Untis, svPlan, and DAVINCI
Clone or download
Latest commit d2a7ca4 Jan 14, 2019

README.md

substitution-schedule-parser

Build Status Coverage Status Download Javadocs

vertretungsplan.me Logo

Java library for parsing schools' substitution schedules. Supports multiple different systems mainly used in the German-speaking countries.

The Android and iOS App vertretungsplan.app is powered by this library and supports more than 500 schools. An older version of the Android app is open source.

Usage

The sample directory contains a simple example that uses the library. The automatically generated Javadoc is available at javadoc.io.

Builds of the library are available through both the JCenter and Maven Central repositories. You can find instructions how to use them with different build systems (such as Gradle and Maven) at the Bintray website. It is also possible to download the library as a JAR file from that website.

When you use the library in your own project or do any modifications to it, please take note of the License it is distributed under. I would also appreciate it if you'd tell me what exciting projects you are using the library in, just drop me a mail at info@vertretungsplan.app!

If you run into problems using this library, you can simply report an issue and I will try to help you as soon as possible.

Supported substitution schedule software systems

Below you find the currently supported substitution schedule softwares and the corresponding values for SubstitutionScheduleData.setApi():

  • Untis
    • Monitor-Vertretungsplan (example) "untis-monitor"
    • Vertretungsplan (example) "untis-subst"
    • Info-Stundenplan (example) "untis-info"
      • Substitution tables: good support
      • Week timetables with substitution entries: experimental support, not recommended
    • Info-Stundenplan without header (example) "untis-info-headless"
  • svPlan (example) "svplan"
  • DaVinci (example) "davinci"
  • ESchool (example) "eschool"
  • LegionBoard "legionboard"
  • Indiware
    • XML export (example) "indiware"
    • XML export converted to HTML (example) "indiware"
    • Stundenplan24.de format (example) "stundenplan24"
    • Indiware Mobil (example) "indiware-mobile"

Depending on the type of software, different options need to be supplied in SubstitutionScheduleData.setData(). Documentation about these parameters can be found on each parser's page in the Javadoc.

License

This library is licensed under the Mozilla Public License, Version 2.0.

I would like to strongly encourage people that create and use modified versions of this library, for example by fixing bugs or adding support for a new substitution schedule software, to publish the changed source code no matter if the resulting product is released in executable form or not (e.g. by only being run on a web server or your own computer), even though this is only required by the terms of the license in the first case. Submitting Pull requests to contribute your changes back to the original project is also welcome.

Contributors

I would like to thank the following people for their contributions to this open source project:

Contributing

When you clone the git repository, you should directly be able to run ./gradlew sample:run to run the sample application. All dependencies will be downloaded automatically. You can also use IDEs such as IntelliJ IDEA that support the Gradle build system.

If you run into any problems building the project, you can email me at info@vertretungsplan.app or report an issue.

Please note that we have a Code of Conduct in place that applies to all project-related communication.