Личный таск-трекер на Laravel: задачи, время и канбан
Разбор внутреннего таск-трекера с проектами, таймером, канбаном, календарём и отчётами.
Зачем таск-трекер внутри портфолио
Вместо отдельного учебного CRUD я сделал инструмент, которым можно пользоваться при развитии самого сайта. Задача хранит проект, статус, приоритет, дедлайн, оценку, теги и признак фокуса дня.
Учёт времени
Есть ручные записи и автоматический таймер. Доменное правило запрещает одновременно запускать таймеры двух задач. При запуске задача переходит в статус «В работе», а после остановки длительность пересчитывается в минутах.
Отчёты группируют время по дням, проектам, статусам и задачам. CSV формируется как сводка: одна строка на задачу и общий итог строго за выбранный период. Поэтому отметки одной задачи в разных месяцах не смешиваются.
Представления
Кроме обычной таблицы появились:
- канбан с drag-and-drop сменой статуса;
- календарь дедлайнов;
- повторяющиеся задачи;
- чек-листы, комментарии, вложения и связи;
- dashboard-виджет работы за сегодня.
Самой полезной частью здесь стали тесты доменных правил: расчёт времени и ограничение активного таймера проверяются без браузера и не зависят от интерфейса Filament.