Тестовое задание от ШИФТ Лаб
Цель проекта - разработка системы для трекинга времени, которая позволит пользователям учитывать затраты времени на задачи. Проект направлен на улучшение контроля над выполнением задач и оптимизацию управления временем.
Основные функции:
- Внесение и просмотр времени, потраченного на задачи.
- Оценка предполагаемых затрат времени.
- Управление данными о задачах и пользователях.
Требования заказчика:
- Добавление времени: Пользователь должен иметь возможность вносить данные о времени, которое он потратил на задачу.
- Просмотр времени: Пользователи должны иметь возможность посмотреть, сколько времени потратил тот или иной пользователь на задачу.
- Просмотр суммарного времени на одну задачу от всех пользователей: Возможность посмотреть, сколько было в сумме потрачено на одну задачу времени всеми пользователями, которые работали над этой задачей.
- Удаление записей: Пользователь должен иметь возможность удалить внесенные данные о времени, которое он потратил на задачу.
- Добавление предполагаемого времени: Пользователи должны иметь возможность установить предполагаемое суммарное время для всех пользователей для выполнения конкретной задачи.
Спецификация в формате OpenAPI/Swagger endpoint'ов для реализации описаных выше требований заказчика доступна по ссылке: SpecificationOpenAPI.json.
- POST/tasks: Создать задачу.
- GET/tasks: Получить все задачи.
- GET/tasks/{task_id}: Получить задачу по ID
- PUT/tasks/{task_id}: Обновить задачу.
- DELETE/users/{user_id}: Удалить задачу.
- POST/users: Создать пользователя.
- GET/users: Получить всех пользователей.
- GET/users/{user_id}: Получить пользователя по ID.
- PUT/users/{user_id}: Обновить пользователя.
- DELETE/users/{user_id}: Удалить пользователя.
- Пользователи (users): данные о каждом пользователе.
- Задачи (tasks): данные о задачах.
- Время (entries_time): данные о потраченном на задачу времени.
- Предполагаемое время (estimated_time): данные о предполагаемом для задачи времени.
Исследованы следующие приложения с аналогичным функционалом:
-
Toggl Track:
-
Преимущества: простой интерфейс, автоматическое трекинг-время, детализированные отчеты.
-
Недостатки: отсутствие возможности отслеживать проектные зависимости.
-
Clockify:
-
Преимущества: мощная интеграция с другими инструментами, API для расширенных отчетов.
-
Недостатки: сложный интерфейс для новых пользователей.
Рекомендации для нашего приложения:
- Возможность интеграции с Google Calendar для автоматического трекинга событий.
- Автоматическое уведомление пользователей о превышении запланированного времени.
- Создание отчётов по эффективности пользователей на основании выполненных задач.
- Возможность помечать задачи как завершённые и генерировать отчёты по закрытым проектам.
- Добавление задачи:
- В интерфейсе выберите "Создать задачу", введите название задачи и предполагаемое время.
- После добавления задача появится в списке активных задач.
- Внесение времени:
- Выберите задачу из списка и укажите, сколько времени вы на неё потратили.
- Просмотр отчета:
- Выберите задачу и нажмите "Посмотреть отчет", чтобы увидеть время, потраченное на неё всеми пользователями.
- Удаление записи:
- Для удаления записи выберите задачу и пользователя, затем нажмите "Удалить запись".