I was out in San Jose for the Facebook conference and I kept searching for Vegan/Vegetarian places. Facebook had just introduced Chat Extensions and the idea just clicked. I wanted the discovery for people with food restrictions to be easier.

What it does

VeGrub is a chabot that you can ask for Vegan/Vegetarian restaurants. It also includes a Chat Extension that can be inserted into group conversations.

How I built it

The entire experience is built in Javascript. Node on the backend for the Lambda. I'm using a Yelp Fusion library I created a few years ago to query data. Completely serverless. I'm keeping state with DynamoDB. I developed most of it using Cloud9 because it shortened the feedback loop in testing the Webhooks. In the final phase I used aws-serverless-express which marries express and lambda.

Challenges I ran into

When I moved all my backend code to Lambda and API Gateway, nothing worked. In Lambda when you send a response the execution is halted. Most of my code had async processes that weren't finishing. I had to search for all my Promises and ensure things were resolved before sending a response.

Accomplishments that I'm proud of

I think VeGrub could be useful to people who travel and those who are looking for food. I used it on my last trip to Charlotte, NC and found some great places to eat.

What I learned

I learned a large number of AWS components. Lambda, Cloudfront, Cloudformation, IAM roles, S3, API Gateway, etc. Because there's also a Chat Extension, I learned React and Redux.

What's next for VeGrub

It's coming to a phone near you. This will be my first adventure into iOS.

Share this project: