Skip to content

alekarah/cli-task-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Менеджер Задач — Пет-проект

Простое консольное приложение для управления личными делами и задачами.
Реализовано на двух языках — для демонстрации различий в подходах 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

Запуск проектов

Go версия

cd Go
go run .

Python версия

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)

Доступные команды

  1. list - просмотр всех задач
  2. add - добавление новой задачи
  3. update - универсальное обновление задачи (название, описание, статус, приоритет, дедлайн, теги)
  4. delete - удаление задачи
  5. filter - фильтрация задач по статусу или тегам
  6. search - поиск задач по тексту
  7. sort - сортировка задач (по ID, дате создания, дате обновления, статусу, приоритету)
  8. export - экспорт задач в CSV или Markdown
  9. exit - выход из программы

Особенности реализации

Go версия

  • Использует стандартную библиотеку Go
  • Строгая типизация
  • Структуры и методы
  • Эффективная работа с JSON

Python версия

  • Использует стандартную библиотеку Python
  • ООП подход с классами
  • Type hints для лучшей читаемости
  • Pythonic код

Возможные улучшения

  • Фильтрация задач по статусу
  • Поиск по задачам
  • Сортировка задач (по дате, приоритету, статусу)
  • Добавление приоритетов задач
  • Установка дедлайнов
  • Добавление тегов/категорий
  • Экспорт в другие форматы (CSV, Markdown)
  • Web-интерфейс
  • REST API
  • База данных вместо JSON

Технологии

  • Go: 1.x+
  • Python: 3.7+

Лицензия

MIT

Автор

Александра Саганелидзе

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published