Inspiration
It's very hard for a lot of people (including us) to create a budget and stick with it.
Some of the challenges in keeping track of expenses are:
- It takes multiple steps just to input expenses, especially when we're rushing to get some food or going out with a bunch of friends.
- There's not enough motivation to keep the expenses within budget
What it does
This bot links directly to a wallet and thus recording expenses and checking the remaining balance is a breeze.
There should be less reason for us to not keep up with our own budgets ;)
How we built it
The budget app is meant to be used with mobile application that accepts voice commands.
Since voice commands require NLP capability, we were thrilled to join the aws chat bot challenge while evaluating aws lex to do the heavy lifting since the service can potentially receive both text and voice.
Specifically for this chat bot challenge, we built a bot-service that handles facebook's oauth authentication, a lex-lambda combo that handles natural language and the backend service which handles the business logic.
Challenges we ran into
The biggest challenge is to figure out the architecture to link up the backend service with lex, lambda, and facebook's oauth. This is where we decided to create a "bot service" to handle facebook oauth from facebook messenger that communicates with lex over aws-sdk.
Secondly, we need to learn about lex and how can we elicit intents and slots from user commands (this is kind of evident from the amount of hardcoded sentences in the lex bot ;D )
Lastly, we have to enable lambda as the fulfilment handler for lex and use it to communicate with the backend of the application. At the same time, we need to ensure that there are enough leeways to allow the original service to run with mobile application while also supporting lex-lambda combination.
Accomplishments that we're proud of
Understanding how to use lex to elicit intent and slots; and also to trigger lex through aws-sdk to decide what would be the next course of action when user have typed in something.
Managed to implement authentication flow with facebook's oauth through facebook messenger bot.
Understand how lambda can be used as to fulfil lex intent and brushing with serverless framework.
What we learned
- NLP is... not... easy...
- Better understanding on using serverless technology
- Designing conversation flows in bots is quite different than web application designs
What's next for Budget Manager Bot
- budget and expense categorization
- allow user to look at the remaining budget for a particular category.
- accepts voice commands to track expenses and also to check remaining budget
- accepts recording income
- allow users to set up some target that they want to achieve through strict budgeting
Built With
- aws-elastic-beanstalk
- aws-lambda
- aws-lex
- facebook-messenger
- java
- mongodb
- node.js
Log in or sign up for Devpost to join the conversation.