CMDLine-wizard
Разработать графическую обёртку для одной или нескльких консольныхутилит в отечественных операционных системах »Альт» (на примере ОС «Альт Образование»).
Пограмма предназаначена для решения одной или нескольких пользовательских задач, выбор из которых с описанием конуретной задачи и требуемых для неё данных предлагается при старте. В дальнейшем программа организует диалог с пользователем, в процессе котрой он вводит или выбирает необходимые для решения данные (файлы, ключи утилиты, меняющие её поведение, текстовые данные и т. п.). Программа должна показывать сформированный к каждому шагу фрагмент командной строки и давать возможность изучить соответстующую часть документации. Результатом работы должен быть запуск сформированных команд командной строки и показ/обработка диагностических сообщений от них.
- Установить «Альт Образование» на компьютер (воспользуйтесь инструкциями по установке). Познакомиться с операционной системой.
- Выбрать консольную утилиту, изучить все возможности утилиты. Здесь и далее допустимо использовать несколько утилит, если того требует решение задачи.
- Сформулировать задачу, которую пользователь может решить с ее помощью. Сформулировать набор готовых решений для задачи.
- Выразить каждое решение на языке утилиты.
- Создать описания решаемых задач и пояснения к диалогам.
- Спроектировать интерфейс графической обёртки.
- Выбрать средство разработки, язык для разработки графического интерфейса.
- Создать проект графического интерфейса в виде серии иллюстраций с описанием последовательности показа и общей логики работы. Интерфейс шага должен включать в себя вводимый элемент, описание формируемого фрагмента командной строки, показ уже сформированного фрагмента и возможность посмотреть подробную документацию
- Реализовать заявленное приложение, включая возможные ограничения по вводу некорректных данных и анализ диагностических сообщений и кодов ошибки утилит.
- Создать полный набор тестов для проверки корректности работы программы.
- Протестировать корректность работы программы для каждого из готовых решений.
Ожидаемый результат работы:
- Графическая утилита, реализующая все возможности консольной утилиты с удобным графическим интерфейсом.
- Открытый исходный код программы выложен на общедоступном ресурсе (например, Github).Методические рекомендации по использованию утилиты.
- Фото и видеоотчет о проделанной работе.
4. Как решить задание?
Этап 1. Теоретическая подготовка и предварительные исследования.
1.1. Проанализировать имеющиеся консольные утилиты в составе ОС, а также, возможно, в репозитории Альт.
1.2. Выбрать утилиту (здесь и далее допустим также набор утилит), для которой будет разработана обёртка, и изучить все её возможности. Изучить man утилиты.
1.3. Проработать постановку задач, которые может решить пользователь с ее помощью.
1.4. Подготовить под каждую из задач набор ключей консольной утилиты, параметры которой необходимо задать пользователю для реализации решения этой задачи
1.7 Подготовить пояснительный материял для постановки задач и задействованных ключей/параметров утилиты
Приведем пример.
Выбрана консольная утилита ffmpeg.
Документация: http://ffmpeg.org/ffmpeg.html#SEC8
Решаемая задача: запись, конвертирование и передача цифровых аудио- и видеозаписей в различных форматах.
Набор готовых решений пользователя, которые можно реализовать с помощью этой утилиты (неполный, для примера):
1) удалить аудиодорожку из видеозаписи;
2) вырезать заданный фрагмент видеозаписи;
3) порезать видео на картинки;
4) превратить набор картинок в видео.
Решение задачи на языке утилиты:
1) без перекодирования видео ffmpeg -i [input_file] -vcodec copy -an [output_file]
- Текст с постановкой задачи и описанием того, что такое входной и выходной файл и чем отличаются решения с перекодированием и без перекодивраония видео
- Тексты с объяснением ключей -i, -vcodec, -an, -c
2) ffmpeg -ss <начало> -t <продолжительность> -i [input_file] -sameq [output_file]
Текст с постановкой задачи и описанием того, что такое входной и выходной файл, <начало> и <продолжительность>
- Тексты с объяснением ключей -i,-ss, -t, -sameq
3) ffmpeg -i [input_file] [output_file]%d.jpg.
- Текст с постановкой задачи и описанием того, что такое входной файл и выходной файл
- Текст с объяснением принципов работы шаблона %d в имени выходного файла
4) ffmpeg -f image2 -i [input_file]%d.jpg [output_file]
- Текст с постановкой задачи и описанием того, что такое входной файл и выходной файл
- Тексты с объяснением ключей -f и -i и принципов работы шаблона %d в имени входного файла
Этап 2. Разработка графического интерфейса.
2.1. Продумать графические элементы для каждого из готовых решений. Предусмотреть:
- элемент интерфейса с описанием добавляемого в командную строку фрагмента (в том числе в случае, когда на одном шаге добавляется сразу несколько параметров)
- элемент интерфейса, в котором будет выводиться командная строка, формируемая в зависимости от выбора значений параметров;
- элемент интерфейса, который даст возможность прочитать полную документацию;
2.2. Подобрать расположение элементов графического интерфейса. Разработать дизайн графического интерфейса.
2.2. Выбрать средство разработки, язык для разработки графического интерфейса.
2.3. Создать графический интерфейс.
2.4. Разработать интерфейсы передачи утилите внешних данных, если ей таковые требуются, а так же получения и анализа результата работы.
Этап 3. Разработка системы помощи и методик использования утилиты.
- Разработать справочную информацию по работе с утилитой. Возможно, понадобиться помощь переводчика.
- Разработать примеры использования утилиты с объяснениями.
Этап 4. Заключительный.
- Подготовить отчет-презентацию (видео) о проделанной работе.
- Отправка отчета.
- Подготовка к финальным мероприятиям.