Skip to content

Frolotey1/ConsoleInteractionLibrary

Repository files navigation

Системные требования для библиотеки консольного взаимодействия пользователя через систему меню и диалогов ввода данныx.

1. Суть проекта

Проект предоставляет тестируемые механизмы для организации консольного пользовательского интерфейса:

1) Спец-классы для основного меню взаимодействия с пользователем

2) Диалоги ввода данных с валидацией (числа, строки).

3) Абстракция ввода-вывода для возможности unit-тестирования без участия реальной консоли.

2. Архитектура проекта

Проект включает специализированные классы для работы с библиотекой:

1) Input - абстрактный класс, использующийся для чтения строк из консоли.

2) Output - абстрактный класс, использующийся для вывода данных в консоль. 

3) ConsoleInput - класс-наследник от Input, реализующий методы из абстрактного класса Input.

4) ConsoleOutput - класс-наследник от Output, реализующий методы из абстрактного класса Output. 

5) InputDialog - диалоговый класс для общения с пользователем на уровне консольного взаимодействия.

6) MenuRunner - класс для управления и построением системы списка компонентов, которые отображаются в Menu.

7) Menu - основной класс, отвечающий просто за запуск и показ компонентов, чтобы ими мог пользоваться пользователь.
 

3. Требования к тестируемости и стандарту языка

1) Покрытие тестами публичных методов

2) Использование Boost.Test

3) Отсутствие прямых обращений к std::cin в тестируемых классах

4) Должен быть минимум С++20 стандарт для работы библиотеки.

4. Требования к запуску библиотеки

  1. Первоначально можно скачать репозиторий библиотеки в виде zip-файла или установить через команду git:
git clone https://github.com/Frolotey1/ConsoleInteractionLibrary.git
  1. После клонирования репозитория библиотеки необходимо запустить скриптовой файл проекта 'launch.sh' в директории проекта с помощью команды на разных платформах:
Linux или WSL: sudo bash launch.sh
  1. Если у пользователя на локальной машине отсутствует Boost, то есть вариант загрузки и запуска библиотеки через платформу Docker, но для этого нужне будет иметь сам Docker на своём персональном компьютере или ноутбуке. Ниже представлен способ загрузки библиотеки через Docker после клонирования репозитория на двух ОС:
1) Установка контейнера под библиотеку: Linux и WSL: sudo docker build -t console-library .
2) Запуск контейнера: sudo docker run -it console-library
  1. После успешного запуска скриптового файла пользователь может работать с библиотекой. Для того чтобы работать с ней необходимо прописать директории для самой библиотеки и ее тестов:
src - директория, запускающая основную часть библиотеки.
test - директория, запускающая тесты для библиотеки.

Следующий пример демонстрирует пример работы самой библиотеки после запуска образа (src/test - ввод либо директории src либо test):

Директория: src/test

Если пользователь ввёл не соответствующую директорию, то скриптовой файл выкидывает ошибку с сообщением:

Ошибка: выберите 'src' или 'test'

5. Пример работы библиотеки

Общее название идеи для компонентов: Список действий 
Сколько компонентов хотите добавить: : 2
Название 1 компонента: Действие 
Название действия для 1 компонента: Выполнение действия
Название 2 компонента: Действие 2
Название действия для 2 компонента: Выполнение действия 2
Для добавления элемента выхода напишите 1 (0 - пропустить): 1
Название компонента выхода: Выход
Для тестирования меню напишите 1, для выхода - 0: 1
		Список действий
1) Действие
2) Действие 2
3) Выход
Выберите опцию: 1
Выполнение действия
		Список действий
1) Действие
2) Действие 2
3) Выход
Выберите опцию: 2
Выполнение действия 2
		Список действий
1) Действие
2) Действие 2
3) Выход
Выберите опцию: 3

About

Библиотека консольного взаимодействия с пользователем через систему меню и диалогов ввода данных.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors