Простое консольное приложение для управления личными делами и задачами.
Реализовано на двух языках — для демонстрации различий в подходах Go и Python.
Это CLI-приложение для управления личными задачами с возможностью:
- Создания новых задач
- Редактирования существующих задач
- Изменения статуса и приоритета задач
- Установки дедлайнов с индикацией просроченных задач
- Добавления тегов для категоризации задач
- Просмотра списка всех задач
- Фильтрации задач по статусу или тегам
- Поиска задач по тексту
- Сортировки задач по различным критериям
- Экспорта задач в CSV и Markdown форматы
- Удаления задач
Данные сохраняются в JSON формате для удобства и переносимости.
cli-task-manager/
├── Go/ # Реализация на Go
│ ├── main.go
│ ├── task.go
│ ├── storage.go
│ ├── go.mod
│ └── README.md
│
├── Python/ # Реализация на Python
│ ├── main.py
│ ├── task.py
│ ├── storage.py
│ └── README.md
│
├── populate_test_data.sh # Скрипт для заполнения тестовыми данными
└── README.md
cd Go
go run .cd Python
python main.pyДля удобства тестирования функций сортировки и фильтрации создан скрипт, который автоматически заполняет обе версии тестовыми задачами:
bash populate_test_data.shСкрипт создаст 10 задач с разными статусами, приоритетами и датами:
- 3 задачи со статусом
done - 3 задачи со статусом
in_progress - 4 задачи со статусом
todo - 3 задачи с приоритетом
high🔴 - 4 задачи с приоритетом
medium🟡 - 3 задачи с приоритетом
low🟢 - 3 задачи с дедлайнами (включая 1 просроченную)
- 6 задач с тегами (backend, api, devops, и др.)
- 📋 todo - задача к выполнению
- ⚙️ in_progress - задача в процессе выполнения
- ✅ done - задача выполнена
- 🔴 high - высокий приоритет
- 🟡 medium - средний приоритет (по умолчанию)
- 🟢 low - низкий приоритет
- Установка срока выполнения задачи
- Автоматическая индикация просроченных задач ⏰
- Поддержка двух форматов ввода:
ДД.ММ.ГГГГ ЧЧ:ММ- полный формат с временемДД.ММ.ГГГГ- только дата (время устанавливается на 23:59)
- Добавление тегов для категоризации задач
- Фильтрация задач по тегам
- Ввод тегов через запятую (например:
работа, срочно, проект) - Отображение тегов с префиксом # (например:
#backend, #api)
list- просмотр всех задачadd- добавление новой задачиupdate- универсальное обновление задачи (название, описание, статус, приоритет, дедлайн, теги)delete- удаление задачиfilter- фильтрация задач по статусу или тегамsearch- поиск задач по текстуsort- сортировка задач (по ID, дате создания, дате обновления, статусу, приоритету)export- экспорт задач в CSV или Markdownexit- выход из программы
- Использует стандартную библиотеку Go
- Строгая типизация
- Структуры и методы
- Эффективная работа с JSON
- Использует стандартную библиотеку Python
- ООП подход с классами
- Type hints для лучшей читаемости
- Pythonic код
- Фильтрация задач по статусу
- Поиск по задачам
- Сортировка задач (по дате, приоритету, статусу)
- Добавление приоритетов задач
- Установка дедлайнов
- Добавление тегов/категорий
- Экспорт в другие форматы (CSV, Markdown)
- Web-интерфейс
- REST API
- База данных вместо JSON
- Go: 1.x+
- Python: 3.7+
MIT