Wanted to start a different way of learning with a new ai like approach. Also wanted to work with cool web services.
What it does
Flip the flash card bot stores flash card decks and flash cards. It also can walk you through viewing your flash cards one by one in the order they were added or a random order.
How I built it
I built it using an Amazon Lex bot with an intent to manage flash card decks and another to quiz users on their decks. The code hook calls .net core libraries that retrieve and store user information as well as their flash card data from a DymolaDB table.
Challenges I ran into
I am a pretty new software developer so almost everything was at least a small challenge! The biggest challenge, however, was understanding how Lex validates user entered data and attempting to overcome some of its limits.
Accomplishments that I'm proud of
I am very proud of getting the bot to respond to the test input for the first time! It sent that bone chilling feeling down my spine that has always driven me to develop software. I am also proud of being able to quickly understand how NoSQL databases work. I have worked with relational databases before, but never NoSQL. Even though the schema is fairly simple, I was quite proud.
What I learned
I learned a lot about using different web services and how they communicate. Before this project, the term "endpoint" was very intimidating to me, but now I fully understand it. I also learned a lot about different Amazon web services; things like managing IAM users and permissions, Lambda, DymolaDB and of course, Lex.
What's next for FlashCardBot
FlashCardBot could potentially be a project, like most software projects, that never end. I want flash card bot to not only be able to present flash cards as the user typed them, but some sort of multiple choice or fill in the blank capabilities to really extend the quiz intent. The manage deck intent is very linear as is. I would like users to be able to add a new deck and immediately begin adding cards without having to start the manage intent over again. The general dialog can also be improved for a better overall user experience.