An example of AssignmentTrackr functionality
This project was inspired by an apparent void between academic systems meant for students, and intelligent systems capable of learning. We believed that an intersection between the two could be extremely beneficial, and, personally, useful to the both of us. Thus, AssignmentTrackr was born, which utilized the convenience of SMS-based communication and the power of natural language understanding systems.
What it does
AssignmentTracker primarily serves as a 'to-do' list for students, who may add, delete, and look-up items within the list using just their SMS-services on a normal phone. The 'intelligent' part of this project is AssignmentTrackr's ability to have extremely robust Natural Language Understanding systems, as in, it is capable of understanding the intent of a message, rather than just an inbuilt pattern. For example, a user may text 'Which assignments are due in two weeks?", "Display all assignments which will be due two weeks from now", or dozens of variations in between, and still end up with the exact same outcome: AssignmentTrackr displaying a neat list of all projects/exams/quizzes/tests that will be happening in the upcoming 2 weeks. By allowing students to plan their schedule using an AI capable of near human-level comphrension, AssignmentTrackr can radically change the way we think about using intelligent systems in our daily life. As an aside, we also included a 'motivational quote' generator, which use trained Markov Chains (powered by Markovify) to create procedurally generated (but still coherent!) phrases that, hopefully, could lift a students spirits up.
How I built it
Our team primarily used Twilio (for the SMS-services), integrated it with the inbuilt NLP functionality of wit.ai, trained the model on dozens upon dozens of example sentences to teach it, and created a wide variety of inbuilt functions within the model to make it even more useful for the average student. Finally, we hosted the entire project on AWS (and hosted the prototype project on Flask).
Challenges I ran into
Unfortunately, wit.ai and Twilio, despite both being immensely powerful tools, do not play very well with each other. A significant part of our hackathon experience was spent fixing the large number of bugs the integration between the two presented. Past that, what was even more challenging was how finnicky and complex the wit.ai became, especially as we added more options/functionality to the project as a whole. We were often meant with sudden drops in textual accuracy after implementing particularly difficult bug fixes, and were forced to spend hours training the model back to its original precision levels.
Accomplishments that I'm proud of
Our team (my partner and I) had previously never touched any formal NLP software, and actually spent the first few hours of our Saturday morning learning the logic/eccentricities of wit.ai. The fact that we were both able to come so far and create a unique project using a completely new framework, in just 24 short hours, is something I am extremely proud of.
What I learned
Quite a bit. Specifically, I am quite confident that the intense debugging sessions that we both endured did boost our Python chops. But more abstractly, I think building such a complex project, using tools that neither of us have extensively used before, made us far more confident in our abilities to attack a similarily intricate project again. And with difficult and varied software engineering is, that is an extremely, extremely valuable mindset to develop.
What's next for AssignmentTrackr
Though remarkably flexible and robust, AssignmentTrackr still has limitations. For example, it's unable to 'combine' intents. As in, if it was asked to display all projects between the week of March 1st and March 10th, it'd be unable to deliver (the intents being, 'displaying', 'all projects', and 'between the week(s)'). Yet, the problem itself is not insurmountable. In 24 hours of intense studying/coding, we barely scratched the surface of wit.ai and its abilities, and honestly do think that AssignmentTrackr could be made equivalent to that of a human secretary (albeit, a secretary that primarily helps students create to-do lists). Training the model further, creating more conditional 'branches' of logic, and expanding the pure functionality of AssignmentTrackr are all very realistic goals, and goals we will definitely approach in the coming future.