Vivian Zheng Advith Chelikani Hai Mai Thank you for being the best pseudo-TA's ever. You have saved us hours upon hours of work and development, and our experience would not have been as successful and fun without your involvement.
Overall, thanks to all the sponsors, organizers, and volunteers that have made this event possible. Without the food, the workshops, and the food, us hackers would not have been able to thrive as much as we can now!
Our initial point was to merge applicable software to everyday lives and new technology, especially neural networking. After juggling and bouncing ideas off of each other, we decided on an event planner app, taking on the challenge of utilizing several API's at once, creating a automated bot, and integrating multiple libraries to make that idea come to life.
What it does
There are two pathways by which the Google Calendar event can be created.
Manual input into Slack, to which our bot would parse the input for any necessary information for our Google Calendar Event. At the same time, this bot would give authentication to multiple users on their Google accounts.
After taking a photo, a script using the Microsoft Handwritten Recognition API would read the photo for any necessary information that would then be delivered as a csv file, and then be finally created as a Google Calendar Event using the same functions in 1.
How we built it
Before going forward with our project, we decided to split our roles in accordance with the libraries, API's, and tasks used within our application. Thomas Zhang and Eric Choi primarily worked with the Microsoft Cognitive Services API, (Handwritten Recognition), and the OpenCV library to parse out details from event posters i.e. title, location, starting time, ending time. Luz Camacho and Hanna Endrias worked with the Google Cloud API (Google Calendar), Slack, and ACL (Access Control List) to create a bot that took in and parsed out commands to formulate an authenticated Google Calendar event shared by multiple users.
Challenges we ran into
For Luz/Hanna's team, this was their first time working alongside the Google Cloud, so reading and applying through the documentation was a rough start, especially when it came to making and authenticating Google Calendar events for multiple users at once. Likewise, Python was relatively new ground because although adept in C++, formulating a script with no prior experience often halted our progress, as they had to learn new syntax, semantics, and library usage.
For Thomas/Eric's team, it was also their first with the Microsoft Handwritten Recognition API, so learning for application all in one day was definitely an obstacle we ran to. Despite learning how to use these accommodations, the Recognition API being relatively new, and our lack of time to implement for better parsing resulted in a weakly accurate script. For Eric, it was the same as he struggled with his very first scripting language as well as his very first API usage, which again frequently deterred progress onwards.
Accomplishments that we're proud of
(Taken from several accounts) "I overcame my fear of access control lists and API's" "Same, API's scared the hell out of me, also learning" "LEARNING" "Learning and gaining familiarity with Python" "I named my variables" "Committing to a project, having dumped many side projects early on"
What we learned
Scripting, authentication keys for multiple users, cloud services, neural network application, integration of API's, access control list, extensive git commands, collaboration, modularity, reading documentation
What's next for S.I.P.
In the future (and if we had more time), we hope to integrate these scripts into a mobile application using Kivy to wrap around our Python scripts, allowing for a deployable application within the App store. Another goal of the Slackbot was to have a language recognition API that would automatically transcribe and parse the data for the Slackbot to again, create the Google Calendar event.