Skip to content

Latest commit

 

History

History
44 lines (38 loc) · 4.29 KB

test_generator.md

File metadata and controls

44 lines (38 loc) · 4.29 KB

Генератор на тестове

Направете gem за Ruby, който да съхранява и управлява въпроси за тестове (със затворени отговори). На базата на тези въпроси, библиотеката трябва да може да генерира тестове в удобен за разпечатване формат.

Функционалности

Долуописаните функционалности трябва да са достъпни както чрез изпълнима команда към gem-a, така и чрез програмен интерфейс (директно използване на класовете на библиотеката ви).

  • Съхранение на въпроси в различни категории. Как ще става сърханението решавате вие - например, две възможни опции са файлове или база от данни.
    • Ако ще използвате файлове - съдържанието им трябва да е във формат, лесен за "ръчна" модификация от човек (например markdown, html, yaml или нещо подобно).
    • Ако ще използвате база от данни, за улеснение, можете да ползвате ORM като ActiveRecord
  • Промяна и изтриване на въпроси.
  • Търсене на въпроси по категория и по описание.
  • Всеки въпрос може да има произволен брой възможни отговори.
  • Генериране на тестове със следните параметри:
    • Общ брой въпроси
    • Брой въпроси от всяка категория
    • Брой варианти
  • Генериране на различни варианти на един и същ тест. За всеки вариант въпросите, както и отговорите им се разбъркват.
  • Тестовете се генерират като PDF файлове - по един за всеки вариант. Може да използвате библиотека за работа с PDF-и.
    • За да е полезен теста - на първата страница трябва да има името на дисциплината, дата, на която ще се проведе теста, както и полета за факултетен номер и имена. Направете възможност за лесно разширение на тези заглавия. Тоест, трябва да може без да се променя кода на библиотеката да се задава какво да има в заглавието. Например, за някои тестове може да няма поле за факултетен номер, или пък да има подзаглавие. Направете го възможно най-разширяемо.
  • Към всеки вариант трябва да има и "ключ" - отделен PDF, в който са написани верните отговори.
  • Въпросите (и отговорите) трябва да поддържат форматиране - като минимум bold, italic, блокове за код (с monospaced шрифт и индентация). Всеки въпрос трябва да може да съдържа и картинка.

Бележки

  • Имплементацията на форматът, чрез който се задават форматиранията на въпросите и отговорите от потребителя, трябва да е изцяло ваша. Тоест, можете да задавате въпросите като markdown, но без да използвате библиотеки за работа с markdown.