Skip to content

prcbass/hackGSU2016SlackBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OnlineCourseManager

Synopsis

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.

Devpost Page for this project - https://devpost.com/software/hackgsu2016slackbot

Demo - https://youtu.be/aYrF68Zh-Sw

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)

Format:
/courses [term]

Example:
/courses Spring16

####Search assignments by keyword or by due date.

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


Example:
/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.
/upcomingevents

####Lists all course announcements for the past 7 days.
/announcements

####Gets user's profile information.
/profile

####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

Example:
/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]

Example:
/onlinecoursemanager help

Motivation

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.

Installation

  1. Visit https://9df9971b.ngrok.io/ 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',
};
  1. Install npm, ngrok, and node.js. Run npm install

  2. 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 - https://canvas.instructure.com/doc/api/
Slack API - https://api.slack.com/

Contributors

Sebastian Hernandez - https://github.com/prcbass/
Emily Macon - https://github.com/emily-macon
Julian Tolentino - https://github.com/juliantolentino

About

Interact with Canvas straight from Slack!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published