Inspiration
Reddit is a fun place to hang out on the internet; r/LifeProTips is typically littered with fantastic lifehacks. However, for myself the modus operandi is: Read a hack, think to yourself how it is neat, and then move on to the next one. I wanted to build a tool that will make my favorite life hacks a little more "sticky", and not just a fleeting idea that is forgotten shortly after reading.
Additionally Hack to Habit was inspired by my experience in the previous Devpost/Alexa skill challenge for kids. The biggest challenge from my kids skill was content creation. I underestimated how time consuming and difficult it is to create all the content myself. For the Life Hack challenge, I wanted to eliminate that burden by using crowd source/public data to present to users.
What it does
Hack To Habit is really all about self-improvement. It accomplishes this by randomly selecting a post from reddit/r/LifeProTips to be read to the user. If the user likes a particular hack, it can be saved to a database for future review. When the user opts to review their saved hacks, Alexa will ask basic questions to help them track their progress towards taking a hack all the way to a habit.
How I built it
I started by building a simple API that selects a random post from r/LifeProTips. The API also randomly selects a range (today,week,month) and a sort (hot, new, rising, top) to add more variety in the types of hacks that are presented to the user.
With the simple API created, it was a straight forward implementation using the Alexa Node SDK/Lamba/DynamoDB. Since one of my goals was to keep the skill focused on doing a few things well, it simplified my interaction model greatly, since I did not have a need to deal with complex user input in slots.
Challenges I ran into
Despite this being my second fully developed Alexa skill, I continued to struggle with ambiguity of the error handling provided by DynamoDB. I often opted to handle some tasks locally (sorting, filtering) locally rather than letting Dynamo do the heavy lifting.
What's next for Hack to Habit
There are a few features in the barrel for Hack to Habit.
Statistics: How quickly did you take a H2H, how many other users are striving for the same hack, how many review cycles a user went through before officially making a hack a habit, etc.
Variety: I would also like to implement more control for the user to find life hacks in specific categories: "Give me a finance/health/social" hack etc. A lot of this is already implemented, I simply lacked the bandwidth to test it properly.
Content: Because hacks are taken at random from Reddit, there is always the possibility of H2H surfacing a lifehack that is not of appropriate content, or adequate "hackiness". I would like to enable users to flag specific hacks as not useful/inappropriate etc, to prevent this crowd sourced content from annoying users.
Built With
- alexa-node-sdk
- amazon-dynamodb
- amazon-lambda
- node.js
Log in or sign up for Devpost to join the conversation.