Inspiration

It’s an exciting time for innovations in ed tech, and chatbots are at the forefront. Chatbots allow for the automation of repetitive and time-consuming communication while freeing up more time for meaningful discussions and interactions between professors and students. Should professors be wasting time answering questions such as “When is the paper due?” or replying to emails such as “When are your office hours?”. Instead they could be engaged in something more productive such as analysis of the material they reviewed in class. Chatbots can also help them conduct realtime poll in the classroom.

Apart from these, the idea of personal attention for each and every student (something we plan to work on in near future) is another main motivation for this project. Check out this video for more inspiration:

TEDx Talks

What it does

Set up is as easy as adding Bear Bot to a group conversation. It assumes the creator of the conversation is the Professor and rest of the participants are students (can be changed with make admin command).
Here are the main features of Bear:
Features

Available Commands:

Professor : Available for Professor
Student : Avaialble for Student

Office Hours

  • Professor set/delete office hours: To set or delete office hour info
  • Professor Student office hours: To get office hour info

Course Website

  • Professor set/delete website: To set or delete course website info
  • Professor Student website: To get course website info

Syllabus

  • Professor set/delete syllabus: To set or delete a link of syllabus
  • Professor Student syllabus: To get the link of syllabus

Course Resources

  • Professor set/delete resources: To set or delete a link of course resources
  • Professor Student resources: To get the link of course resources

Due

  • Professor add/update/delete due: For dues (homework, assignments, reports) with title, description and date
  • Professor Student due: To get the list of upcoming dues

Exam

  • Professor add/update/delete exam: For exams (quiz, midterm, finals) announcement with title, description and date
  • Professor Student exam: To get the list of upcoming exams

Events

  • Professor add/update/delete event: For events with title, description and date
  • Professor Student event: To get the list of upcoming event

News

  • Professor add/update/delete news: For important announcements and notifications
  • Professor Student news: To get the latest news

Poll

  • Professor set/delete poll: For in-class questions or polls
  • Professor set poll with .docx file attached: Create poll from file
  • Professor set poll with tex: Create poll with Latex equations
  • Professor poll: To view the active poll
  • Professor result: To get result of an active poll
  • Student poll: To participate in a poll

Anonymous Group Post

  • Student post: To anonymously post a question/issue/concern

Settings

  • Professor set timezone: To set timezone, all queries and reminders will fire according to this
  • Professor timezone: To get the currently set timezone
  • Professor make admin: To give someone admin privilege (using email)
  • Professor remove admin: To remove admin privilege (using email)
  • Professor Student admin: To see the status of admin privilege of yourself

Source Code

To have your own Bear:
  1. Clone this repository:
    git clone https://github.com/mehamasum/bear-bot
    cd bear-bot
  2. Install dependencies:
    npm install

  3. Write a .env file with the following:

    access_token=YOUR_CISCO_SPARK_ACCESS_TOKEN  
    public_address=YOUR_PUBLIC_ADDRESS_WITH_HTTPS  
    secret=YOUR_SECRET_STRING  
    PORT=YOUR_PORT_NUMBER  
    
  4. Launch your bot application by typing: node .

To extend:

This bot is written in Node.js and built with bot-kit for Cisco Spark

All the actions this bot can perform are in skills/ folder. The main bot application will automatically include any files placed there.

A skill module should be in the format:

module.exports = function(controller) {
    // add event handlers to controller
}

What's next for Bear

  • Natural Language Processing
  • Relative time processing in event based input, for example:
    • today at 4pm
    • tomorrow morning
    • next monday at 11:59am

Built With

+ 126 more
Share this project:

Updates