Цель
Добавить возможность загрузки данных напрямую из открытого API ИТМО, чтобы CLI всегда работал с актуальной информацией о программах и конкурсных группах без необходимости вручную обновлять JSON-снимки.
Контекст
Сейчас данные хранятся в статических JSON-файлах (data/2024/, data/2025/, data/2026/). Это надёжно и быстро, но требует периодического ручного обновления. API ИТМО позволит получать свежие данные по запросу.
Что нужно реализовать
Этап 1. Исследование API
- Изучить эндпоинты API
abit.itmo.ru
- Определить форматы запросов и ответов
- Документировать найденные эндпоинты
Этап 2. Реализация загрузчика
- Новый модуль
src/api.ts для HTTP-запросов к API
- Команда
--fetch для загрузки свежих данных
- Кэширование ответов в локальные JSON (опционально)
- Сохранение совместимости с существующим форматом снимков
Этап 3. Умное обновление
- Команда
--diff для сравнения снимков разных лет
- Подсветка изменений: новые программы, изменившиеся баллы, убранные группы
- Экспорт диффа в JSON для автоматизации
Результат
CLI может работать как с локальными снимками (offline), так и с живыми данными (online), автоматически конвертируя ответ API во внутренний формат.
Связь с другими задачами
Цель
Добавить возможность загрузки данных напрямую из открытого API ИТМО, чтобы CLI всегда работал с актуальной информацией о программах и конкурсных группах без необходимости вручную обновлять JSON-снимки.
Контекст
Сейчас данные хранятся в статических JSON-файлах (
data/2024/,data/2025/,data/2026/). Это надёжно и быстро, но требует периодического ручного обновления. API ИТМО позволит получать свежие данные по запросу.Что нужно реализовать
Этап 1. Исследование API
abit.itmo.ruЭтап 2. Реализация загрузчика
src/api.tsдля HTTP-запросов к API--fetchдля загрузки свежих данныхЭтап 3. Умное обновление
--diffдля сравнения снимков разных летРезультат
CLI может работать как с локальными снимками (offline), так и с живыми данными (online), автоматически конвертируя ответ API во внутренний формат.
Связь с другими задачами