Raymond - by Rich Gang
uHack 2016 Student Division
Matthew White - Back End Development
Paul de Boer - Back End Development
Josh Cooper - Back End Development and Video Editing
Oliver Van Nynanten - Front End Development
Garrett White - Business Manager
Inspiration
Raymond is inspired by other existing finance management applications such as Penny. We noticed that while there are applications that help users to manage their day to day spending, there are not currently any tools that provide a full range of financial services to everyday people. We realized that we could fill this niche by creating a virtual financial advisor, and thus Raymond was born.
What is it?
Our project is an online financial advice service that utilizes an AI assistant; Raymond. By using Natural Language Processing, Raymond can interpret the user's input and dispense financial advice based on their situation.
Raymond guides users through the information gathering process in an accompanying form. Raymond responds to questions from the user prompted by the form, and engages in a semi-structured conversation to naturally elicit their needs should they be unsure.
Raymond is designed for people who cannot afford a financial advisor, or simply wish to better manage their own finances. Raymond is targeted at people with little or no financial knowledge, and can provide definitions for financial terminology.
Our process
Where does the knowledge come from? Raymond's knowledge base is sourced from financial planning text books, and consultation with an actual financial advisor.
What did we use to build it? We used a number of technologies to prototype our web application. For our applications back end we made use of Node.js as the run time environment, which is supported by a number of intelligence services that we needed to use.
To implement our intelligent messaging system (i.e. chatbot) we decided upon the well regarded IBM Watson Conversation service.
The web page for the application was developed using the MaterializeCSS framework.
How does this use data differently? Although there are existing applications that provide users with information about their finances, they only provide feedback on specific elements, such as spending. Raymond uses this data differently, by providing feedback to the user based on their financial situation as a whole. This informs and empowers users to make well educated financial decisions.
Challenges we ran into
During our first day of implementation we were building the project in Java and utilizing an open source natural language processor package known as OpenNLP. We decided to drop this setup as we soon became aware that completing our project would be completely unfeasible using those technologies.
We queried the wandering mentors looking for alternatives. We were drawn to IBM's AI services because it was offering a good product that we could use for free and integrate with other work that we'd already done. IBM Watson worked flawlessly and was relatively easy to integrate into our application.
What we learned
Our team had no experience with implementing chatbots or natural language processing prior to this event. We have learned a lot of valuable information about these fields, specifically in the use of IBM Watson. Node.js was also unfamiliar to us, and so we had to learn as we developed.
What's next for Raymond
We plan to continue building Raymond's knowledge base, so that eventually he will be able to dispense advice of a similar quality to an actual financial advisor. To do this we will need to collect more financial data, and also develop the conversations paths further. There is also potential for machine learning (such as the IBM Watson's Alchemy service) to be implemented in this project, which would help to build the knowledge base even further.
Built With
- html5
- ibm-watson
- javascript
- materializecss
- node.js

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