В современном мире умение раскладывать все задачи по приоритету и не забывать выполнять самые важные является одним из самых важных умений. Без инструментальной поддержки этого процесса довольно трудно. Есть значительное число средств общего назначения. Для задач, возникающих в программистких проектах, есть некоторые особенности, и есть много средств, ориентировынных именно на программисткие проекты.
Однако существующие решения имеют недостатки:
Большинство из них web-based и тормозят даже не приличном канале, и не работают без интернета
В случае работы с несколькими проектами нет возможности получить общий список заданий для всех проектов.
Слабая интеграция со средствами разработки (IDE)
Расшифровка темы
Разрабатываемое средство должно обладать следующими возможностями.
Поддержание списка задач, организованного в иерархическую структуру проектов.
Поддержка для каждой задачи приоритета, deadline, планируемого времени выполнения, оценки сложности, и комментариев/заметок.
Возможность просмотра задач для конкретного проекта, а также задач для проекта и всех проектов вложенных в него
Поддержка истории выполненных задач для проекта. Задача, помеченная как выполненая, переносится в историю, и может быть возвращена. Возможен просмотр истории задач -- возможно, на экране списка задач. Должна быть возможность очистки истории.
Должен быть механизм запросов -- показ задач по определенным критериям.
Отдельные "проекты" могут соответствовать внешним источникам -- Trac/Bugzilla или Todoist/RTM. Изменения задач в этих проектах должны синхронизироваться. Измененные или добавленные на удаленном сервере задачи должны отдельно выделятся до команды пользователя.
Интеграция с электронной почтой
План работы
Изучение существующих средств
Изучение литературы по usability
Проектирование и реализация минимальной версии с ограниченными возможностями но уже с возможностями работы с несколькими испочниками.
Итерация
Ожидаемые результаты
Средство управления задачами с поддержкой нескольких источников.
Тема работы
Разработка средства управления задачами.
Подзадачи:
организация иерархической структуры проектов с задачами
реализация поддержки различных атрибутов для задач
реализация хранения истории выполненных задач для проекта
реализация возможности выбора задач по определенным критериям
интеграция проекта с электронной почтой
Расшифровка темы
Разработка универсального средства управления задачами, поддерживающего работу с различными внешними системами (Trac/Bugzilla, Todoist/RTM ...) и предоставляющего простой и удобный способ работы с задачами из разных проектов на одной машине.
Что сделано в этом семестре (исследовательская часть):
исследование принципов usability и принципов проектирования графических интерфейсов
анализ существующих систем управления задачами
изучение model/view программирования с помощью средств Qt4
изучение протокола XML RPC для удаленного вызова функций на сервере
изучение стандарта XML
Что сделано в этом семестре (реализация):
практика программирования с помощью средств Qt4:
компилирование приложений console и gui
использование файла .ui
настройки сигналов, ресурсов, фреймов и лэйаутов
редактирования внешнего вида при помощи стилей CSS
практика model/view программирования с помощью средств Qt4:
применение классов QModelIndex, QAbstractItemModel, QSortFilterProxyModel
использование Drag&Drop
импорт и экспорт моделей в текстовый файл
разработка приложения:
получение списка задач с сервера [вызовы XML RPC при помощи QXmlRpc library или парсинг RSS при помощи QtXml module]
удаленное редактирование атрибутов задач на сервере [вызовы XML RPC при помощи QXmlRpc library, обработка сигнала модели]
поддержка локальных проектов [работа с .xml файлом при помощи QtXml module, специальное окно для добавления проекта]
ведения лога операций [панель для текстового браузера с подсветкой ошибок и статусов]
возможность настройки внешнего вида [при помощи сплиттеров]
Дальнейшая работа
Реализация оставшихся подзадач, изучение необходимых для решения этих задач технологий, связанных с разработкой графических интерфейсов и улучшением usability.
Анатолий Бахмуров писал(а):Антон, вопрос:
что есть результат выполнения пункта "анализ существующих систем управления задачами"?
В результате "анализа существующих систем управления задачами" были сформулированы основные функции, которыми должно обладать разрабатываемое приложение - вы можете найти их в списке "Подзадач" и в "Расшифровке темы".