Team members vincent guo, daniel chen, lakshy gupta
Currently, studying is a boring, difficult, and isolated process of continuously re reading text you've wrote until it clicks. This is not efficient at all, compared to other techniques of studying such as active recall, which involves studying in the same format as is tested (question answer format). Additionally, it's an individual process, since notes are difficult to share and read due to everyone's individual styles of writing.
We were inspired by our experiences at school. Flashcards were very useful to memorize terms and concepts. However, turning notes and textbook text into flashcards was a tedious project as many flashcard apps like Quizlet required you to copy the answer and the question one by one. Now with Flashnote, cards can be instantly created to make studying more efficient and easier.
Flashnote sets out to solve this by using cloud Optical character recognition, and natural language processing to automatically transform your boring dull notes into interactive flashcards automatically.
Additionally, Flashnote uploads all your cards to the cloud to allow you to access them from anywhere, at any time, and seamlesslessly share your notes with your friends with ease.
What it does
Flashnote keeps an account for every user in a database in the cloud, which it maintains using Dropbase. It allows you to play the flashcards of others and your own, which it loads from said data base. When creating new flashcards, Flashnote uses Google Cloud's Vision and Natural Language APIs to transform your handwritten notes into flashcards in a question-answer format automatically, eliminating the need to refactor all your notes.
What we learned
We definitely learned a lot about Android development as well as the Android operating system itself, especially since we went into this project with little to no Android experience. APIs and databases were also a crucial component to this application, and although Dropbase helped to alleviate much of the learning curve with databases, we had to learn the nuances of each system.
Challenges we ran into
The scope of the application was extremely large, and sadly a multitude of extra features did not end up working.
- Retrofit didn't like sending GET requests with bodies, or PUT requests with files
- Taking requests in Java was long and annoying — Python would have been nicer to use
- Our workflow was extremely messy, resulting in numerous merge conflicts and pains with Git
Accomplishments we're proud of
- Used Google Cloud's Vision and Natural Processing APIs together to turn handwritten/typed notes into flashcards
- Used Retrofit to query data from Dropbase
- Completing a hackathon!