Bowen Feng
Published © LGPL

Movie History - Keep Your Movie Watching Footprint

An Alexa skill remembers your movie footprint.

IntermediateFull instructions provided20 hours447

Things used in this project

Hardware components

AWS CloudWatch
Amazon Web Services AWS CloudWatch
×1

Software apps and online services

echosim.io
Alexa Skills Kit
Amazon Alexa Alexa Skills Kit
AWS Lambda
Amazon Web Services AWS Lambda
AWS DynamoDB
Amazon Web Services AWS DynamoDB

Story

Read more

Schematics

VUI

Code

Alexa Skill schema

JSON
Go to the Skill Builder, click on the code editor to see the skill schema. Here is the schema for Movie History.
{
  "intents": [
    {
      "name": "AddWatchedMovieIntent",
      "samples": [
        "I watched {movie} on {date} ",
        "I watched {movie}"
      ],
      "slots": [
        {
          "name": "movie",
          "type": "AMAZON.Movie",
          "samples": [
            "{movie}",
            "I watched {movie}",
            "I watched {movie} on {date}"
          ]
        },
        {
          "name": "date",
          "type": "AMAZON.DATE",
          "samples": [
            "on {date}",
            "{date}"
          ]
        }
      ]
    },
    {
      "name": "AMAZON.CancelIntent",
      "samples": []
    },
    {
      "name": "AMAZON.HelpIntent",
      "samples": []
    },
    {
      "name": "AMAZON.StopIntent",
      "samples": []
    },
    {
      "name": "InquiryMovieIntent",
      "samples": [
        "How many times did I watch {movie}",
        "When did I watch {movie}",
        "Have I watched {movie}",
        "Tell me the watch history of {movie}",
        "Find {movie}",
        "Inquiry {movie}"
      ],
      "slots": [
        {
          "name": "movie",
          "type": "AMAZON.Movie",
          "samples": [
            "{movie}"
          ]
        }
      ]
    },
    {
      "name": "MainMenuIntent",
      "samples": [
        "I want to {choice}",
        "I'd like to {choice}",
        "I'll {choice}",
        "Please {choice}",
        "{choice} please."
      ],
      "slots": [
        {
          "name": "choice",
          "type": "FUNCTION_CHOICE",
          "samples": []
        }
      ]
    },
    {
      "name": "TotalNumberIntent",
      "samples": [
        "Give me the total number",
        "I want to know the total number",
        "Tell me the total number",
        "Total number",
        "Tell me the number"
      ],
      "slots": []
    }
  ],
  "types": [
    {
      "name": "FUNCTION_CHOICE",
      "values": [
        {
          "id": null,
          "name": {
            "value": "Add New",
            "synonyms": []
          }
        },
        {
          "id": null,
          "name": {
            "value": "Review",
            "synonyms": []
          }
        },
        {
          "id": null,
          "name": {
            "value": "New",
            "synonyms": []
          }
        },
        {
          "id": null,
          "name": {
            "value": "Add",
            "synonyms": []
          }
        }
      ]
    }
  ],
  "prompts": [
    {
      "id": "Elicit.Intent-AddWatchedMovieIntent.IntentSlot-movie",
      "promptVersion": "1.0",
      "definitionVersion": "1.0",
      "variations": [
        {
          "type": "PlainText",
          "value": "Which movie?"
        }
      ]
    },
    {
      "id": "Elicit.Intent-AddWatchedMovieIntent.IntentSlot-date",
      "promptVersion": "1.0",
      "definitionVersion": "1.0",
      "variations": [
        {
          "type": "PlainText",
          "value": "When did you watch it?"
        },
        {
          "type": "PlainText",
          "value": "When did you watch the movie?"
        }
      ]
    },
    {
      "id": "Elicit.Intent-InquiryMovieIntent.IntentSlot-movie",
      "promptVersion": "1.0",
      "definitionVersion": "1.0",
      "variations": [
        {
          "type": "PlainText",
          "value": "Please tell me the movie name."
        },
        {
          "type": "PlainText",
          "value": "Please let me know the name of the movie"
        }
      ]
    }
  ],
  "dialog": {
    "version": "1.0",
    "intents": [
      {
        "name": "AddWatchedMovieIntent",
        "confirmationRequired": false,
        "prompts": {},
        "slots": [
          {
            "name": "movie",
            "type": "AMAZON.Movie",
            "elicitationRequired": true,
            "confirmationRequired": false,
            "prompts": {
              "elicit": "Elicit.Intent-AddWatchedMovieIntent.IntentSlot-movie"
            }
          },
          {
            "name": "date",
            "type": "AMAZON.DATE",
            "elicitationRequired": true,
            "confirmationRequired": false,
            "prompts": {
              "elicit": "Elicit.Intent-AddWatchedMovieIntent.IntentSlot-date"
            }
          }
        ]
      },
      {
        "name": "InquiryMovieIntent",
        "confirmationRequired": false,
        "prompts": {},
        "slots": [
          {
            "name": "movie",
            "type": "AMAZON.Movie",
            "elicitationRequired": true,
            "confirmationRequired": false,
            "prompts": {
              "elicit": "Elicit.Intent-InquiryMovieIntent.IntentSlot-movie"
            }
          }
        ]
      }
    ]
  }
}

Lambda function source code

Credits

Bowen Feng

Bowen Feng

0 projects • 11 followers

Comments

Add projectSign up / Login