Building a better community is hard work. While it would be great if we could build an equitable society with a snap of finger, it is not that easy. Society Goals tries to do the next best thing and encourage people to make small commitments every day to improve their local community. If everyone were to do one small thing every day, then we can make meaningful strides towards the goal of a better society for all.
What it does
Society Goals is a Facebook Messenger bot that encourages people to do things every day to improve their local community. Society Goals has three initial categories: one good deed a day, engaging with your community, and Plogging aka picking up litter while jogging. Users are encouraged to sign up for a daily goal and record the days they reached their goals.
Society Goals records how many days in row a user does his/her goal. The idea is that users will see their streaks and will not want to break the chain.
How I built it
Society Goals is a bot built on top of Facebook Messenger using node.js. Amazon Rekognition is used for image analysis. Wit.ai is used for natural language processing for texts a user will send in the message field and texts found in images. Amazon DynamoDB is used to handle sessions.
Challenges I ran into
Occasionally wit.ai would take a long time to build the language model typically after a bunch of changes were made to the wit.ai app. However, this was not a big deal since it was an opportunity to think about the UX of the bot as a whole and create buttons to help users along their journey in the bot.
Accomplishments that I'm proud of
First time doing animation in React, granted it is pretty basic at this stage. Also, my first time using wit.ai.
What I learned
How to use wit.ai, how to do basic animation in React, and AC/DC probably has the best songs to listen to while writing code.
What's next for Society Goals
Get rid of some bugs that I am aware of (squish squish), expand all the animations, and release the bot to a beta group. The goal is to go through the Facebook review process so Society Goals can be released to the general public in December. The December launch date was chosen so as to encourage people to make New Year’s resolutions to improve their local communities. Also add more goal categories with help from our users and non-profits on we can build a more equitable society.
Since only the judges can access my current project, I have released a tutorial on how to analyze images using AWS Lambda and Amazon Rekognition and then send the text detected from Amazon Rekognition to wit.ai to detect any entities.