OnlineCourseManager uses Slack API and Canvas LMS API to integrate new Slash Commands into a Slack team directory. These Slash Commands are intended to be used with Canvas, a learning management system used by the University of Florida, to query and grab course information to display directly into Slack.

Slack Slash Commands

Here Slack Slash Commands you can use with OnlineCourseManager:

List course names you are registered to. Optionally filter by term (e.g. Spring16)

/courses [term]

/courses Spring16

Search assignments by keyword or by due date.

/assignments [keyword], /assignment start [day/month/year] end [day/month/year]

/assignments math worksheet
/assignments start 10/21/2016 end 10/31/2016
/assignments start 10/21/2016
/assignments end 10/31/2016

Gets all upcoming events - tests, quizzes, and assignments.


Lists all course announcements for the past 7 days.


Gets user's profile information.


List calendar events stored in Canvas given a course code (e.g. COP4600).

Optionally show all calendar events or filter by a start and/or end date.

/calendar coursecode start [d/m/y] OR/AND end [d/m/y] OR allevents

/calendar COP4600
/calendar COP4600 start 10/21/2016 end 10/31/2016
/calendar COP4600 start 10/21/2016
/calendar COP4600 end 10/31/2016
/calendar COP4600 allevents

Shows list of commands and their purpose, if the user input is 'help'

/onlinecoursemanager [help]

/onlinecoursemanager help


This project was created in part of the HackGSU 2016 event from Oct 21 - Oct 23, 2016. We're three students from the University of Florida who dislike navigating our insitution's course manager website, Canvas, to display upcoming assignments and any announcements.


1) Visit and click 'Add to Slack' to give OnlineCourseManager permission to integrate with your Slack team.

2) Login to your insitutions Canvas (Instructure) account. Go to Account -> Settings and generate 'New Access Token' under approved integration. Make note of the token.

3) Clone the repository. In the root of the repository, create a file named config.js and input this information:

module.exports = {
  slackBotToken : 'YOUR-SLACK-BOT-TOKEN',
  canvasToken : 'YOUR-CANVAS-TOKEN',
  slackClientID : 'YOUR-SLACK-CLIENT-ID',
  slackClientSecret : 'YOUR-SLACK-CLIENT-SECRET',
  slackOauthState : 'hackGSU',
  redirectURI : 'SEE-STEP-5',

4) Install npm, ngrok, and node.js. Run npm install

5) Run node server.js and ./ngrok http 8000 in separate terminals and note the https URL fto use for redirectURI.

API Reference

Canvas LMS API -
Slack API -

Future Features

  1. Partner with UF and Canvas to provide a developer access token (we had to use an access token restricted to our personal accounts)
  2. Deploy Web Application (with "Add to Slack" button) to AWS or similar service
  3. Expand functionality: More slash commands, Slack bots, etc.
  4. Database integration: Store access keys and more


Sebastián Hernández -
Emily Macon -
Julian Tolentino -

Built With

Share this project: