At school, teachers often write down homework assignments, upcoming projects, or tests on the whiteboard. However, there is limited time to write these assignments down and sometimes even after we write them down, we completely forget about it. Snaptorial provides a quick and easy solution for both creating events and reminding you when to do them.

What it does

The user takes a picture of the assignment written on the board and the app automatically creates a reminder for the assignment including the name, the date it is due, and the time it is due (if applicable).

How we built it

We used JavaScript for the main functionality and implemented OCRad Optical Character Recognition (OCR) to extract text from the user images. In order to save the event and remind the user of when it will be, we used the Google Calendar API to automatically create and set the reminders based on the extracted text from the OCR. In order to store user information so that the user can track events over a long period of time, we used the Google+ API making use of the user Auth feature.

Challenges we ran into

Implementing all the APIs to function in unison was our biggest challenge. Specifically, the OCRad API and the Google APIs, because there was limited and very vague documentation for the OCR and the Google APIs.

Accomplishments that we're proud of

We are extremely proud that we were able to implement all the APIs together properly and create a functioning project which not only looks nice, but functions very well for the user too.

What we learned

We learned a lot about JavaScript and about implementing different APIs and how to avoid problems such as issues obtaining keys and issues with authentication. This valuable information will definitely help us in the future!

What's next for Snaptorial

We plan to add handwritten recognition as well as use React Native to create dedicated iOS and Android apps. Also, we want to expand to more social media APIs so users can remind their friends about upcoming events too!

Share this project: