What It Does
Everyone faces difficulty with organization and scheduling. There have been applications to help assist people with organization such as calendars, to do lists, etc. However, most of these applications are not user friendly, especially for people with learning disabilities. It can be difficult, when dealing with large quantities of data, to manually enter every aspect of a calendar event. To accommodate all groups of people, we invented the Scanner Calendar. Using a word document or a photo of a whiteboard with information regarding upcoming events, the application will automatically add the dates to the user’s Google Calendar. This application optimizes the process of organizing a to do list, by auto-populating Google Calendar, it minimizes the probability of error that special needs students would face trying to do this themselves. Even though Calendar Scanner was designed for people with learning disabilities, this application can be used by everyone. From the average person to a blind student, Calendar Scanner is applicable to any user's everyday lives.
How We Built It
We used the Tesseract OCR, an optical character recognition engine, to read in a picture. The OCR isolates the darker contents of the page, maps each picture to a known database of characters, reads in each individual character into one long string. Once we secured the string containing new line characters, we split the string and store the substrings in arrays starting from the keywords "Title" and "Date" and ending with the newline character. Then we parse through the array, and add everything after the "Title" and "Date" keywords to Google Calendar API to create an event.
Challenges We Ran Into
Being first time hackers, our first obstacle was getting our project off the ground. We experienced difficulties with the design process, and as a result we created four different repositories before settling on our current project. Furthermore, we were all inexperienced with OCRs and APIs. One of our biggest challenges was being able to understand and implement these programs. Another challenge we faced was understanding the difference between Gradle and Maven in the context of IntelliJ's interface. Initially we used Maven; however, since the Google API didn't comply with this software management tool, we switched to Gradle to combat this issue.
What We Learned
Our biggest takeaway from WiCHacks is how to successfully navigate through the design process, especially in a limited time frame. We had an idea of how we wanted to implement our design, but after encountering several dead ends, we learned that it's okay to start over, regroup, and find a better approach. We now understand a lot about how to implement APIs, OCRs, Gradle, and Maven. We now understand how to add dependencies with Gradle and Maven and how to link them to an API.
Accomplishments That We're Proud Of
Our proudest moments are when we learned from the obstacles we faced. Coming into the hackathon, we knew our greatest adversity would be our own lack of knowledge. Along the way, we were able to learn the difference between Gradle and Maven and how to implement OCRs and APIs within the scope of our understanding. We have a working OCR, API, and we are able to create events automatically from just a photo of assignments and due dates. Our greatest accomplishment is having a functioning product at the end of what can be considered the majority of our team's first hack.
What's Next for Calendar Scanner
We plan to make the code much more user friendly. We plan to transition the Calendar Scanner into a mobile application, as it is currently limited to a web application. Also, we would like to address some limitations; for now, the program can only take typed data. Later versions of this program will be able to read in handwritten data. Furthermore, another addition to Calendar Scanner would have the option to set specific times and detailed notes for each event, as well as automated reminders depending on the priority of the event.