Despite having different experiences learning Chinese, we agree on one thing: the best way to learn is to speak it frequently in daily conversation. Daniel learned Chinese from his parents, and the immersion of Chinese in his home has been the biggest catalyst towards his Chinese education. Joanna has always wanted to improve her spoken Chinese, but practicing with relatives and other native speakers induces a lot of anxiety. If only there was a low-stakes, accessible way to practice conversing in Chinese...

What it Does

LanguageLink, utilizing Google’s DialogFlow API and Natural Language technology combined with text-to-speech and speech-to-text, creates organic conversations for accessible language practice. By asking users to converse with the bot in their native language before practicing in their target language, LanguageLink is able to collect natural dialog from languages all around the world. The dialog is fed back into DialogFlow as both training phrases and entry dialogue, so that Otto, our agent, can hold a conversation that goes many ways! Native speakers will additionally give feedback and edits to Otto on fluency, context, and grammar.

The approachable and friendly UI makes practicing a language with Otto easy. Anybody can improve at speaking a new language on their own timetable without waiting on a partner. LanguageLink also tracks progress and identifies areas for improvement. Users will be able to access translations, transcripts, and even suggestions while they chat with Otto.

How We Built it

We designed the UI in Figma, made illustrations in Procreate, and constructed the frontend in vanilla Javascript. The linked demo is client-side proof of concept, though the real product will require connecting our Node.js backend to communicate with Google’s APIs.

Challenges We Ran Into

Taking on backend servers and requesting APIs came with all the challenges of learning new technology, and figuring out how to present our multilayered idea concisely and efficiently was its own semantic hurdle.

Accomplishments That We're Proud Of

This was a day of many firsts for both of us! It was Joanna’s first time creating a visual brand identity 0 to 1, and it was Daniel’s first time creating and connecting to a Node.js backend. We’re proud that we created a fun, meaningful product experience for users to enjoy, and we encourage you to try out our demo!

What We Learned

Though the backend wasn’t used in the demo, it was a great learning experience simply to research it and focus on the frontend aspects of the project. Since PennApps was our first hackathon, we learned how rapidly time seems to fly by while experiencing excitement, frustration, and adrenaline all at the same time. We learned how to learn quickly, gained experience with new technologies, and connected with cool mentors.

What's next for LanguageLink

The most immediate step is to connect the backend tech for LanguageLink, namely DialogFlow. Along with this comes finding a method of sorting the responses into training phrases and entry dialogue, and beginning to construct our conversation trees in different languages.

In the long run, our goal is for Otto to be familiar with every language and for LanguageLink to have a global user base. LanguageLink should be simple, friendly, and accessible, lending itself to everyday use. With a user base that collectively trains Otto, we want LanguageLink to be a forum that makes language education more accessible and facilitates connection around the world.

Share this project: