Возможно есть какие-то фронтенд библиотеки для организации тестов, прохождение упражнений, аудирований и тд(То есть разного типа задания, разной структуры). Возможно уже написаны все эти компоненты. Если нет, то как лучше это организовать, как хранить в бд эту информацию для более эффективного использования? Поделитесь своими мыслями или идеями подходов, спасибо.
Ambrosian Это конечно славно, что вы ответили и спасибо Вам за ответ. Я дам вам возможность написать еще один ответ на следующий вопрос: скажите, какой толк тратить свое время и писать бесполезные ответы?
Это конечно славно, что вы ответили и спасибо Вам за ответ. Я дам вам возможность написать еще один ответ на следующий вопрос: скажите, какой толк тратить свое время и писать бесполезные ответы?
Почему бесполезные?
Глядишь, один-два-три ответа - и вы уже поймете, что в этой сфере нужно именно программировать, а не искать халявы.
Не существует никаких других волшебных фреймворков/библиотек под вашу конкретную задачу.
Ambrosian Иногда прежде чем что-то городить свое, конструировать еще один велосипед, проще изучить адьтернативы на рынке. Кто-то может уже что-то делал подобное, сталкивался или просто где-то видел.
И если такие решения уже есть, то все же лучше их изучить на предмет пригодности для твоей задачи. Как минмум ты увидишь, какие у них есть/были слабые места, с какими проблемами сталкивались и учтешь это в будущем.
Почему бесполезные?
Q: Есть ли библиотеки и какие решают задачу X ?
A: практически любая фронтенд-библиотека подходит.
Да ну ладно? Даже если так, то все же не любая подойдет, с одной будет больше проблем, с другой меньше и тд.
Это как приехать на заправку и спросить:
- каким топлимов заправляться можно?
- да заправляться можно практически любым...
Иногда прежде чем что-то городить свое, конструировать еще один велосипед, проще изучить адьтернативы на рынке. Кто-то может уже что-то делал подобное, сталкивался или просто где-то видел.
В мире CMS - так. Там можно найти плагины на разные случаи жизни, ага.
Вы видимо оттуда пришли.
В мире библиотек и фреймворков - не так.
Там более общие решения присутствуют.
Это конечно славно, что вы ответили и спасибо Вам за ответ. Я дам вам возможность написать еще один ответ на следующий вопрос: скажите, какой толк тратить свое время и писать бесполезные ответы?
А на ваш вопрос "Кто нибудь уже решил эту проблему за меня - я с удовольствием поюзаю готовое решение" ответа и быть не может.
Библиотеки и фреймворки - это несравнимо более общие инструменты для решения задачи.
Они работают на более низком уровне - там в принципе не может быть таких понятий, как вы описали.
знаешь что такое гитхаб? вот сходи посмотри какие бывают либы и во что они могут, какие и на каком уровне задачи рашаются.
Те из них на ГитХабе, что хорошо документированы (а иначе и пользоваться невозможно) - решают только проблемы более общего плана, чем вы хотите. Вам все правильно написали: для решения вашей конкретной задачи готовых решений и быть не может.
Сам тест: Это "дерево" страниц (форм), условий и связей между ними в json-формате.
Самое сложное в процессе разработки - я выделю 2 пункта:
1. Контроль текущего местоположения пользователя в этом "дереве": какую форму отображаем и контроль текущего состояния данных при перемещении туда и обратно по всему "дереву" теста.
2. Правильный подсчёт промежуточных и итоговых результатов, согласно настройкам и условиям из "дерева" форм.
PS: делал лично - мороки достаточно много, если хотите получить в итоге универсальный инструмент...
Спасибо.
А вашем случае "тест" он какого формата? Просто если пойти на разные сайты там есть различного вида тесты:
1. Вопрос и несколько ответов.
2. Дан текст, в нем пропущены слова
- можно вписывать слова
- можно перетаскивать из бокса слова
- можно выбирать из выпадающего списка на месте пропуска
-и тд
(больше даже интересно как вот это хранить в базе ффективно - пропуски слов, возможные варианты и тд)
3. и тд
Спасибо.
А вашем случае "тест" он какого формата? Просто если пойти на разные сайты там есть различного вида тесты:
1. Вопрос и несколько ответов.
2. Дан текст, в нем пропущены слова
- можно вписывать слова
- можно перетаскивать из бокса слова
- можно выбирать из выпадающего списка на месте пропуска
-и тд
(больше даже интересно как вот это хранить в базе ффективно - пропуски слов, возможные варианты и тд)
3. и тд
Это все тривиальная задача для программиста.
Но вы уж очень много хотите - прямо-таки готовое решение.
Максимум что вы можете поиметь - это готовый полный сайт по интересующей вас тематике и см. как там внутри устроен.
Так чтобы существовали отдельные от решения конкретной задачи кем-то разработанные инструменты для описания тестов - в них нет смысла.
Также как и нет смысла делать отдельные инструменты для красный или голубых или синих сайтов.
stratosmi, видел либы на JS для встраивания слайдеров на сайт? Много в них смысла? А либ много.
Либы с формами для комментов? Для добавления рейтинга или прайс листов? Удивительно наверное? Но и такие тоже есть.
И напоследок, я не спрашивал порассуждать на тему сколько смысла в том или ином фреймворке, решение. Я спросил есть ли такие, и если ты не знаешь ни одного и предложить тебе нечего, может просто не отвечать?
Возможно придет какой-нибудь знающий человек позже и что-то ответит. Поделиться опытом.
Vladislav, В моём случае - это целиком бэкенд, тест с разнородными элементами ввода (обычная строка, селекторы, drop-down'ы, мультичекбоксы, textarea, цвета, изображения, канвас и т.д.).
Иерархия - неполносвязный граф: т.е. может менять направление в зависимости от выбранных значений и результатов и зацикливаться при необходимости на несколько циклов.
1. Вопрос и несколько ответов: список вопросов - отдельно, список ответов - отдельно. Связываем их через таблицу "многие-ко-многим", чтобы иметь возможность задавать подобные вопросы и перемешать ответы. В этой же таблице (в связке) задаём верное состояние: ответ должен быть выбран или нет, если он связан с этим вопросом (всего 3 поля: id-вопроса, id-ответа, is_checked).
Задаём подобные через каждые 5 вопросов и мешаем ответы, добавляя их в разные вопросы. Дополнительно, можно создать типы вопросов, в которых участвуют конкретные ответы и т.д.
2. Как хранить пропуски слов: как и обычный файл переводов - с помощью знаков подстановки (для sprintf(), к примеру).
Проще всего (в плане интерактива): inline edit (если нужно вписать по-буквам или вставить верную букву) и on-hover(наведение мышки или клик с чётким! показом доп. слоя с вариантами и местом вставки), если нужно выбрать.
видел либы на JS для встраивания слайдеров на сайт? Много в них смысла? А либ много.
Либы с формами для комментов? Для добавления рейтинга или прайс листов? Удивительно наверное? Но и такие тоже есть.
Это отдельные универсальные компоненты.
В них смысла много, да.
Они универсальные.
Vladislav, хинт:
если бы вы сразу указали что вам нужно генерировать gui для этой задачи и привели пример, то таких "бесполезных ответов" было бы сильно меньше.
Соглашусь с предыдущими ораторами: слишком мала вероятность найти готовое решение под все ваши хотелки. Проще сделать самому.
Stalker_RED, да мне не UI генерировать, UI тут и шаблонизатором вполне себе хорошо сгенериться, что тут только select, radio button. Мне интересно как эффективно это дело хранить и обрабатывать. Вопросы и ответы в бд, с учетом ошибок и проб. Как сохранять и считывать имеется в виду структура связей объектов.
Вообщем ладно, проще видимо действительно самому продумать.
П.С. Но если кто-то делает что-то подобное напишите в лс плз, вместе обговорим