Code Monkey home page Code Monkey logo

assignment-buster's Introduction

Assignment Buster

Project Description

Assignment Buster is a Slack App that helps students stay up-to-date with their coursework. Students are able to quickly access their Canvas assignments from the Assignment Buster App.

Team

Ben Choe, Cody Davis, Dylan Ullrich, Katharine Swilley

Languages and Technologies

  • JavaScript
  • Node.js
    • Slack Bolt
    • Axios
    • dotenv
  • ngrok
  • Heroku
  • Slack
  • Canvas Instructure API

Links and Resources

Docs

Videos

Setup

ENV requirements

PORT - The port you choose to run locally.

SLACK_SIGNING_SECRET - HOW TO OBTAIN

SLACK_TOKEN - HOW TO OBTAIN

CANVAS_TOKEN - HOW TO OBTAIN

CANVAS_COURSE_ID - Navigate to the Home of the course you would like to get information on. Note the number in the url after courses: https://canvas.instructure.com/courses/3333333. In this instance the number is 3333333, the number in the place of 333333 is your course ID.

How to Run Assignment Buster in Your Own Workspace

You will need:

Steps:

  1. Clone Assignment Buster repository
  2. Create Slack workspace or utilize existing workspace that you have bot add permissions.
  3. Create a new App to add.
  4. Set proper permissions for bot, such as read permissions for channels and/or direct messages. NOTE: You will need to reinstall the bot to the workspace with any changes in permissions
  5. Host the bot locally with ngrok, or deploy to a service like Heroku.
  6. Enter the link from your deployment in the Event Subscriptions section, and register your slash commands with the same link in the Slash Commands section.
  7. Go to the Assignment Buster App in your Slack workspace, and try it out!

Features and Routes

  • Check assignments /duetoday
  • Check assignments /upcoming
  • Check assignments /overdue

Tests

  • Testing the app locally can be done with ngrok.
  • Jest tests have been implemented, which can be run.

Development Experience

Roadblocks

Working with the Canvas API and Slack presented some challenges.

  • Canvas API limitations - without a developer key the API must be accessed by a student API key, which narrows the API endpoints available to us. In a production environment, one would never ask a user to input their API key. Rather an OAuth workflow process would authenticate the user.
  • Heroku v AWS
    • We attempted to host this app using serverless functions on AWS. Due to time and complexity, Heroku proved to be the best path forward to obtain MVP.

Moving Forward

The steps we would take to deploy this app in a production environment include:

  • Having Canvas Administrator access to issue a needed developer key
  • Implementing an OAuth process to authenticate Canvas users in Slack
  • Implement a Database to store user credential inputs from Slack.

assignment-buster's People

Contributors

kath-a-rine avatar eldyl avatar cozhee avatar benchoe26 avatar

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.