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.
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',
};
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 - https://canvas.instructure.com/doc/api/
Slack API - https://api.slack.com/
Future Features
- Partner with UF and Canvas to provide a developer access token (we had to use an access token restricted to our personal accounts)
- Deploy Web Application (with "Add to Slack" button) to AWS or similar service
- Expand functionality: More slash commands, Slack bots, etc.
- Database integration: Store access keys and more
Contributors
Sebastián Hernández - https://github.com/prcbass/
Emily Macon - https://github.com/emily-macon
Julian Tolentino - https://github.com/juliantolentino
Built With
- canvasapi
- html
- javascript
- node.js
- slackapi
Log in or sign up for Devpost to join the conversation.