Learn how to migrate an Alexa Skill built with the Alexa Skills Kit (ASK) SDK to the Jovo Framework. In this step-by-step course, we are converting a sample Quiz Game Alexa Skill into a Jovo voice app.
You can find the full code example of the Quiz Game Alexa Skill on GitHub.
Why Jovo
Jovo is an open-source framework that enables developers and teams to build great voice apps, faster.
Here are a few reasons why people use Jovo:
- cross-platform: build apps for both Alexa and Google Assistant
- fast: with local development and debugging
- flexible: with plugin and hook functionalities
- powerful: with many integrations for hosting, database, analytics, and CMS services
- for teams: with staging, unit testing, and more
No time? Learn more about our Professional Migration Services.
What We're Building
For this course, we will use a Quiz Game Alexa Skill template provided by the Amazon team. It's a quiz about US states that asks you questions about abbreviation, capital, statehood year, and statehood order of a state.
The code for this project can be found here:
- Original repository in ASK SDK v2: alexa/skill-sample-nodejs-quiz-game
- Migrated repsitory in Jovo: jovotech/skill-sample-nodejs-quiz-game
For this example, Amazon also provides a Skill project template in the Alexa Skill Developer Console. You can access this by going to the Alexa Developer Console and creating a new custom skill:
For some locales (in our case en-US
), there is the option to choose from a few templates. Select "Quiz Game":
We will dive deeper into elements of the app logic and interaction model in the steps outlined below.
Course Outline
You can find the full code example of the Quiz Game Voice App on GitHub.
- Step 1: Initial Setup and Project Structure
- Step 2: Migrating the Alexa Interaction Model
- Step 3: Migrating Intents and Handlers
- Step 4: Migrating the App Logic
- Step 5: Structuring the Content in i18n (coming soon)
Let's Get Started
In the next step, we will dive into the basics first: How to create a new Jovo project and how it differs from an ASK SDK and ASK CLI project: