Описание приложения для управления списком задач:
Приложение предоставляет возможность управлять списком задач, где каждая задача характеризуется следующими свойствами:
- Название
- Описание
- Дата завершения
- Дата создания
- Приоритет (низкий, средний, высокий)
Возможности приложения:
- Отображение всех задач: Пользователь может просмотреть список всех задач.
- Добавление новой задачи: При выборе этой опции пользователь вводит название задачи, её приоритет и дату завершения в формате dd.mm.yyyy. После добавления задачи список обновляется и сортируется по приоритету. Обработка исключений предусмотрена для ввода некорректных данных.
- Изменение статуса или удаление задачи: Пользователь выбирает задачу и может изменить её статус или удалить. Логика зависит от текущего статуса задачи и реализована с использованием паттерна "стратегия".
- Удаление задачи: Удалить можно только новую задачу.
- Считывание и выгрузка задач из JSON файла: Приложение проверяет существование файла, считывает задачи из него или предлагает создать новый файл, если он отсутствует. Выгрузка задач в файл происходит при каждом изменении состояния задачи.
- Выделение просроченных задач: При отображении списка просроченные задачи помечаются как "просрочено" и выделяются красным цветом в консоли.
- Сортировка задач: Пользователь может отсортировать список задач по описанию, дате создания или приоритету.