Skip to content

MoriNo23/DuoFlash-Anki

Repository files navigation

DuoFlash Anki

DuoFlash Anki

Convierte automáticamente tus errores de Duolingo en tarjetas de Anki

Version License Firefox Chrome


📸 Demo

Duolingo Lesson → Detect Errors → Gemini AI → Anki Cards
     🎯               🔍              🤖           📚

Cuando terminas una lección de Duolingo, DuoFlash Anki detecta tus errores y genera automáticamente un mazo de Anki con tarjetas personalizadas para repasar.

⚡ Quick Start

1. Instalar Anki + AnkiConnect

# 1. Descarga e instala Anki
https://apps.ankiweb.net/

# 2. Instala AnkiConnect desde Anki
# Repositorio: https://github.com/FooSoft/anki-connect
Herramientas → Complementos → Obtener complementos → 2055492159

# 3. Mantén Anki abierto mientras usas la extensión

2. Obtener API Key de Gemini

  1. Ve a Google AI Studio
  2. Crea una API Key gratuita
  3. Guárdala para el paso 4

3. Instalar la Extensión

Desde el código fuente:

# Clona el repositorio
git clone https://github.com/MoriNo23/DuoFlash-Anki.git
cd DuoFlash-Anki
pnpm install

Firefox:

pnpm run build:firefox

Luego en Firefox: about:debugging → "Cargar complemento temporal" → selecciona .output/firefox-mv2/

O instala desde Firefox Add-ons

Chrome:

pnpm run build:chrome

Luego en Chrome: chrome://extensions/ → Modo desarrollador → "Cargar descomprimida" → .output/chrome-mv3/

4. Configurar

  1. Click en el icono de la extensión en la barra de herramientas
  2. Pega tu API Key de Gemini
  3. ¡Listo! Comienza una lección en Duolingo

✨ Características

  • 🤖 Inteligente: Usa Gemini AI para generar explicaciones contextualizadas
  • ⚡ Automático: Detecta errores sin intervención manual
  • 🌍 Multi-idioma: Soporta todos los idiomas de Duolingo
  • 📱 Multi-navegador: Firefox y Chrome
  • 🎯 Direccional: Genera mazos UI Language → Learning Language
  • 🔄 Repaso espaciado: Integra Anki con tu práctica diaria

🎯 Cómo Funciona

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│  Duolingo   │────▶│   Extensión  │────▶│   Gemini    │
│   Lesson    │     │ (Background) │     │     AI      │
└─────────────┘     └──────────────┘     └─────────────┘
       │                     │                    │
       ▼                     ▼                    ▼
  /batch            Captura errores         Genera mazo
  /challenge_         + metadatos           educativo
  response/batch           │                    │
                           ▼                    ▼
                    ┌──────────────┐     ┌─────────────┐
                    │   Content    │────▶│    Anki     │
                    │    Script    │     │  Connect    │
                    └──────────────┘     └─────────────┘
  1. Intercepta: Captura peticiones a los endpoints de Duolingo
  2. Detecta: Identifica errores al finalizar la lección
  3. Procesa: Gemini genera tarjetas con contexto
  4. Crea: AnkiConnect crea el mazo automáticamente

🛠️ Desarrollo

# Clonar
https://github.com/MoriNo23/DuoFlash-Anki
cd DuoFlash-Anki

# Instalar dependencias
pnpm install

# Desarrollo
pnpm run dev:firefox      # Firefox MV2
pnpm run dev             # Chrome MV3

# Build para distribución
pnpm run build:firefox   # .output/firefox-mv2/
pnpm run build:chrome    # .output/chrome-mv3/
pnpm run zip:all         # Genera archivos .zip

Estructura del Proyecto

entrypoints/
  ├── background.ts          # Service worker / Background script
  ├── content.ts             # Content script inyectado en Duolingo
  └── popup/
      ├── index.html         # UI del popup
      ├── index.js           # Lógica del popup
      └── style.css          # Tailwind + estilos

util/
  ├── geminiService.ts       # Integración Gemini AI
  ├── ankiService.ts         # Comunicación AnkiConnect
  └── observadorDeLeccion.ts # Detección de navegación

🐛 Troubleshooting

Las tarjetas no aparecen en Anki:

  • Verifica que Anki esté abierto
  • Confirma que AnkiConnect esté instalado (código: 2055492159)
  • Revisa la consola del popup (click derecho → Inspeccionar)

Errores de API Key:

  • Asegúrate de tener una API Key válida de Google AI Studio
  • Verifica que la key esté guardada en el popup de la extensión

La extensión no detecta errores:

  • Confirma que estás en una lección de Duolingo (no en práctica de historias)
  • Recarga la página de Duolingo
  • Verifica la consola del service worker en about:debugging (Firefox) o chrome://extensions/ (Chrome)

🤝 Contribuir

¡Las contribuciones son bienvenidas!

  1. Fork el repositorio
  2. Crea una rama: git checkout -b feature/nueva-feature
  3. Commit: git commit -m 'feat: agrega nueva feature'
  4. Push: git push origin feature/nueva-feature
  5. Abre un Pull Request

Ideas para Contribuir

  • Tests automatizados
  • Estadísticas de aprendizaje
  • Soporte para Duolingo Stories
  • Configuración de plantillas de tarjetas
  • Exportar/importar mazos
  • Modo offline

📋 Roadmap

  • Soporte Firefox MV2
  • Soporte Chrome MV3
  • Integración Gemini AI
  • Popup vanilla JS con Tailwind
  • Configuración avanzada de mazos
  • Estadísticas y analytics
  • Tests automatizados
  • Internacionalización del popup

📝 Licencia

MIT © MoriNo23

Disclaimer: Proyecto de investigación y estudio de idiomas. No afiliado con Duolingo, Anki, ni Google.

💬 Soporte


Hecho con ❤️ para la comunidad de aprendices de idiomas

About

Firefox extension that integrates Duolingo errors with Anki using Gemini AI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors