DumontBot : the serverless flight status conversational Bot

Do you want to verify a flight status and get live updates alerts in Slack ?

DumontBot shows the flight status and can notify you with live updates about :

  • Departure: When the flight depart from the gate.
  • Departure Delay: When the flight departure is delayed more then 15 minutes.
  • Departure Gate Change: When the departure gate changes.
  • Arrival: When the flight lands.
  • Arrival Delay: When the flight arrival is delayed more then 15 minutes.
  • Baggage Carousel: Belt number where you baggage will be available to be claimed.

Flight status services are provided by third party provider.

Demonstration Video

https://youtu.be/6r8en5jwksw

Add DumontBot to Your Slack Team

Add to Slack

DumontBot can be invited to any channel. It will only reply to messages in public or group channels if mentioned : @DumontBot.

Info

This is a prototype to find an alternative to wit.ai and experiment the following AWS products :

  • Lex
  • Lambda (Java)
  • DynamoDB
  • API Gateway

Implementation in Java using "normal libraries" to evaluate the lambda running time (including cold start time).

Lots of tests and refactoring needed for a production release.

Architecture

DumontBot

Project

One maven module per Lambda to avoid heavy jars (that increase the cold start).

  • oauthHandler : Handler for the Oauth Authorization
  • slackEventHandler : To decrease the Java cold start time, an initial SlackHandler Lambda was created to dispatch the message for an async processing and return the Http 200 response to slack in less then three seconds or Slack will retry to deliver the message three times.
  • processMessage : Lambda responsible to handle the communication with AWS Lex and post messages in Slack.
  • flightStatusFulfillment : Fulfillment lambda for the flight status intent. Calls the Flight Status API to retrieve the flight information.
  • subscriptionValidation : Lambda for the subscription intent validation. Gets the previous flight status retrieved to populate the slots.
  • subscriptionFulfillment : Fulfillment lambda for the subscription intent. Creates a alert subscription in the Flight API sending the url for the callback.
  • flightAlertCallback: Lambda responsible to receive the alerts callback from the Flight Status API and post the message in Slack.

AWS Lex Intents

  • FlightStatus : Initial intent that retrieve the flight status and save in the dynamoDB the necessary information to start the second intent (AlertSubscription).
  • Subscription : Intent to subscribe for flight alerts. Uses the previous flight status retrieved to build the request, otherwise will ask the user for the inputs.
  • Help: Help intent
  • Greetings: Greeting intent
  • HowAreYou: How are you intent
  • WhoAreYou: Who are you intent
  • ThankYou: Thank you intent

AWS Deploy

Configure your local environment with the necessary AWS credentials.

You may need to change some code paths.

The deployment tool development is on-going.

Please look the document for manual install and configuration of AWS LEX intents : aws deploy doc

For the LEX JSON export : LEX JSON

Thank you

Share this project:

Updates