Periscope allows users to express their appreciation for streams but the audience remains anonymous. Send a pug allows people to display their appreciation by including their username below the floating pugs.
What it does
Users click a pug button to send floating pugs on other screens who are watching the same screen.
How I built it
Service technologies including AWS AppSync, Cognito, Lambda, Dynamo DB (on demand), Kinesis, Kinesis Analytics. Front end is written using ReasonML/reason-apollo, and bs-react-native (on top of react-native-web).
Challenges I ran into
Cognito requires a password for the accounts I am generating from the Twitch tokens. I was being told the Cognito API response that the same password I created was wrong during the verification step. The password was not wrong. The issue was that the original password was too short. This took a whole day to figure out.
Accomplishments that I'm proud of
Having a useful application of Kinesis Analytics and the speed with which AppSync can publish notifications to subscribers with such little code on my part. I learned a lot of ReasonML and really appreciate the strong types I can generate from AppSync / GraphQL schema.
What I learned
Applications of a large variety of AWS serverless technologies, reason-apollo, and more.
What's next for Send a Pug
Customizable characters, collaborative scoring (e.g. limiting the number of pugs one can send but allow users to earn more pugs if they are part of a "wave" of appreciation towards the streamer).