Все сервисы
🇬🇧

Lexi - тренажёр английского

SPA для изучения английского со spaced repetition. Локальная SQLite, твой прогресс - твой.

Обновлено 30 мая 2026 г.обучениеenglish
Войди чтобы скачать

Что это

Lexi - SPA-приложение для изучения английского. Spaced repetition (SRS) по словам и фразам, локальная база SQLite, твой прогресс не уходит ни в какие облака.

Можешь развернуть локально, или хостить на своём сервере (Vercel, fly.io - инструкция внутри).

Кому полезно: всем кто учит английский и устал от Duolingo с микротранзакциями.

Что внутри

  • SRS-алгоритм по карточкам (как Anki, но без сложного UI)
  • SQLite локально - бэкап одним файлом
  • TypeScript + Drizzle ORM - типизация end-to-end
  • Адаптивный UI - открывается с телефона в браузере
  • Импорт колод из CSV
  • Audio-произношение через браузерный TTS

Что понадобится

  • Node.js 20+ (проверено на 22.17)
  • npm 10+
  • Telegram-бот через @BotFather
  • OpenRouter API key - openrouter.ai/keys (есть free credits для теста)
  • HTTPS-туннель наружу для Telegram (например cloudflared) - потому что Mini App работает только по HTTPS
  • (опционально) ElevenLabs API key для качественного голоса Lexi

Установка

Полный гайд внутри архива в README.md. Кратко:

Что умеет

  • Диагностика уровня - адаптивный CEFR-тест на старте (A1 → C1)
  • Spaced Repetition - карточки слов с FSRS алгоритмом
  • Тренажёр - собери английскую фразу из плиток (Duolingo-style)
  • Активный словарь в Talk - Lexi подсказывает использовать новые слова, начисляет 🪙 за каждое
  • Сценарии разговора - 16+ ролевых (бармен, врач, customs, recruiter) + 10 дискуссий
  • Алиас - мини-игра на словарь по уровням A1-C1
  • Чтение - 22+ статей с auto-sync с Wikipedia
  • Writing - AI-разбор твоих эссе с feedback по CEFR rubric
  • Battle - соревнование на словарь с другом
  • Голос - TTS через ElevenLabs (или системный fallback), STT через Web Speech API
  • Бот-нотификации - утреннее слово, очередь повторения, weekly stats

1. Установка

# Распакуй архив, перейди внутрь
cd lexi

# Установи зависимости основного проекта
npm install

# Установи зависимости miniapp
cd miniapp && npm install && cd ..

# Скопируй шаблон конфига
cp .env.example .env

# Создай базу
npx drizzle-kit migrate

2. Настройка .env

Открой .env и заполни:

TELEGRAM_BOT_TOKEN:
  • В Telegram открой @BotFather
  • /newbot → имя бота → username (заканчивается на bot)
  • Скопируй токен
OPENROUTER_API_KEY: ELEVENLABS_API_KEY (опционально):

3. HTTPS-туннель (Cloudflared)

Mini App в Telegram открывается только по HTTPS. Самый простой способ:

  • Скачай cloudflared.exe с github.com/cloudflare/cloudflared/releases
  • Положи в bin/cloudflared.exe
  • При запуске run\lexi-tunnel.cmd поднимется туннель и выдаст HTTPS-URL вида https://abc123.trycloudflare.com
  • Этот URL впиши в Mini App настройку у @BotFather: /mybots → твой бот → Bot SettingsConfigure Mini App → URL

4. Запуск

Windows (через готовые скрипты в run/):
  • run\lexi-server.cmd - запуск Node-сервера
  • run\lexi-tunnel.cmd - cloudflared туннель
  • run\show-url.cmd - показать текущий URL туннеля
Mac / Linux:
npm start

5. Автозапуск Windows

Кинь ярлыки на run\lexi-server.cmd и run\lexi-tunnel.cmd в Startup-папку:

%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

Также проверь Power Settings - чтобы комп не засыпал.

6. Деплой на VPS

В deploy/ лежит готовый скрипт под Ubuntu + Caddy + systemd. Подробности в deploy/README.md. По сути: bash deploy.sh на сервере и оно само поднимет всё.

Если что-то не работает

См. troubleshooting в полном README.md - там разобраны типичные кейсы (бот не отвечает, Mini App не открывается, голос не работает, и т.д.).