Social networks have now proven their utility in society. Being able to connect with our friends through social media has become easier with the networking technology. These days however, some social networks include a lot of distracting content that doesn't necessarily fulfil its original purpose. By bringing a social network to Alexa I believe a lot of the 'noise' can be stripped out and we can pursue a more natural experience. That's why I created the Social Network skill.
What it does
Social Network skill doesn't try to replace real interactions with friends, it merely provides a platform for users to stay up to date on how their friends are feeling, if they are busy or not and whether they have any interesting news to report. It also provides a generic direct messaging capability so you can say something like 'Congratulations' to your friends if you've heard some good news about them.
Here is a quick run down on the functionality for a typical user, in this case Alice. Alice can connect to any number of friends using invite codes. Once connected, Alice can tell the app she is feeling awesome. When Alice's friends open the skill and ask how their friends are feeling, it will tell them that Alice is feeling awesome. If Alice was to say she was feeling 'sad' then maybe her friends might pick up the phone and have a chat with her, or take her out for a coffee.
By providing actionable insights into a friend's real status, this skill can enhance the daily lives of its users. This is in contrast to other social networks which often don't give a clear picture of how a user is feeling.
How I built it
It is built on AWS Lambda (request logic) and AWS S3 (profile storage, network mapping and message storage).
Challenges I ran into
System logic - Social networks have more system logic built into them than I originally anticipated. Things like 'adding a friend' and 'removing a friend' seem simple enough, but each activity triggers a cascade of system functions.
Data structuure - Complicated data structure, if this takes off then I'll probably commence a data migration into DynamoDB.
VUI constraints - being a voice only social network it is quite limited in how many features are provided. Also, the mechanism for linking users required loads of design to make it user friendly and secure.
Privacy - Lots of thought had to be put into moderating user generated content and ensuring my system does not receive sensitive information. This initial release is intentionally limited in function as I'd like new features to have the support from an engaged user base rather than opening up features that may make users uncomfortable.
Accomplishments that I'm proud of
I think this is the first 100% Alexa based social network, so I am just amazed that the experience is fluid and useful. I am also proud that I have built a framework that can be expanded upon over time and I look forward to the next phases in the project.
What I learned
I learned a lot about VUI design in the context of a function rich application. Users don't need all the options all the time. Instead, the application needs to respond to natural user led intentions such as "Alexa, tell social network that I'm feeling awesome".
What's next for Social Network
Building an army of BETA users who can try out awesome new features before rolling them out to the main app. There is a bunch of features that can be added to this framework (e.g. "Tell social network that I'm listening to the Rolling Stones"), so it is just a matter of testing them, getting feedback and pushing the best features into the live system.