Inspiration
The original inspiration was old-school text adventure games, the idea of giving commands that each take you one step deeper in the game.
What it does
Let's you easily choose an adventure holiday idea by stepping through a few stages of a journey to your activity. It then connects you with a source to take your trip planning further.
How I built it
- Followed the quick start guide and docs to build out a node server that listeners to webhook events and posts messages
- Used a simple 'game' state machine to hold the current state of the user in the bot's process.
- Deployed the node server on heroku to simplify hosting and reduce time spent on it
- Used a bit of wit.ai to allow for using intents outside of the postback buttons
- All images are from 'public domain' images hosted on Flickr. I rehosted in an S3 bucket for my use.
Challenges I ran into
Trying to get a balance between postback use and natural language processing. It seems to me like if you're going to have both, then you should ensure everything can be done purely with sending messages, to avoid having an awkward UX where you can only do some things with postbacks and other stuff with messages. However, as the number of buttons is limited it seems the only way to achieve parity is to keep the NLP limited. Perhaps parity is not the right goal.
Accomplishments that I'm proud of
The 'game' state machine turned out more reliable than I was expecting, including go back functionality.
What I learned
How to integrate with the messenger platform, including how to use the attachments API.
What's next for Choose Your Adventure
3 big areas:
- More depth: Right now the bot simply pulls your end activity. I'd like the session to tell more of a story. James likes "surfing" in "tropical waters" or "climbing" in "Himalayas".
- API Integration: I'd really like to take those choices and feed them into an API that allows me to link to purchasable adventure packages. It may not line up exactly with the current design, but that would help me evolve the concept.
- Presentation: I envision the bot embedded into a site that presents the journey in a more exciting way, rather than just on the Facebook page). Full-screen animations rather than images embedded in the template.
Log in or sign up for Devpost to join the conversation.