I personally teach Android development at Berkeley, and my primary mode of communication with my students is Slack. It's a great resource for communicating in professional settings, but there are so many subtle functionalities and nuances that an educational platform should offer that Slack does not, as many a TA will tell you. That's why we decided to do something about this issue.
What it does
Our chatbot handles announcements, grades, organization, and much more to help teachers manage their classes on Cisco Spark, an upcoming competitor to Slack. In addition to this, we created a web server to store information offline and utilize API calls to add NLP functionalities to identify key concepts and provide summaries of the day's discussion.
How we built it
We built the server using botkit, an existing platform to host bots on platforms like Slack and Messenger, and we hosted the app through glitch.com, a collaborative code editing site / web hosting server.
Challenges we ran into
As a new platform, Cisco Spark was definitely a challenge to get used to. In addition to our lack of experience in node, we had plenty of issues trying to tie together the various frameworks, work with little more than the docs, and even figure things out beyond the documentation. From trying to get a simple "Hello, world" bot to attempting to automate video calling, every single step along the way was a gigantic hurdle for us, but we managed to pull through!
Accomplishments that we're proud of
I think all of us are very proud of the scale of the product we built. Though it's nowhere near perfect, this is a lot more ambitious project than your average college CS project or even a website. The fact that we were able to overcome such monumental challenges and build a cohesive platform with such minimal resources in such little time makes this something we're all proud of.
What we learned
What's next for TeddyTA
TeddyTA is ready to move on to bigger and better things, starting by integrating with Slack and Messenger. Having a more cohesive platform will allow us to create a more frictionless interface, which in turn will allow us to add even more functionality and get even more users. The possibilities are endless!