Back to projects
LangGo A Web App for Learning Japanese Vocabulary

LangGo A Web App for Learning Japanese Vocabulary

Kent Farabaugh / September 13, 2024

LangGo is a web application that helps users learn Japanese vocabulary by generating mnemonic flashcards based on words extracted from uploaded PDFs or a selected difficulty level. Built using React, Node.js, TypeScript, Bootstrap, and OpenAI, LangGo provides an interactive way to learn and review words using spaced repetition. You can try LangGo yourself at langgo.co.

Features of LangGo

  1. User Authentication and Storage: Users can log in and save their generated flashcards for future use. I implemented authentication and database storage using Firebase.
  1. PDF Upload and Word Extraction: Users can upload a PDF in Japanese, and LangGo extracts the most frequent words based on the selected Japanese proficiency level (N1-N5).
  1. Mnemonic Flashcard Generation: The app uses OpenAI to generate mnemonic flashcards for the most frequent words, helping users to memorize and understand complex vocabulary.

Mnemonic Flashcard Example

Spaced Repetition Learning

Spaced repetition ensures effective memorization by helping users review the flashcards at optimal intervals. The review section helps users keep track of their progress.

You're 70% done with your flashcard review!

Handling Errors and Data Cleanup

The app is designed to handle various errors, such as invalid token verification, unexpected responses from OpenAI, or issues with parsing the generated mnemonics.

if (!completion || !completion.choices || !completion.choices[0].message) {
  console.error('Unexpected response format:', completion);
  return res.status(500).json({ error: 'Unexpected response format from OpenAI.' });
}

If there is an issue with the response from OpenAI (such as an unexpected format), the app catches these errors, logs them for further investigation, and returns a user-friendly error message.

Why I Built LangGo

I built LangGo because I wanted to make reading Japanese more approachable for learners. Often, when trying to read a Japanese book or series, you encounter so many unfamiliar kanji and vocabulary that you have to stop every few sentences to look them up. While you might be able to understand the text with effort, this constant stopping can disrupt the flow and make the experience frustrating.

With LangGo, you don't have to do that anymore. You can simply upload the book you own into the app, and it will automatically generate a list of the words that appear frequently in the text. These are the words you'll need to know to read without constantly having to stop and look things up. The app not only provides the words but also serves mnemonics to help you remember them, making the reading experience smoother and more enjoyable.

How to Use LangGo

Users can either upload a PDF or choose a difficulty level (N1-N5), and the app will generate the top five words based on the frequency or difficulty. Flashcards with mnemonics will be displayed, and users can review past words in the review section using the spaced repetition feature.

If users don't have a PDF, they can simply select a difficulty level, and LangGo will generate vocabulary words at the chosen level for them to study. This makes it easy for anyone to get started without needing any specific reading material.

Try LangGo

If you're interested in making reading Japanese more approachable and efficient, give LangGo a try at langgo.co. Upload your books, generate flashcards, and start reading without constantly stopping to look up words!