Skip to main content

GW Course Schedule and Campus API

5 min read
: George Washington University recently released an iPhone app that allows students to look up the course schedule and each course's open/closed status as well as browse an interactive map of the campus. Below you can find the details on GW's course schedule and campus map API endpoints, as well as an API wrapper to interact with it written in PHP.
Table of contents

George Washington University recently released an iPhone app that allows students to look up the course schedule and each course’s open/closed status as well as browse an interactive map of the campus. Naturally, upon installing the app, the first thing to do is to try and ferret out the underlying XML API that powers it, a simple enough task given the right tools.

Below you can find the details on GW’s course schedule and campus map API endpoints, as well as an API wrapper to interact with it written in PHP. Feel free to grab the code below, or fork and contribute in the GitHub repository. Cool data that deserves to be shared with the world, no doubt.

Creative ideas on how best to leverage the information welcome in the comments below.

Please Note: I am not a GW employee, nor is use of the API explicitly authorized by the University. The code below is provided “as is” solely for educational purposes. If for any reason you would like this page removed, please contact me immediately and I will do so.


Course Schedule#

Departments#

  • Endpoint: http://my.gwu.edu/mod/pws/scheduleXML.cfm

  • Parameters: termCode=[YYYY][01=spring, 02=summer, 03=fall]

  • Returns:

    <?xml version="1.0" encoding="iso-8859-1" ?>
    <departments>
    <department>
    <departmentcode><![CDATA[ACCY]]></departmentcode>
    <departmentname><![CDATA[Accountancy]]></departmentname>
    </department>
    <department>
    <departmentcode><![CDATA[AH]]></departmentcode>
    <departmentname><![CDATA[Art/Art History]]></departmentname>
    </department>
    </departments>

Courses#

  • Endpoint: http://my.gwu.edu/mod/pws/scheduleXML.cfm

  • Parameters:

    1. termCode=[YYYY][01=spring, 02=summer, 03=fall]
    2. deptCode=[Dept. Code]
  • Returns:

    <?xml version="1.0" encoding="iso-8859-1" ?>
    <courses>
    <course>
    <coursedepartment><![CDATA[ACCY]]></coursedepartment>
    <coursenumber><![CDATA[6101]]></coursenumber>
    <coursecrn><![CDATA[55164]]></coursecrn>
    <coursetitle><![CDATA[FinAcctingI:BasicFinStatements]]></coursetitle>
    <courseinstructor><![CDATA[ Singleton, L]]></courseinstructor>
    <courselocation><![CDATA[DUQUES 258]]></courselocation>
    <coursedays><![CDATA[MW 06:10PM - 09:05PM]]></coursedays>
    <coursetime><![CDATA[]]></coursetime>
    <coursestatus><![CDATA[OPEN]]></coursestatus>
    <coursesection><![CDATA[81]]></coursesection>
    <coursecredit><![CDATA[1.50 ]]></coursecredit>
    </course>
    </courses>

Campus Map#

Categories#

  • Endpoint: http://citl.gwu.edu/iphonedev/maps/categories.xml

  • Returns:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <categories xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <category>
    <categoryId>1</categoryId>
    <shortname>academic</shortname>
    <categoryName>Academic</categoryName>
    <state>Yes</state>
    </category>
    <category>
    <categoryId>2</categoryId>
    <shortname>administrative</shortname>
    <categoryName>Administrative</categoryName>
    <state>Yes</state>
    </category>
    </categories>

For more details, check out the GitHub repository.

Originally published January 25, 2011 View revision history
Share

More to explore

That's not how the internet works

7 min read

Stop publishing monolithic datasets. Treat your GitHub repo like a RESTful API — granular, URL-addressable, and optimized for consumers.

Treat Data as Code

5 min read

Developers learned decades ago that version control and collaboration are essential. It's time we apply those same practices to data.

Open source is (not) insecure

5 min read

Open source software isn't inherently less secure than proprietary alternatives. That myth stems from fear, uncertainty, and doubt (FUD).

15 rules for communicating at GitHub

16 min read

How GitHub uses issues and chat for async communication — fifteen rules that eliminate the 'you had to be there' problem in corporate workflows.

Ben Balter

I'm Ben Balter — I write here about engineering leadership, open source, and showing your work. I wrote Open & Async, the playbook for remote and distributed teams. My open source projects have hundreds of millions of downloads. I was the Director of Hubber Enablement at GitHub, where I helped thousands of GitHubbers do their best remote work. Before this role: Chief of Staff for Security, enterprise PM, and GitHub's first Government Evangelist. Before GitHub: attorney, Presidential Innovation Fellow, and member of the White House's first agile development team. More about the author →

Follow along: Bluesky LinkedIn

This page is open source Help improve this article on GitHub