Family Bookmark is an Alexa skill created for the Alexa Life Hacks Challenge. The goal of this skill is to provide a "life hack" by making life easier for readers.

It is always a pain when my bookmark falls out, or I can't remember what page I am on. I wanted to built a skill that solved these everyday problems. After a quick search on the Alexa skills store, I saw that other people had already made bookmarking skills like this, but I wanted my skill to be unique. An additional problem that I wanted to solve was the fact that it is always hard when two people are reading the same book. Whenever my brother is reading the same book as me, my bookmark always seems to get misplaced while he is reading. With the Alexa skills available, if two people are reading the same book, Alexa can only store one bookmark. I set out to built a new bookmarking skill that solves this problem, as well as solving the problems that I stated earlier. I wanted my skill to be the best bookmarking skill available to readers.

What it does

Family Bookmark was built to make reading a more enjoyable experience. With this "life hack" skill, It is impossible to forget what page you are on.

To use Family Bookmark, the user needs to provide their name, the name of their book, and what page they are on. If they don't provide all of the information that the skill needs in order to save a bookmark, Family Bookmark will prompt them will questions like, "What page are you on?" or "What book is this for?" This is to ensure that using Family Bookmark is a convenience not a hassle.

In order to load a bookmark, the user simply needs to tell Family Bookmark their name and what book they are reading. Again, if they don't provide enough information, the skill will ask them for the required details.

Family Bookmark makes remembering your place in a book effortless. With this skill, people will never have to go through the inconvenience of loosing their page while reading.

How I built it

Family Bookmark was built using the Alexa Skills Kit as well as AWS Lambda and DynamoDB.

The first step was to build the skill in the Amazon Alexa Skills Kit. This is were I created the different intents, which are basically the individual functions that the user can call. The two main intents are the "Save Bookmark Intent" and the "Load Bookmark Intent." In order to construct these intents, I had to enter many sample utterances, or what the user might say to call the intent. These include phrases like, "Remember that {Name} is on page {Page} of {Book}." When Alexa hears what the user says, she records the values of the three "slots," which are 'name', 'page', and 'book'. These values are then sent to AWS Lambda, which was the next step in creating this "life hack" skill.

AWS Lambda is an Amazon service that runs code online. In this case, It is programmed to process the data that the Alexa Skills Kit sends to it and return a response for Alexa to tell the user. The Lambda function first checks to see if the user provided enough information. If they are missing values for the name, page, or book slots, the function tells Alexa to prompt the user for the missing information. Once the Lambda function has all of the necessary information, it saves the data to DynamoDB.

DynamoDB, the final step in building this skill, is another Amazon service, and it offers online data storage. The data is saved with a user ID, which is specific to an Amazon account. This way, bookmarks are unique to each Amazon account. The data is saved so that the user can ask Alexa to recall their bookmark at any point in time. If the user wants to know where their bookmark was, they call the "Load Bookmark Intent." At this point, the Lambda function communicates to DynamoDB in order to retrieve data about what page the user was on. Bookmarks are specific to Amazon accounts, the user's name, and the book that they are reading. These specifications are used to make sure that the bookmarks are personalized so that everyone in the family can use this skill without interfering with each other's bookmarks.

Challenges I ran into

By far the most challenging aspect of creating this handy "life hack" Alexa skill, was saving bookmark data to DynamoDB. The process of allowing Lambda to access DynamoDB and store data was not well documented and I had to piece together the instructions after reading many different sources. One thing that I would like to do in the future is publish a step-by-step set of instructions showing how I was finally able to set up the Lambda-DynamoDB connection. This guide would be made in order to help people who are trying to make similar skills.

Another challenge that I ran into while creating this skill was the fact that the skill was not very user friendly at first. It would often take two or three tries until Alexa heard me correctly and saved my bookmark. Thankfully, I was able to solve this problem by having Alexa prompt the user for missing data instead of just trowing an error.

I enjoyed problem solving throughout this whole process, even if it was frustrating at times. Creating this "life hack" skill was a valuable learning experience, and I now am a better problem solver because of it.

Accomplishments that I'm proud of

I am extremely proud of creating a helpful and easy to use "life hack" Alexa skill. I hope that my skill will be used to make readers' lives easier.

Like I mentioned earlier, the hardest part of this process was making sure that Lambda was able to save data to DynamoDB. I am proud of the fact that I was able to persevere and not give up when the problem seemed unsolvable. Because I stuck with it, I was able to produce a practical "life hack" Alexa skill that I am very pleased with. As mentioned above, I would like to create clear instructions on how to allow Lambda to save data to DynamoDB so that other programmers don't have to struggle through the same process that I did.

What I learned

Programming, testing, reprogramming, and retesting this "life hack" skill taught me many valuable lessons. First, I learned to stick with a challenging project. This skill was not easy to make, and I constantly ran into road blocks. Learning to overcome obstacles is a life skill that I will use again and again as I continue to program and build.

Besides just learning how important persistence is, I also learned many new talents when it comes to creating Alexa skills. I now know how to build Alexa skills that store data in between sessions, an ability that I didn't have when I began this project.

What's next for Family Bookmark Alexa Skill

The goal for Family Bookmark is to continue to help make people's lives easier. With this new life hack, people won't have to struggle with bookmarks, and they can enjoy reading peacefully.

As always, the continual goal is to make the skill more and more user friendly. One thing that I would like to add to Family Bookmark is the ability to recall the last bookmark that it saved. This way, if only one person is using the skill, they don't have to state their name and their book's name every time they load a bookmark.

This new "life hack" skill has a huge potential impact. With the talents that I have learned while creating Family Bookmark, I am now able to create skills that can store data between sessions. In the future, I would like to make even more life hacks Alexa skills that implement this ability in order to keep making lives easier.

Thanks for reading about Family Bookmark!

Built With

Share this project: