Этот проект является учебным проектом, реализованным на основе roadmap.sh https://roadmap.sh/projects/task-tracker
Трекер задач — это приложение для отслеживания и управления вашими задачами. В рамках этого проекта вы создадите простой интерфейс командной строки (CLI), который позволит вам отслеживать, что нужно сделать, что уже сделано и над чем вы работаете в данный момент. Этот проект поможет вам попрактиковаться в программировании, включая работу с файловой системой, обработку пользовательского ввода и создание простого CLI-приложения.
Приложение должно запускаться из командной строки, принимать действия пользователя и входные данные в качестве аргументов, а также хранить задачи в JSON-файле. Пользователь должен иметь возможность:
- Добавлять, обновлять и удалять задачи.
- Отмечать задачу как "в процессе" или "завершено".
- Просматривать список всех задач.
- Просматривать список завершенных задач.
- Просматривать список незавершенных задач.
- Просматривать список задач, находящихся в процессе выполнения.
Ниже приведены ограничения для реализации:
- Вы можете использовать любой язык программирования для создания этого проекта.
- Используйте позиционные аргументы в командной строке для приема пользовательского ввода.
- Храните задачи в JSON-файле в текущей директории.
- JSON-файл должен быть создан, если он не существует.
- Используйте родной модуль файловой системы вашего языка программирования для взаимодействия с JSON-файлом.
- Не используйте сторонние библиотеки или фреймворки для создания этого проекта.
- Убедитесь, что ошибки и крайние случаи обрабатываются корректно.
Примеры команд и их использования приведены ниже:
# Добавление новой задачи
task-cli add "Купить продукты"
# Вывод: Задача успешно добавлена (ID: 1)
# Обновление и удаление задач
task-cli update 1 "Купить продукты и приготовить ужин"
task-cli delete 1
# Отметка задачи как "в процессе" или "завершено"
task-cli mark-in-progress 1
task-cli mark-done 1
# Просмотр всех задач
task-cli list
# Просмотр задач по статусу
task-cli list done
task-cli list todo
task-cli list in-progress
Каждая задача должна иметь следующие свойства:
id
: Уникальный идентификатор задачи.description
: Краткое описание задачи.status
: Статус задачи (todo, in-progress, done).createdAt
: Дата и время создания задачи.updatedAt
: Дата и время последнего обновления задачи.
Убедитесь, что эти свойства добавляются в JSON-файл при создании новой задачи и обновляются при изменении задачи.