Inspiration
Crypto currencies are booming and becoming mainstream. As they become more popular, the need to have tools that give us the convenience of accessing and assessing them also rises. Compared to stock prices, the values of crypto currencies vary a lot in a short period of time. For investors who have heavily invested in these crypto currencies, it is vital to stay in sync with how their favorite currency is doing. Unlike the stock markets, crypto currencies lack powerful tools that allow users to stay in sync with the market and Crypto Watch tries to cover this gap.
What it does
Crypto Watch is a bot built using Amazon Lex that tries to cater to the needs of crypto currency enthusiasts and those who invested in them. What can it do?
- Give the price of Bitcoin with a graph showing 6 hour price history
- Give the price of Ethereum with a graph showing 6 hour price history
- Give the price of Litecoin with a graph showing 6 hour price history
- Create price alerts/alarms to send text messages when Bitcoin reaches a specified price
- Create price alerts/alarms to send text messages when Ethereum reaches a specified price
- Create price alerts/alarms to send text messages when Litecoin reaches a specified price
How we built it
While providing a simple and straightforward to service to the users who chat with the bot required us to build an architecture which is robust and fast. We decided to use a wide variety of AWS services to create a implementation which works flawlessly. Below is the architecture that powers our chatbot

Below are the AWS services we use and how we use them:
- Amazon Lex - Used for natural language understanding and easy integration with chatbot platforms
- Amazon Lambda - Serves as the main backend for powering the chatbot. There are additional lambdas that are responsible for sending text messages when alarms get triggered and there is a lambda to refresh the price history images
- Amazon SNS - We use SNS to send text messages to users. SNS allows us to create subscriptions based on the selected currency and price. When we trigger the alarms, it is as easy as sending a message to the subscriptiona and all users subscribed to that price receive the text messages.
- Amazon S3 - Stores the price history images that are generated by the lambda. A designated Lambda geenrate and store the images directly in S3. Storing it in S3 instead of dynamically generating for each request allows us to easily scale
- Amazon CloudWatch Events - Allows us to schedlue dispatching alarms and refreshing price history images
- Amazon Cloud Gateway - Allows us to expose one of the lambdas which generates the images as an API
- Amazon DynamoDB - Serves data storage for the lambda
- Coinbase and Gdax - Provides bitcoin, ethereum and litecoin data which are exposed as APIs
Challenges we ran into
We ran into a huge number of challenges, some of them include
- Collecting phone numbers was a big issue with lambda and we were able to finally come up with a custom slot that helped us to collect phone numbers without running into any issues
- Some of the AWS services we used were new, hence there was a learning curve to begin with
- Coming up with an architecture that is fast and instantaneous while providing a rich user experience
- Coming up with policies such as phone number verification (Associateing users with phone numbers, not requiring users to verify the same phone number multiple times in the same session while still having an expiration handling so that users cannot misuse the service and try spamming phone numbers)
Accomplishments that we're proud of
We started with a lot of challenges to begin with and we were able to come up with a robust implementation that works realiably. Crypto currencies are a becoming big and people have invested huge amounts of money. Hence we knew that we need to be reliable in orders for users to trust the chatbot. We did extensive testing and we are extremely happy about how the entire workflows work without any glitches.
What we learned
We learned integrating multiple AWS services and make them work synchronously without any issues. We were able to automate most of our deployment process and testing. We learned how powerful AWS and the vast number of services that it provides. We also learned a lot about crypto currencies and how it works.
What's next for Crypto Watch
Next step will be to allow the chatbot to buy and sell crypto currencies and allow users to set buy alarms and sell alarms which automatically buy/sell based on the price


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