Link to video
Inspiration
For cryptocurrency investors and even people who are simply interested in cryptocurrencies, it is a pain to have to manually navigate to different places to check for all kinds of information about them every day. That is why we were prompted to create this intelligent virtual assistant for people to obtain all that they need with a single click.
What it does and How we built it
Cryptant offers all-around daily feeds for subscribers on the currencies that they are interested in, and conducts checks on the prices hourly so that the users will be alerted via email and text message, should there be any significant fluctuation of the price of a cryptocurrency. The more interesting part is the text messaging system (powered by Twilio), which acts as a responsive chat-bot since the user can also query information (e.g. pricing, news, forum updates, or advice from AI) by sending keywords about a currency the other way around. Using Google's translation API and Google Cloud's Dialogflow, I enabled the system to recognize user "intents" represented in any natural language and provide feedback ("fulfillments") accordingly, and in the same language that the user uses. In addition, we applied Google Cloud's natural language API/library to analyze the sentiment of the content of all hot news articles and Reddit posts that we collect, so that if we detect some strong sentiment, we will mark the post as "Has a higher chance of containing important information".
Individuals interested in Cryptant can simply subscribe with first and last names, and phone numbers at the official site, which has been deployed to the internet using GCP's App Engine: https://cryptant.uc.r.appspot.com. The "daily feed" and "hourly check and alert" functionalities require that the Python scripts be executed on a regular basis, even when our own computers are shut down. In this case we set up a Linux virtual machine (a Compute Engine) in Google Cloud's console and used the Crontab utility in Linux operating system to schedule tasks.
Information collected and shared with users is powered by a cryptocurrency price and AI prediction API, a news API, and the "praw" (Reddit scraper) library in Python. We bought an idle mobile phone number configured Twilio so that we can let valuable messages be sent automatically from that number. We also used Ngrok to set up webhooks with Twilio SMS and Dialogflow, so that when the user sends a message for querying, the backend system will know that it receives a message, a callback function will be triggered, the query is parsed and pertinent answers be sent back. Twilio enables the entire system and process to be incredibly smooth and convenient. Twilio also allowed us to implement a subscriber verification system based on a randomly generated 5-digit code, so as to steer clear of malicious subscriptions. We used Google's Cloud Firestore to store miscellaneous information and their verification codes.
Challenges we ran into & What we learned
We needed to learn how to set up a webhook with Twilio (to make the system responsive), and some other libraries very quickly and almost all from blank. We also needed to correctly parse the large payload sent from a bunch of endpoints. Finally, some companies such as Reddit have adjusted their sites in an advanced way so that scrapping via traditional means (using beautiful soup or selenium) turned out to be impossible, and so we were forced to opt for alternative approaches.
Accomplishments that we were proud of
As a half-sized team, we were able to create, debug, and maintain hundreds of lines of code in around a day, and we made some sophisticated functionalities (especially the SMS messaging assistant and information collection from various sources) working as intended.
What's next for Cryptant
I wish to turn Cryptant into Investment Assistant to provide virtual assistance on not only cryptocurrencies but also all kinds of other investments (e.g. stocks and normal currencies). I also envision developing an AI of our own with some advanced machine learning techniques such as neural networks to optimize predictive accuracy.
Log in or sign up for Devpost to join the conversation.