Coder Social home page Coder Social logo

glavin001 / banner-calendar-server Goto Github PK

View Code? Open in Web Editor NEW
3.0 4.0 1.0 356 KB

Service that serves iCal files for registered users, of their Student Calendars.

Home Page: http://society.cs.smu.ca:1234/

License: MIT License

JavaScript 87.51% CSS 12.49%

banner-calendar-server's Introduction

Banner Calendar Server

A free, open-source, service that automatically creates a Course Calendar from your SMU Self-Service Banner, that you can quickly and easily setup on your personal devices.

Using Banner Calendar

Go to http://society.cs.smu.ca:1234/ and sign up with your SMU Self-Service Banner credentials. See security below if you have any concerns.

Updating Your Calendar

We do not store your login data, and so we cannot automatically login again to update your data later on. Whenever you change your course schedule, simply login to Banner Calendar once again and your schedule will be updated. Be sure to refresh on your Calendar clients (iCal, etc) so they pull the updated Calendar data from our server.

Deleting a Calendar

This feature is not yet available. Please see Issue #8.

How It Works

Powered by Self Service Banner API for Node.js.

  1. The user is presented with a simple login form, asking for their username (A-number) and password (PIN). The user enters their Self Service Banner credentials.
  2. The server signs in as the user.
  3. The server reads the user's courses and retrieves their scheduled class times.
  4. The server uses Expressjs to serve an iCalendar file generated by node-icalendar.
  5. A URL is displayed to the user that they can subscribe to in their Calendar client.

That's it! Now the user has an automated calendar.


Security

Only the fetched calendar data and a hash of the user's A-number / Username is stored in the MongoDB on the server. THe URL displayed is using the secretly salted hash, such that another user cannot simply type in an A-number of a friend or other user and see their course calendar.

banner-calendar-server's People

Contributors

glavin001 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

kaipushorigin

banner-calendar-server's Issues

Certain class goes for a full day

My monday class at 11:30am - 12:45pm displays as:

11:30 am Jan 27 to 12:45 am Jan 28

REC A: Data Struc & Algorithms - CSCI 2342 - 2RA

Delete User's Schedule

Option to delete User's Schedule.

HTTP request:
DELETE /api/calendar/:calendarId

Express:
app.del('/api/calendar/:calendarId, ...

Setup server

Setup server:

  • Express
  • Public HTML code
  • REST API
  • MongoDB

Course Search with CRN

Course Search with CRN.

Lookup available courses with their CRN number.

API GET request:
/api/course/:crn

Academic Calendar

Get the Search By Term page

Request URL:

GET https://ssb-nlive.smu.ca/pls/sNLIVE/bwckschd.p_disp_dyn_sched

Referrer URL:

https://ssb-nlive.smu.ca/pls/sNLIVE/twbkwbis.P_GenMenu?name=homepage

Get to next page: Class Schedule Search

Request URL:

GET /pls/sNLIVE/bwckgens.p_proc_term_date

With Form data:

p_calling_proc : bwckschd.p_disp_dyn_sched
p_term : <# example: 201420 #>

Referrer URL:

https://ssb-nlive.smu.ca/pls/sNLIVE/twbkwbis.P_GenMenu?name=homepage

You are now https://ssb-nlive.smu.ca/pls/sNLIVE/bwckgens.p_proc_term_date

Get to next page: Coming soon.

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.