Inspiration
I love learning new languages! Whenever I learn new languages, the most time consuming thing is memorizing vocabulary. I often use flash cards to help me learn new vocabulary. However, flash cards of vocabulary words I found online usually involve words that aren't relevant to me, and making flash cards myself is very tedious. I wanted something that would make flash cards for me and have these flash cards be relevant to things I want to learn.
What it does
Given any image that's publicly accessible on the internet, the app generates flash cards of various languages based on the image. Whether it's an image you uploaded yourself or an image from another website, simply supply the link. The app will analyze the image and capture any relevant information about the image. This includes objects in the image as well as the entire scene. It then translates these words and displays them to you. Currently, all the words generated by every user is pooled together and displayed.
How I built it
The entire application runs on Azure. There's a flask web app that take image urls and sends it to Azure's Computer Vision API. The API analyzes the image and returns any tags and information it can find. The web app then sends these words into Azure's Translation API, which gives back the translated words. Finally, the web app displays both the original word and the translated words.
Challenges I ran into
The overall architecture was definitely the most difficult part. It took me a long time to plan out this system, which involved figuring out what APIs I need and how to connect them. I have never deployed code to be run on the cloud before, so it took some learning to figure out how I can get all these different APIs to talk to each other.
Accomplishments that I'm proud of
This is the first app I have ever deployed to run completely in the cloud. It also involved architecture planning that I was able to do all by myself. It feels very rewarding that I have been able to set up a system that involves different APIs talking to each other across the internet.
What I learned
I learned a lot about working with cloud technology. I have gained experience working with vision APIs, translation APIs, and web apps that run in the cloud. I am sure that after this hackathon, I will be able to set up communication between APIs a lot more quickly.
What's next for Flashlingo
There's a lot of work left to do for Flashlingo. I had so much planned for Flashlingo, but I just wasn't able to get everything done in time by myself. First, this is suppose to be a flashcard web app like Quizlet. I wanted to spend time doing more styling and allow users to cycle through terms in the format of flashcards as opposed to a list. Second, I wanted to build a user system so that each user can login and see only their own flash cards. It's cool to see globally what words everyone is listening but the app was originally designed to hold private and personally relevant flashcards. Third, I wanted to enable translation in 60+ languages through the Translation API. I had planned on giving users a choice of what language they want to learn as opposed to just displaying the most popular languages. Lastly, if you have tried the app out, you might notice it's quite slow. Live vision processing and translation do take a long time, but I wanted to leverage caching more so the app runs faster.
Log in or sign up for Devpost to join the conversation.