DEV Community

Cover image for Koji: Learn Japanese Through Anime with AI-Powered Vocabulary Extraction
bhushangitfull
bhushangitfull

Posted on

Koji: Learn Japanese Through Anime with AI-Powered Vocabulary Extraction

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

Koji is a gamified Japanese learning mobile app designed specifically for N4-level learners who want to master Kanji vocabulary through their favorite anime episodes. The app transforms passive anime watching into an active, engaging learning experience by extracting vocabulary directly from Japanese subtitles and creating personalized study materials.

Core Features

🎌 Smart Subtitle Analysis - Upload anime episodes with Japanese subtitles (SRT/VTT/ASS formats), and Koji automatically extracts Kanji-focused vocabulary using custom tokenization algorithms optimized for Japanese text structure.

📚 Interactive Flashcards - Auto-generated flashcards with definitions from the Jisho API, complete with furigana readings, part of speech, and example sentences drawn from the actual anime dialogue.

🎯 Adaptive Quizzes - Multiple-choice quizzes automatically created from extracted vocabulary, with progress tracking and points system to keep learners motivated.

🏆 Gamification System - Daily streaks, tier progression (Beginner → Expert), weekly leaderboards, and achievement badges encourage consistent study habits.

📱 Seamless Video Experience - Custom-built video player with tappable subtitles—tap any Kanji word during playback to instantly see its definition without disrupting your viewing experience.

What It Means to Me

As someone passionate about both language learning and anime, I built Koji to solve a problem I personally experienced: traditional Japanese learning apps felt disconnected from real-world content that I actually enjoyed. Koji bridges this gap by making anime—something learners already love—into the primary learning material. The app represents my belief that effective language learning happens when students engage with authentic content that genuinely interests them.

Demo

Video Walkthrough

https://youtube.com/shorts/FwIFNOCSEh0?si=eYjnJkGE2bkJwvdJ

Screenshots

Progress Dashboard
User stats showing streak, words learned, and weekly activity

Technical Architecture

Frontend: React Native + Expo
Backend: Node.js + Express + Supabase
NLP Processing: Custom Japanese tokenization + Jisho API
Video: expo-video with custom subtitle renderer
Storage: Supabase (PostgreSQL) + Local file system
Enter fullscreen mode Exit fullscreen mode

Key Technical Achievements:

  • Advanced Japanese Tokenization: Built from scratch to handle Kanji compounds, okurigana, particles, and conjugations—extracting only meaningful vocabulary words while filtering grammar elements
  • Real-time Subtitle Synchronization: Millisecond-accurate subtitle display with tap-to-define functionality during video playback
  • Intelligent Vocabulary Extraction: Frequency-based filtering that prioritizes Kanji words and removes common particles, resulting in focused, learnable vocabulary lists
  • Offline-First Architecture: Episodes and flashcards stored locally for seamless study without internet dependency

Impact on Development Speed

Before Copilot CLI:

  • Research → Stack Overflow → Documentation → Trial & Error → Success
  • Estimated time for Japanese tokenizer: 8-10 hours
  • Database schema iteration: 6+ hours

With Copilot CLI:

  • Describe problem → Get solution → Understand explanation → Implement → Success
  • Actual time for tokenizer: ~3 hours (including testing edge cases)
  • Database schema: ~2 hours (with proper RLS from start)

Overall Project Timeline:

  • 3 weeks instead of estimated 6-8 weeks
  • ~60% reduction in debugging time
  • Near-zero time spent searching documentation for syntax

Lessons Learned

  1. Natural Language is Powerful: Describing problems in plain English often yielded better solutions than trying to construct technical search queries

  2. Context Matters: The more specific my prompts (including error messages, file contexts, and expected behavior), the better the suggestions

  3. CLI > IDE Extension for Context Switching: When working across terminal, database, and code editor, the CLI kept me in flow state without switching mental contexts

Favorite Copilot CLI Moment

When I have to attach file for giving more context, I will use at symbol and the file , so it could have the information needed to build something related.

My favorite command was

/agent

, so I could have automation like running dev-command and git command when there are changes in the code

And

/yolo

gives all context to copilot CLI in a snap, So I was switching devices, and whenever I installed copilot on new device, I will use

/yolo

command to get all the information about the project.

GitHub Copilot CLI: My Secret Weapon

GitHub Copilot CLI became indispensable for three key reasons:

  • Focus Preservation: No more breaking concentration to search Stack Overflow or documentation—just describe the problem in plain English and get instant, context-aware solutions
  • Time Multiplication: What would have taken 6-8 weeks took only 3 weeks, with ~60% reduction in debugging time
  • Hands-Free Efficiency: From fixing bugs to generating git commits to executing complex commands—all through natural language, keeping my hands on the keyboard and mind on the problem

Built with ❤️ for anime learners everywhere, powered by GitHub Copilot CLI

Top comments (0)