Giter VIP home page Giter VIP logo

thirdthursdaybot's Introduction

ThirdThursdayBot

What is "Third Thursday" and what is this project?

The reasoning for this bot surrounds an event that my friends and I have been doing for a few years now that we call "Third Thursday". Third Thursday is a monthly gathering, as you might expect on the third Thursday of each month and it works as follows:

  • Each month a different member of the group gets to choose where we all eat.
  • No restaurants can be repeated (until all local areas are exhausted).
  • The restaurant must serve alcohol (and obviously food).

Fairly simple right? Well, after doing this for over two years, it can be tough to remember where we have eaten previously, whose choice it is this month, and when the next day is, so I thought that I could build a bot to handle this for us.

Goals for this project

  • Trivial Set-up - Since this was a small side project, I didn't want to invest a ton of time/effort into infrastructure or scaling concerns.
  • Basic Question / Answer Support - Although Azure has quite a few incredible Cognitive Services features, I just wanted the bot to display a list of commands that users could enter and receive quick responses.
  • Web / Skype / Text Support - I wanted my friends and members of this group to be able to easily access the bot from wherever they were. On a computer, check a site, on your phone, send it a text, etc.

In Action

You can visit Third Thursday Bot in action here and see a basic example of some of the interactions that you can perform with it below:

listing restaurants

Supported Commands

At present, Third Thursday Bot supports the following commands:

  • show all - Lists all of the previous Third Thursday selections.
  • have we been to {restaurant}? - Indicates if specific restaurant has been chosen.
  • who’s next - Indicates who has the next selection.
  • recommendation - Get a random recommendation in the area.

Configuring Your Own

To configure a Third Thursday of your own, you would just need to do the following:

  • Create a Microsoft Bot Framework Account - This bot relies on the Microsoft Bot Framework for its supported integrations, which can make getting started and actually using a bot a breeze.
  • Set up Firebase - This example uses Firebase as a database, which can be set up in a matter of minutes.
  • Configure Twilio (Optional) - If you want to take advantage of SMS messaging to/from the bot, you'll need to create and configure a Twilio account.

With regards to Firebase, your schema is going to look something like this (if you are going to be reproducing an example similar to this one):

  • Members - Array containing members of the group (e.g. ['Dwight', 'Michael', 'Jim', 'Pam', ... ])
  • Restaurants - Array containing previously visited Restaurant objects, which look have the following properties:
    • Date - A string representing the date a given restaurant was visited.
    • Location - A string representing the name of the restaurant chosen.
    • PickedBy - A string with the name of the group member that picked the restaurant.

Finally, this example is hosted in Azure and uses it to define all of the available environmental variables for your private keys, HTTP endpoint locations, and more so that they can be read in and used by the bot at runtime:

Azure Setup

You can read more on this process within the following blog posts:

thirdthursdaybot's People

Contributors

rionmonster avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  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.