shiping
An interview assistant and an exam assistant that uses AI to provide solution ideas in real time during 「面试」 or 「在线考试」.
AI translation
Вектор — интерактивный прототип персональной траектории по математике для 5–6 классов
Translation pending
EducationJavaScript · PythonGitHub @ignorov3-makerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Интерактивный учебный прототип по математике — статическая версия для GitHub Pages
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗«Вектор» — учебный прототип по математике для 5–6 классов: ИИ-наставник ведёт ребёнка по теме, показывает дроби на картинках и подстраивает маршрут под темп ученика. Статический сайт для GitHub Pages.
python3 -m http.server 8000 в папке проекта и открыть http://localhost:8000. Можно и просто открыть index.html.main, папка / (root). Сайт появится по адресу https://<логин>.github.io/vektor-math-lab/.Сборка не нужна. Прогресс хранится в localStorage браузера.
[[полоска 3/5]], [[круг 3/8]], [[прямая 3/4]], [[сравнить 1/3 1/5]], [[прямоугольник 2/3 3/4]], [[смешанное 2 1/3]].Сайт — статический (Vercel), данные и логика входа — в Supabase. Публичный ключ и адрес базы лежат в config.js.
База. В Supabase → SQL Editor по очереди выполнить supabase/schema.sql, supabase/test.sql, supabase/admin.sql, supabase/teacher.sql, supabase/pulse.sql, supabase/ai.sql, supabase/pilot_report.sql. Расход ИИ в долларах по дням — select * from vk_ai_cost;, дневной бюджет — vk_settings.ai.usd_day (по умолчанию $3). Демо для сцены — docs/demo.md.
Серверная функция наставника — supabase/functions/tutor, секрет OPENROUTER_API_KEY (Edge Functions → Secrets).
Администрирование — в SQL Editor:
| Что | Команда |
|---|---|
| Создать 80 профилей и получить пароли | select * from vk_seed(80, '5А:1-28,5Б:29-56,5В:57-80'); |
| Раздать профили по классам | select vk_assign('5А', 1, 28); |
| Контрольный класс (только тест) | select vk_class_group('5Б', 'control'); |
| Учитель | select vk_teacher('uchitel', 'пароль', 'Имя', '5А,5Б'); (5-й параметр true — видит всех) |
| Новый пароль ученику | select vk_reset('ученик17'); |
| Выключить / включить ИИ, лимиты | select vk_ai_set(false); · select vk_ai_set(true, 30, 3000); |
| Расход ИИ по дням | select * from vk_ai_report; |
| Обезличенная выгрузка | select * from vk_export_events; · select * from vk_export_tests; → Export CSV |
| Стереть данные ученика по заявлению родителя | select vk_wipe_student('ученик17'); |
Кабинет учителя — teacher.html (вход — ссылка на экране входа ученика):
Тест до и после. Две формы по 18 заданий (supabase/test.sql), класс получает форму по жребию, после — другую.
Ответы проверяет база, в браузер правильные ответы не попадают. Формы нужно вычитать методисту до пилота.
С сервером сайт показывает экран входа, а прогресс каждого ученика хранится в базе: можно сесть за любой компьютер. Без сервера (GitHub Pages, файл с диска) всё работает как раньше.
public_html) — через «Файловый менеджер» или FTP. Папка server/ не нужна.api/config.example.php в api/config.local.php и вписать данные базы.php api/tools/seed.php --count=80 --site=https://ваш-домен.ru --classes="5А:1-28,5Б:29-56,5В:57-80"
php api/tools/seed.php --teacher=uchitel --teacher-name="Мария Ивановна" --teacher-classes="5А,5Б,5В"
Команда печатает пароль учителя и кладёт в api/tools/out/ два файла: slips_….html — бумажки (12 на лист A4, открыть в браузере и распечатать) и logins_….csv — список для учителя. Скачайте их и удалите с сервера: в базе пароли хранятся только как хеш.php api/tools/seed.php --reset=ученик17 (прогресс сохранится).Логины — ученик1…ученик80, пароль — слово и 4 цифры (зоолог5679). Регистр и пробелы не важны, на английской раскладке подсказка «Смени язык».
5 ошибок подряд блокируют вход на 5 минут. Кнопка «Выйти» — вверху; на общем компьютере выход сам через 20 минут бездействия.
Без интернета ответы копятся в браузере и уходят, когда связь вернётся.
Без подключения наставник работает по конспекту: ведёт урок по методичке и отвечает на простые вопросы. Чтобы он отвечал на любые вопросы, есть два способа (Настройки → ИИ-наставник):
localStorage этого браузера.
Никогда не коммитьте ключ в репозиторий — сайт на GitHub Pages публичный.cd server
npx wrangler login
npx wrangler secret put OPENROUTER_API_KEY # вставьте ключ OpenRouter
npx wrangler deploy # получите адрес вида https://vektor-tutor.<имя>.workers.dev
В server/wrangler.toml укажите адрес своего сайта в ALLOWED_ORIGINS. Прокси принимает запросы только с него,
пропускает только модели из ALLOWED_MODELS и ограничивает длину ответа. Адрес воркера вставьте в настройках «Вектора».Модель по умолчанию — deepseek/deepseek-v4-flash (на октябрь 2026 ≈ $0.014 / $0.35 за миллион входящих / исходящих токенов,
то есть порядка 10–15 центов на тысячу ответов). Список моделей: https://openrouter.ai/deepseek.
content/fractions.js — методички и генераторы задач (уровни 1–3).content/check.js — проверка ответов: дроби, смешанные числа, знаки сравнения.content/visuals.js — рисунки дробей, теги картинок для наставника, лаборатория.content/adaptive.js — модель ученика: темп, уровень задач, норма тренировки.content/tutor.js — ИИ-наставник: промпт по методичке, OpenRouter со стримингом, офлайн-режим.content/game.js — звёзды, звания, цель дня, серия дней, достижения.app.js — экраны и прогресс; style.css, skins.css — оформление.server/ — прокси для Cloudflare Workers.tests/ — автотесты (см. ниже).| Ключ | Что хранит |
|---|---|
vektor-progress-v3 | progress — % по каждой теме; meta[темa] — тренировка, уровень задач, ошибки, подсказки, время, даты повторения, проваленные проверки; attempts — последние 60 попыток (для расчёта темпа); diag — диагностика; settings — имя и стиль объяснений; days — дни занятий |
vektor-ai | режим наставника (off / key / proxy), ключ OpenRouter или адрес прокси, модель |
vektor-progress-v3 → game | звёзды, полученные достижения, цель дня и задачи за сегодня, серия дней, счётчики для достижений |
vektor-skin | выбранный стиль оформления |
Переписка с наставником в браузере не сохраняется — живёт до перезагрузки страницы.
Урок с наставником ──► Тренировка ──► Проверка (4 задачи, зачёт от 3) ──► Повторение через 1, 3, 7 дней
▲ │ ошибка → подсказка / наставник
│ │ 2 чистых быстрых решения → задачи сложнее
│ │ 2 ошибки подряд → задачи проще
└── проверка не сдана дважды → сначала повторить базовую тему
node tests/generators.test.js # 27 000 задач: свой ответ принимается, ошибки распознаются
node tests/tutor.test.js # отрисовка ответов, теги картинок, промпт, темп
node tests/worker.test.mjs # прокси: белые списки, лимиты, CORS
node tests/game.test.js # звёзды, цель дня, серия, достижения
python tests/e2e_scenarios.py # 61 сценарий в браузере (нужен playwright), OpenRouter подменён
python tests/server_scenarios.py # PHP-вариант: вход, прогресс на сервере, работа без сети (нужен php с pdo_sqlite)
python tests/supabase_scenarios.py # Supabase-вариант: 45 сценариев — вход, тест до/после, кабинет, ИИ через сервер (нужны Postgres и bun)
Добавьте объект в массив topics в content/fractions.js (или новый файл раздела) с полями
id, title, goal, requires, explain, mistakes, generate(lv) и запустите тесты. Наставник автоматически возьмёт методичку темы в свой промпт.