Inspiration

Even among our highly educated peers, we found that financial literacy is a taboo. According to PwC, only 8% of millenials in North America demonstrate high financial literacy. Our peers don't even know the right questions to ask when making life-changing financial decisions. We wanted to help with that.

What it does

Jarvis is a Facebook Messenger chatbot that provides Wealthsimple portfolio management tools and financial planning information.

How I built it

To build Jarvis, we looked at the available options, and discussed whether to write it from scratch using libraries like NLTK or leverage existing technologies. Eventually, we decided to use available services like AWS Lex, and focus our efforts on delivering better content to our customers.

We started off by creating a simple, front-end Lex bot, and gradually added prompts that would help it interact with the user. Then, we connected it to (AWS) Lambda backend, which would be responsible for validation of the input. Once we were fairly confident of the bot's interactions with the user, we added code to call WealthSimple API, and format the results as needed to present to the user. Finally, we integrated the bot with Facebook Messenger to allow end-to-end testing.

After finishing one functionality completely, we expanded the bot to have other features.

Challenges I ran into

One major challenge was building features that are engaging, useful, and simple for our users. We went through eight iterations before landing on the features we thought would bring the most value to users right off the bat.

From a technical perspective, there were some challenges as well. None of us had experience with the technologies we decided to use, to we had to read the documentation for Lex and familiarize ourselves with the service.

Other major issue we found out was that Lambda does not have libraries like Matplotlib and Pandas installed, and we had to provide them in a zip file with our code. The zip should be made on a Linux machine, so we had to get an EC2 instance, install these libraries, add our code, and finally upload the zip to S3 to be used by Lambda. So everytime we wanted to change the Lambda code, we had to put the code in the zip and re-upload to S3. This made the development cycle a bit more tedious.

Accomplishments that I'm proud of

Despite the challenges, we were able to create the chatbot, and integrate 3 different technologies, WealthSimple API, AWS services and Facebook Messenger.

The idea can directly be adopted by Wealthsimple and rolled out as a feature and the technical architecture can be taken as it is to production.

We are really proud that we produced something with high quality and business value in such short time.

What I learned

We learned how to use the OAuth2 protocol to access API data and authorize apps.

We all learned about a new technology called AWS Lex, and how we can create production-ready customer facing products while focusing on the content instead of the underlying infrastructure and algorithms.

We also learned how to create a Facebook app, specifically a chatbot, and how to integrate it with a backend of our choice.

What's next for Jarvis

The next step for Jarvis is to add deeper integration with Wealthsimple's user data. Specifically, we wanted to introduce a personalized investment tool that utilizes Wealthsimple's user survey data and recommend the most appropriate Wealthsimple products and contribution amounts. Additionally, we would like to build push notifications that remind users to deposit, help them budget around their income, and plan large financial decisions through our interface. Longer term, we would like to introduce a predictive analytics tool that segments our users and provides useful budgeting reminders/tips over time to push additional services (apart from Wealthsimple).

Built With

Share this project:

Updates