Giter Club home page Giter Club logo

penn-sdk-node's Introduction

Penn OpenData Node SDK

Build Status

This is the Penn Open Data API implementation in NodeJS, currently with support for the registrar, directory, dining, transit, and map APIs. You can view the complete API reference here.

Install

To get started, just run

npm install penn-sdk

Overview

var api = require("penn-sdk")
Registrar = api.Registrar

registrar = new Registrar("API_USERNAME", "API_PASSWORD")
registrar.course("CHEM", "241", function(result) {
  console.log(result)
})

Requesting an API key

To use this library, you must first obtain an API token and password for the API you want to use, which can be done here.

Note: There are separate API tokens for each API.

Contributing

We'd love to accept pull requests! Also, file bugs or ask questions in GitHub issues if you have any problems.

Getting Started

  1. Fork the repository using GitHub's interface
  2. Git clone your repository using git clone YOUR_GIT_URL
  3. Install the required dependencies using npm install.
  4. Start editing the CoffeeScript source files in src.
  5. Write tests!
  6. Make a pull request back to the original repository.

Building

The SDK is written in CoffeeScript, so please make your changes in the CoffeeScript source files in src and they can be compiled into JavaScript using make js.

Testing

You can test the work you have using make test, which uses Mocha to run the tests inside of the test directory. You should have environment variables in your shell that specify your API keys in the format REGISTRAR_API_USERNAME and REGISTRAR_API_PASSWORD. If you prefer to have these tests run while you're editing automatically, you can run make watch from your terminal.

TODO

  • Open Data APIs
    • Implement registrar API
    • Implement directory API
    • Implement dining API
    • Implement transit API (Partial)
    • Implement map API
    • Implement news API
  • Publish to npm
  • Continuous testing using Travis CI
  • Return result_data in methods
  • Write full API documentation using jsdoc

Authors

  • Adel Qalieh

License

MIT Licensed

penn-sdk-node's People

Contributors

adelq avatar kylehg avatar dlakata avatar

Stargazers

 avatar  avatar Ben Bernstein avatar

Watchers

Ceasar avatar  avatar James Cloos avatar  avatar Dhruv Maheshwari avatar  avatar Alex Harelick avatar Prakhar Bhandari avatar Eric Wang avatar Krishna Bharathala avatar Sacha Best avatar Jake Noonan avatar Brandon Lin avatar Vinai Rachakonda avatar Rohan Menezes avatar Joseph Gao avatar Victor Chien avatar Jason avatar dominic avatar Armaan Tobaccowalla avatar  avatar Adam Domingoes avatar  avatar tong avatar  avatar

Forkers

todun

penn-sdk-node's Issues

Registrar.department not returning current courses

Appears to be a listing of all courses in the course catalog rather than a list of current courses offered by the department, which is what it should be.

How to confirm bug: Try Registrar.search({course_id: department}, callback) and compare to Registrar.department(department, callback).

More details can be provided by @honki91 if needed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.