# NoSQL task instruction
## Пререквизиты
### Moodle
Курс для разработки
- http://e.moevm.info/course/view.php?id=48
### Linux-challenge (LC)
Тестирующая система
- https://task.cub-it.org/
## Добавление задачи
### В Moodle
1. Войти в режим редактирования курса
- 
2. Для упрощения создания новой задачи уже создан шаблон задачи - его необходимо дублировать для каждой новой задачи
- 
3. Редактирование конфигурации задачи
- 
- 
- 
- `task_id` - `loc_id` задачи в LC (которая открывается при запуске)
### В LC
1. Страница создания новой задачи:
- 
- https://task.cub-it.org/admin_tasks
- 
- https://task.cub-it.org/create_task/linux_challenge
2. Поля задачи
- 
- Большинство полей можно заполнить аналогично другим задачам: https://task.cub-it.org/admin_task/44718_4
- `id/loc_id` - желательно заполнять одинаково с использованием id задачи из репозитория (например, с префиксом `nosql_` + `memcached_add_key` = `nosql_memcached_add_key`)
- `Course` - `2586_Введение_в_нереляционные_базы_данных`
- `type` - без изменений
- `docker_image` - `15`
- `memory` - `128`/`256` (если для задачи/БД требуется много RAM)
- `time_limit` - без изменений
- `condition` - текстовое условие задачи (используется html-разметка)
- `bootstrap` - bash-скрипт инициализации контейнера с задачей
- `check` - python-код для запуска тестов через pytest
- Организован в виде функций с префиксом `test_` в названии (необходимо для pytest)
- С помощью команды `s.run('some bash command')` возможно выполнение bash-команды на целевой машине (контейнер с задачей студента, с которым он взаимодействует через терминал), возвращаемое значение - output выполненной команды.
3. После сохранения - задача доступна к открытию через Moodle по `loc_id`