Back to Parent

Outcome


Intention

The idea behind NPSBot was to create a reference for the National Parks I've visited and provide some information about those that are still on my list. Looking into the NPS API, I discovered that each park had an official description, which I thought would serve as a nice encapsulation in the context of a chat. 

Context

I wanted this experience to feel like a conversation, but also a bit like a guessing game. I felt it would be more interesting for the user to input any parks they've heard of or can think of to see if I've been there rather than just providing a listing of my have and have-not's. 

Process

My process for this bot was extremely iterative; I first started with a high number of conditional statements (one for each of the parks I'd been to) but then realized that I could be more concise using two arrays - one for the parks I'd been to and one for those I hadn't. As I built, I was constantly looking for new ways that I could make the user's experience feel a bit more natural. 

Product

The result is a chatbot that can give a bit more info about my travels, including how many parks I've been to, which parks I've been to, which ones are still on my to-do list, and which was my favorite. For the parks I have been to, I also linked to my personal website where I've documented my visit to each park.

Deployed here: https://floating-citadel-19025.herokuapp.com/sms/incoming?Body=lassen 

Img 2960
Show Advanced Options
Img 2961
Show Advanced Options
Img 2963
Show Advanced Options
Img 2962
Show Advanced Options
Img 2964
Show Advanced Options
Img 2965
Show Advanced Options
Show Advanced Options

Reflection

This process forced me to explore new functionality that I hadn't yet dealt with in Ruby, which of course presented challenges. One of the things I struggled most with was the desire for flexibility in terms of user input. For example, I wanted the bot to accept a variety of inputs for someone asking about Arches National Park. I wanted "Arches, Arches National Park, Arches NP, Arches?," and all lowercase permutations to return the same result, so I needed to find functions like .include? to encompass these possibilities. 

If I were to work further on this bot, I would like to return imagery along with the descriptions for each park to make the experience more fun and visual. I would also try to work out why the response time on some of the messages are so slow. 😕

Drop files here or click to select

You can upload files of up to 20MB using this form.