Inspiration
I built Peek during a previous hackathon but I believed that a ChatBot would make it more accessible to users.
What it does
- When a user logs on to the app, they are prompted for their destination.
- A prediction of how crowded the location is expected to be at the time the prompt was entered is then displayed.
- The prediction is computed relative to the expected minimum and maximum number of people (This information is obtained using the populartimes API)
- A one-time notification is sent 24 hours after the user's last interaction with the bot (If the user subscribes to one-time notifications). The notification essentially reminds the user to use Peek to check out their destination (this is geared towards helping the user build a habit of using peek)
How I built it
- The git repository is hosted on Heroku and connected to a Facebook app which is also linked to Peek's Facebook page.
- Users can access the bot through the Peek Facebook page in messenger.
- Messages are sent/received via the Messenger webhook API defined inside the express backend.
Challenges I ran into
- Due to the calls being made to external APIs certain variables were not being updated synchronously.
- I tried Promises and Async/Await but the responses were still not updating on time.
- Eventually, I used
setTimeoutsto delay the responding functions until the variables(e.g prediction results, google places search results, etc.) were updated. - I also had to study various new messenger features such as buttons, postbacks, one time notifications, etc.
Accomplishments that I'm proud of
- Built my first messenger bot and it works.
What I learned
- Using environment variables
- Javscript async functions
- Javascript promises
- Messenger bot development
What's next for Peek Chatbot
- Increase location suggestion accuracy for the Bot.
- Build a mobile platform for Peek
Built With
- express.js
- google-maps
- google-places
- heroku
- messenger-one-time-notifications
- node.js
- peek-api

Log in or sign up for Devpost to join the conversation.