This project scrapes the Flinders website and creates a database from publicly available data on the website.
The project makes some uses of the data, including signage software for Flinders University.
This project's source is available free on Github.
The API is designed to be RESTful, and enables simple access to the data scraped from the Flinders website by this application.
The supported formats of the API include JSON and JSONP (using ?callback=foo query parameter)
Currently, the requests are supported by the API are
-
GET "/api/v2/uni/:uni_name/buildings.json" GET "/api/v2/uni/flinders/buildings.json
-
GET "/api/v2/uni/:uni_name/buildings/:building_code.json" GET "/api/v2/uni/flinders/buildings/ENGR.json
-
GET "/api/v2/uni/:uni_name/buildings/:building_id/rooms.json" GET "/api/v2/uni/flinders/buildings/ENGR/rooms.json
-
GET "/api/v2/uni/:uni_name/buildings/:building_id/rooms/:room_id.json" GET "/api/v2/uni/flinders/buildings/ENGR/rooms/209.json
-
GET "/api/v2/uni/:uni_name/buildings/:building_id/rooms/:room_id/bookings.json" GET "/api/v2/uni/flinders/buildings/ENGR/rooms/209/bookings.json
-
GET "/api/v2/uni/:uni_name/dates.json" GET "/api/v2/uni/flinders/dates.json
-
GET "/api/v2/uni/:uni_name/news.json" GET "/api/v2/uni/flinders/news.json
Supported uni_names include 'flinders', 'adelaide' and 'uni_sa'
The scraping of the Flinders website is a treacherous undertaking, because the website's HTML is inconsistent and not standards compliant. This project provides an API to save other developers from having to bother scraping the Flinders public website themselves, and hopefully enable other developers to make apps which use the data easily.
The API provided by this application should also help minimize the need to scrape the Flinders University website. Scraping is an expensive operation: pages must be unnecessarily generated by the Flinders website, as no raw data dumping is facilitated. By using FlindersAPI2's API, you won't be hitting the Flinders website, and will not create any load on Flinders' servers.
If you end up making an application using this API, let me if I can do anything to help you.
The scraped content includes
- Room bookings
- Term dates
- Blog content
- Topics and classes
A benefit of using the API system as a structured data repository is that data could be crowdsourced. For example, the latitude, longitude and altitude of rooms in Flinders university.
All code committed to this this repository licensed under the AGPL license unless otherwise specified. But I would love if you contributed back to the project if it's useful to you :)
Note that some dependencies may be differently licensed.