<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: bhushangitfull</title>
    <description>The latest articles on Forem by bhushangitfull (@bhushangitfull).</description>
    <link>https://forem.com/bhushangitfull</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F800686%2F0835a7ea-75ac-4a43-b9e2-edb85a1bea37.jpeg</url>
      <title>Forem: bhushangitfull</title>
      <link>https://forem.com/bhushangitfull</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/bhushangitfull"/>
    <language>en</language>
    <item>
      <title>Koji: Learn Japanese Through Anime with AI-Powered Vocabulary Extraction</title>
      <dc:creator>bhushangitfull</dc:creator>
      <pubDate>Sat, 14 Feb 2026 04:32:52 +0000</pubDate>
      <link>https://forem.com/bhushangitfull/koji-learn-japanese-through-anime-with-ai-powered-vocabulary-extraction-bln</link>
      <guid>https://forem.com/bhushangitfull/koji-learn-japanese-through-anime-with-ai-powered-vocabulary-extraction-bln</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/github-2026-01-21"&gt;GitHub Copilot CLI Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Koji&lt;/strong&gt; 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.&lt;/p&gt;

&lt;h3&gt;
  
  
  Core Features
&lt;/h3&gt;

&lt;p&gt;🎌 &lt;strong&gt;Smart Subtitle Analysis&lt;/strong&gt; - 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.&lt;/p&gt;

&lt;p&gt;📚 &lt;strong&gt;Interactive Flashcards&lt;/strong&gt; - 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.&lt;/p&gt;

&lt;p&gt;🎯 &lt;strong&gt;Adaptive Quizzes&lt;/strong&gt; - Multiple-choice quizzes automatically created from extracted vocabulary, with progress tracking and points system to keep learners motivated.&lt;/p&gt;

&lt;p&gt;🏆 &lt;strong&gt;Gamification System&lt;/strong&gt; - Daily streaks, tier progression (Beginner → Expert), weekly leaderboards, and achievement badges encourage consistent study habits.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  What It Means to Me
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Video Walkthrough
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://youtube.com/shorts/FwIFNOCSEh0?si=eYjnJkGE2bkJwvdJ" rel="noopener noreferrer"&gt;https://youtube.com/shorts/FwIFNOCSEh0?si=eYjnJkGE2bkJwvdJ&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Screenshots
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjut5qg9up6bnl8r53vz.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkjut5qg9up6bnl8r53vz.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsv4xqv1sm4az4xu52yxv.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsv4xqv1sm4az4xu52yxv.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmjltjdobmq7lqdu6q7q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmjltjdobmq7lqdu6q7q.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb9zwg2g6bpqn3sjwm57.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb9zwg2g6bpqn3sjwm57.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv406msvavyoq5zh843u9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv406msvavyoq5zh843u9.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvex97s1mj25n45i9hsy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgvex97s1mj25n45i9hsy.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49dnmovcfgvo0th65moi.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F49dnmovcfgvo0th65moi.jpeg" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1h1wndl0keefqcto6fyw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1h1wndl0keefqcto6fyw.jpeg" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsfa0p58lm7ylp4bdgzp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsfa0p58lm7ylp4bdgzp.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7ozl4za9bx39vvmyjbh.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7ozl4za9bx39vvmyjbh.jpeg" alt=" " width="720" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Progress Dashboard&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvia.placeholder.com%2F800x400.png%3Ftext%3DProgress%2BDashboard" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fvia.placeholder.com%2F800x400.png%3Ftext%3DProgress%2BDashboard" alt="User stats showing streak, words learned, and weekly activity" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Architecture
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Technical Achievements:&lt;/strong&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Impact on Development Speed
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before Copilot CLI:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Research → Stack Overflow → Documentation → Trial &amp;amp; Error → Success&lt;/li&gt;
&lt;li&gt;Estimated time for Japanese tokenizer: &lt;strong&gt;8-10 hours&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Database schema iteration: &lt;strong&gt;6+ hours&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;With Copilot CLI:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Describe problem → Get solution → Understand explanation → Implement → Success
&lt;/li&gt;
&lt;li&gt;Actual time for tokenizer: &lt;strong&gt;~3 hours&lt;/strong&gt; (including testing edge cases)&lt;/li&gt;
&lt;li&gt;Database schema: &lt;strong&gt;~2 hours&lt;/strong&gt; (with proper RLS from start)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Overall Project Timeline:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;3 weeks instead of estimated 6-8 weeks&lt;/li&gt;
&lt;li&gt;~60% reduction in debugging time&lt;/li&gt;
&lt;li&gt;Near-zero time spent searching documentation for syntax&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Lessons Learned
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Natural Language is Powerful&lt;/strong&gt;: Describing problems in plain English often yielded better solutions than trying to construct technical search queries&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Context Matters&lt;/strong&gt;: The more specific my prompts (including error messages, file contexts, and expected behavior), the better the suggestions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;CLI &amp;gt; IDE Extension for Context Switching&lt;/strong&gt;: When working across terminal, database, and code editor, the CLI kept me in flow state without switching mental contexts&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Favorite Copilot CLI Moment
&lt;/h3&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslufiz0kj6hgqmzqckxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslufiz0kj6hgqmzqckxu.png" alt=" " width="800" height="194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My favorite  command was&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;/agent&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
, so I could have automation like running dev-command and git command when there are changes in the code &lt;/p&gt;

&lt;p&gt;And&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;/yolo&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 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&lt;br&gt;
&lt;br&gt;
 &lt;code&gt;/yolo&lt;/code&gt;&lt;br&gt;
&lt;br&gt;
 command to get all the information about the project.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Copilot CLI: My Secret Weapon
&lt;/h3&gt;

&lt;p&gt;GitHub Copilot CLI became indispensable for three key reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Focus Preservation&lt;/strong&gt;: No more breaking concentration to search Stack Overflow or documentation—just describe the problem in plain English and get instant, context-aware solutions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Time Multiplication&lt;/strong&gt;: What would have taken 6-8 weeks took only 3 weeks, with ~60% reduction in debugging time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hands-Free Efficiency&lt;/strong&gt;: 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&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Built with ❤️ for anime learners everywhere, powered by GitHub Copilot CLI&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>githubchallenge</category>
      <category>cli</category>
      <category>githubcopilot</category>
    </item>
  </channel>
</rss>
