My favorites | Sign in
Project Home Downloads Issues Source
Project Information
Members

Welcome

This work is inspired by http://skema.secretman.dk/ who provides a nice (= easy to read) calendar for students at Aarhus University, when given their student id number.

The object of this project is to provide the calendar in the more widespread iCal format to allow easy import into different calendar systems.

Namedropping

There's also an issue created for this, but we might as well present it here: What should this service be called? So far the suggestions are:

  • auCal
  • auScheme
  • myScheme
  • auCourses
  • myCourses
  • iCalSkemaGenerator
  • AUiCal

Viewing the calendar

A good resource for viewing the final calendar (if you don't like google calendar) is http://www.instantcal.com/ that lets you link directly to an iCal file, whereupon it generates the calendar.


Structure of the program

The Form of the Input

Each subject is formatted like this (from http://services.science.au.dk/apps/skema/ElevSkema.asp):

Matematisk Analyse 1

Forelæsning

FTirsdag14 - 16Naturhistorisk Museums Aud. (1212-001)uge 4-10Uge 7 i lok. Fys.aud.A, bygn. 1162, lok. 013
FTorsdag14 - 16Auditorium E (1533-103)uge 4-10

The Beast

The program takes a student's id number, an eight digit number, and makes a POST request to a site that returns the students schedule in HTML format. This is then (to be) parsed to produce a calendar in the iCal format. The noteworthy classes are:

FetchTimeTable.java

Fetches the time table from Aarhus University's own site, and saves the raw HTML to a .txt file. This is to allow the connection to be closed as fast as possible. Note that it is only the content between the <body> ... </body> tags that is saved.

TimeTableParser

Parses the time table found in aarskort.txt and creates a series of activities, which are then passed to the Schedule class.

Schedule.java

The Schedule class represents the overall time table and is responsible for creating the final calendar. It's constructor receives a list of Activitys and the user's student card number (as a String)

Activity.java

Each Activity has fields corresponding to the table entries (from the above example) like this:

teamdayhourslocationweekscomment

The Activity class provides the conversion from the activities to iCalendar VEVENTs, when requested (from Schedule)

Subject.java

Important: The Subject class has recently been factored out, and has been removed from the repository!

Future plans

Create a web service that provides a good (easy) interface for this program (a la skema.secretman.dk)

Powered by Google Project Hosting