Skip to content

chomosuce/kompegeGen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kompegeGen

kompegeGen — это консольное приложение на Kotlin для генерации вариантов задач по материалам kompege.ru.

Проект нужен для того, чтобы быстро собирать индивидуальные варианты по номерам заданий, не выдавая ученику задачи, которые он уже решал. Программа хранит локальную базу идентификаторов задач, ведет учет решенных задач по каждому ученику и формирует PDF-файл с новым вариантом.

Что делает проект

Приложение при запуске:

  • запрашивает с kompege.ru список задач по номерам 1..27, кроме 20 и 21;
  • сохраняет найденные taskId в локальную SQLite-базу;
  • запускает интерактивную консоль с командами для работы с вариантами.

При генерации варианта программа:

  • берет по одной задаче для каждого номера;
  • исключает задачи, которые уже отмечены как решенные у конкретного ученика;
  • сохраняет состав варианта в базе;
  • автоматически помечает выданные задачи как решенные для выбранного ученика;
  • создает HTML и PDF с текстами задач.

Для кого это

Проект полезен преподавателю или репетитору, которому нужно:

  • собирать новые варианты без ручного подбора;
  • вести простой локальный учет уже выданных или решенных задач;
  • получать готовый PDF для печати или отправки ученику.

Команды

  • /help — показать список доступных команд.
  • /variant [studentId] — сгенерировать новый вариант для ученика. Если studentId не указан, используется default.
  • /solved <taskId> или /solved <studentId> <taskId> — отметить задачу как решенную.
  • /check <taskId> или /check <studentId> <taskId> — проверить, отмечена ли задача как решенная.
  • /exit — завершить программу.

Как запустить

Требования:

  • Java 17+
  • Maven

Запуск в режиме разработки:

mvn exec:java

Сборка jar:

mvn clean package

После сборки будет создан fat-jar, который можно запускать отдельно.

Технически

Проект использует:

  • Kotlin 1.9
  • OkHttp для запросов к API kompege.ru
  • kotlinx.serialization для разбора JSON
  • SQLite для локального хранения данных
  • openhtmltopdf и jsoup для подготовки HTML и генерации PDF

Ограничения текущей реализации

  • Логика генерации варианта пока базовая: для каждого номера берется первая подходящая задача из локального списка.
  • При старте приложение заново подтягивает список задач с API.
  • Задачи, попавшие в сгенерированный вариант, сразу помечаются как решенные для ученика.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors