593 lines
26 KiB
JSON
593 lines
26 KiB
JSON
{
|
||
"users": 8,
|
||
"tasks": 20,
|
||
"chains": 2,
|
||
"submissions": {
|
||
"total": 95,
|
||
"accepted": 38,
|
||
"rejected": 42,
|
||
"pending": 8,
|
||
"inProgress": 7
|
||
},
|
||
"averageCheckTimeMs": 2143,
|
||
"queue": {
|
||
"queueLength": 15,
|
||
"waiting": 8,
|
||
"inProgress": 7,
|
||
"maxConcurrency": 10,
|
||
"currentlyProcessing": 7
|
||
},
|
||
"tasksTable": [
|
||
{
|
||
"taskId": "task_1",
|
||
"title": "Создание REST API",
|
||
"totalAttempts": 12,
|
||
"uniqueUsers": 6,
|
||
"acceptedCount": 5,
|
||
"successRate": 83,
|
||
"averageAttemptsToSuccess": 2.4
|
||
},
|
||
{
|
||
"taskId": "task_2",
|
||
"title": "Работа с базой данных MongoDB",
|
||
"totalAttempts": 10,
|
||
"uniqueUsers": 5,
|
||
"acceptedCount": 3,
|
||
"successRate": 60,
|
||
"averageAttemptsToSuccess": 3.3
|
||
},
|
||
{
|
||
"taskId": "task_3",
|
||
"title": "JWT аутентификация",
|
||
"totalAttempts": 8,
|
||
"uniqueUsers": 4,
|
||
"acceptedCount": 2,
|
||
"successRate": 50,
|
||
"averageAttemptsToSuccess": 4.0
|
||
},
|
||
{
|
||
"taskId": "task_4",
|
||
"title": "Middleware для Express",
|
||
"totalAttempts": 6,
|
||
"uniqueUsers": 4,
|
||
"acceptedCount": 3,
|
||
"successRate": 75,
|
||
"averageAttemptsToSuccess": 2.0
|
||
},
|
||
{
|
||
"taskId": "task_5",
|
||
"title": "WebSocket сервер",
|
||
"totalAttempts": 5,
|
||
"uniqueUsers": 3,
|
||
"acceptedCount": 1,
|
||
"successRate": 33,
|
||
"averageAttemptsToSuccess": 5.0
|
||
},
|
||
{
|
||
"taskId": "task_6",
|
||
"title": "Кэширование с Redis",
|
||
"totalAttempts": 7,
|
||
"uniqueUsers": 4,
|
||
"acceptedCount": 2,
|
||
"successRate": 57,
|
||
"averageAttemptsToSuccess": 3.5
|
||
},
|
||
{
|
||
"taskId": "task_7",
|
||
"title": "GraphQL Schema",
|
||
"totalAttempts": 4,
|
||
"uniqueUsers": 3,
|
||
"acceptedCount": 2,
|
||
"successRate": 67,
|
||
"averageAttemptsToSuccess": 2.0
|
||
},
|
||
{
|
||
"taskId": "task_8",
|
||
"title": "Docker контейнеризация",
|
||
"totalAttempts": 3,
|
||
"uniqueUsers": 2,
|
||
"acceptedCount": 1,
|
||
"successRate": 50,
|
||
"averageAttemptsToSuccess": 3.0
|
||
},
|
||
{
|
||
"taskId": "task_9",
|
||
"title": "CI/CD Pipeline",
|
||
"totalAttempts": 2,
|
||
"uniqueUsers": 2,
|
||
"acceptedCount": 1,
|
||
"successRate": 50,
|
||
"averageAttemptsToSuccess": 2.0
|
||
},
|
||
{
|
||
"taskId": "task_10",
|
||
"title": "Микросервисная архитектура",
|
||
"totalAttempts": 2,
|
||
"uniqueUsers": 1,
|
||
"acceptedCount": 0,
|
||
"successRate": 0,
|
||
"averageAttemptsToSuccess": 0
|
||
},
|
||
{
|
||
"taskId": "task_11",
|
||
"title": "React компоненты",
|
||
"totalAttempts": 11,
|
||
"uniqueUsers": 6,
|
||
"acceptedCount": 6,
|
||
"successRate": 100,
|
||
"averageAttemptsToSuccess": 1.8
|
||
},
|
||
{
|
||
"taskId": "task_12",
|
||
"title": "React Hooks",
|
||
"totalAttempts": 9,
|
||
"uniqueUsers": 5,
|
||
"acceptedCount": 4,
|
||
"successRate": 80,
|
||
"averageAttemptsToSuccess": 2.3
|
||
},
|
||
{
|
||
"taskId": "task_13",
|
||
"title": "Redux State Management",
|
||
"totalAttempts": 7,
|
||
"uniqueUsers": 4,
|
||
"acceptedCount": 2,
|
||
"successRate": 57,
|
||
"averageAttemptsToSuccess": 3.5
|
||
},
|
||
{
|
||
"taskId": "task_14",
|
||
"title": "React Router",
|
||
"totalAttempts": 6,
|
||
"uniqueUsers": 4,
|
||
"acceptedCount": 3,
|
||
"successRate": 75,
|
||
"averageAttemptsToSuccess": 2.0
|
||
},
|
||
{
|
||
"taskId": "task_15",
|
||
"title": "Form валидация",
|
||
"totalAttempts": 5,
|
||
"uniqueUsers": 3,
|
||
"acceptedCount": 2,
|
||
"successRate": 67,
|
||
"averageAttemptsToSuccess": 2.5
|
||
},
|
||
{
|
||
"taskId": "task_16",
|
||
"title": "API интеграция",
|
||
"totalAttempts": 8,
|
||
"uniqueUsers": 5,
|
||
"acceptedCount": 3,
|
||
"successRate": 60,
|
||
"averageAttemptsToSuccess": 2.7
|
||
},
|
||
{
|
||
"taskId": "task_17",
|
||
"title": "CSS-in-JS стилизация",
|
||
"totalAttempts": 4,
|
||
"uniqueUsers": 3,
|
||
"acceptedCount": 2,
|
||
"successRate": 67,
|
||
"averageAttemptsToSuccess": 2.0
|
||
},
|
||
{
|
||
"taskId": "task_18",
|
||
"title": "Оптимизация производительности",
|
||
"totalAttempts": 3,
|
||
"uniqueUsers": 2,
|
||
"acceptedCount": 1,
|
||
"successRate": 50,
|
||
"averageAttemptsToSuccess": 3.0
|
||
},
|
||
{
|
||
"taskId": "task_19",
|
||
"title": "Unit тесты с Jest",
|
||
"totalAttempts": 2,
|
||
"uniqueUsers": 2,
|
||
"acceptedCount": 1,
|
||
"successRate": 50,
|
||
"averageAttemptsToSuccess": 2.0
|
||
},
|
||
{
|
||
"taskId": "task_20",
|
||
"title": "E2E тесты с Playwright",
|
||
"totalAttempts": 1,
|
||
"uniqueUsers": 1,
|
||
"acceptedCount": 0,
|
||
"successRate": 0,
|
||
"averageAttemptsToSuccess": 0
|
||
}
|
||
],
|
||
"activeParticipants": [
|
||
{
|
||
"userId": "user_1",
|
||
"nickname": "alex_dev",
|
||
"totalSubmissions": 18,
|
||
"completedTasks": 12,
|
||
"chainProgress": [
|
||
{
|
||
"chainId": "chain_1",
|
||
"chainName": "Backend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 6,
|
||
"progressPercent": 60
|
||
},
|
||
{
|
||
"chainId": "chain_2",
|
||
"chainName": "Frontend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 6,
|
||
"progressPercent": 60
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"userId": "user_2",
|
||
"nickname": "maria_coder",
|
||
"totalSubmissions": 15,
|
||
"completedTasks": 9,
|
||
"chainProgress": [
|
||
{
|
||
"chainId": "chain_1",
|
||
"chainName": "Backend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 5,
|
||
"progressPercent": 50
|
||
},
|
||
{
|
||
"chainId": "chain_2",
|
||
"chainName": "Frontend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 4,
|
||
"progressPercent": 40
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"userId": "user_3",
|
||
"nickname": "ivan_programmer",
|
||
"totalSubmissions": 10,
|
||
"completedTasks": 5,
|
||
"chainProgress": [
|
||
{
|
||
"chainId": "chain_1",
|
||
"chainName": "Backend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 3,
|
||
"progressPercent": 30
|
||
},
|
||
{
|
||
"chainId": "chain_2",
|
||
"chainName": "Frontend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 2,
|
||
"progressPercent": 20
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"userId": "user_4",
|
||
"nickname": "kate_fullstack",
|
||
"totalSubmissions": 22,
|
||
"completedTasks": 15,
|
||
"chainProgress": [
|
||
{
|
||
"chainId": "chain_1",
|
||
"chainName": "Backend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 8,
|
||
"progressPercent": 80
|
||
},
|
||
{
|
||
"chainId": "chain_2",
|
||
"chainName": "Frontend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 7,
|
||
"progressPercent": 70
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"userId": "user_5",
|
||
"nickname": "dmitry_backend",
|
||
"totalSubmissions": 12,
|
||
"completedTasks": 6,
|
||
"chainProgress": [
|
||
{
|
||
"chainId": "chain_1",
|
||
"chainName": "Backend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 5,
|
||
"progressPercent": 50
|
||
},
|
||
{
|
||
"chainId": "chain_2",
|
||
"chainName": "Frontend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 1,
|
||
"progressPercent": 10
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"userId": "user_6",
|
||
"nickname": "anna_react",
|
||
"totalSubmissions": 14,
|
||
"completedTasks": 7,
|
||
"chainProgress": [
|
||
{
|
||
"chainId": "chain_1",
|
||
"chainName": "Backend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 1,
|
||
"progressPercent": 10
|
||
},
|
||
{
|
||
"chainId": "chain_2",
|
||
"chainName": "Frontend разработка",
|
||
"totalTasks": 10,
|
||
"completedTasks": 6,
|
||
"progressPercent": 60
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"chainsDetailed": [
|
||
{
|
||
"chainId": "chain_1",
|
||
"name": "Backend разработка",
|
||
"totalTasks": 10,
|
||
"tasks": [
|
||
{ "taskId": "task_1", "title": "Создание REST API", "description": "Создайте REST API с Express.js" },
|
||
{ "taskId": "task_2", "title": "Работа с базой данных MongoDB", "description": "Интегрируйте MongoDB" },
|
||
{ "taskId": "task_3", "title": "JWT аутентификация", "description": "Реализуйте JWT-аутентификацию" },
|
||
{ "taskId": "task_4", "title": "Middleware для Express", "description": "Создайте кастомные middleware" },
|
||
{ "taskId": "task_5", "title": "WebSocket сервер", "description": "Реализуйте WebSocket для real-time" },
|
||
{ "taskId": "task_6", "title": "Кэширование с Redis", "description": "Внедрите Redis для кэширования" },
|
||
{ "taskId": "task_7", "title": "GraphQL Schema", "description": "Создайте GraphQL API" },
|
||
{ "taskId": "task_8", "title": "Docker контейнеризация", "description": "Контейнеризируйте приложение" },
|
||
{ "taskId": "task_9", "title": "CI/CD Pipeline", "description": "Настройте CI/CD" },
|
||
{ "taskId": "task_10", "title": "Микросервисная архитектура", "description": "Разбейте на микросервисы" }
|
||
],
|
||
"participantProgress": [
|
||
{
|
||
"userId": "user_1",
|
||
"nickname": "alex_dev",
|
||
"taskProgress": [
|
||
{ "taskId": "task_1", "taskTitle": "Создание REST API", "status": "completed" },
|
||
{ "taskId": "task_2", "taskTitle": "Работа с базой данных MongoDB", "status": "completed" },
|
||
{ "taskId": "task_3", "taskTitle": "JWT аутентификация", "status": "completed" },
|
||
{ "taskId": "task_4", "taskTitle": "Middleware для Express", "status": "completed" },
|
||
{ "taskId": "task_5", "taskTitle": "WebSocket сервер", "status": "completed" },
|
||
{ "taskId": "task_6", "taskTitle": "Кэширование с Redis", "status": "completed" },
|
||
{ "taskId": "task_7", "taskTitle": "GraphQL Schema", "status": "in_progress" },
|
||
{ "taskId": "task_8", "taskTitle": "Docker контейнеризация", "status": "not_started" },
|
||
{ "taskId": "task_9", "taskTitle": "CI/CD Pipeline", "status": "not_started" },
|
||
{ "taskId": "task_10", "taskTitle": "Микросервисная архитектура", "status": "not_started" }
|
||
],
|
||
"completedCount": 6,
|
||
"progressPercent": 60
|
||
},
|
||
{
|
||
"userId": "user_2",
|
||
"nickname": "maria_coder",
|
||
"taskProgress": [
|
||
{ "taskId": "task_1", "taskTitle": "Создание REST API", "status": "completed" },
|
||
{ "taskId": "task_2", "taskTitle": "Работа с базой данных MongoDB", "status": "completed" },
|
||
{ "taskId": "task_3", "taskTitle": "JWT аутентификация", "status": "completed" },
|
||
{ "taskId": "task_4", "taskTitle": "Middleware для Express", "status": "completed" },
|
||
{ "taskId": "task_5", "taskTitle": "WebSocket сервер", "status": "completed" },
|
||
{ "taskId": "task_6", "taskTitle": "Кэширование с Redis", "status": "needs_revision" },
|
||
{ "taskId": "task_7", "taskTitle": "GraphQL Schema", "status": "pending" },
|
||
{ "taskId": "task_8", "taskTitle": "Docker контейнеризация", "status": "not_started" },
|
||
{ "taskId": "task_9", "taskTitle": "CI/CD Pipeline", "status": "not_started" },
|
||
{ "taskId": "task_10", "taskTitle": "Микросервисная архитектура", "status": "not_started" }
|
||
],
|
||
"completedCount": 5,
|
||
"progressPercent": 50
|
||
},
|
||
{
|
||
"userId": "user_3",
|
||
"nickname": "ivan_programmer",
|
||
"taskProgress": [
|
||
{ "taskId": "task_1", "taskTitle": "Создание REST API", "status": "completed" },
|
||
{ "taskId": "task_2", "taskTitle": "Работа с базой данных MongoDB", "status": "completed" },
|
||
{ "taskId": "task_3", "taskTitle": "JWT аутентификация", "status": "completed" },
|
||
{ "taskId": "task_4", "taskTitle": "Middleware для Express", "status": "needs_revision" },
|
||
{ "taskId": "task_5", "taskTitle": "WebSocket сервер", "status": "not_started" },
|
||
{ "taskId": "task_6", "taskTitle": "Кэширование с Redis", "status": "not_started" },
|
||
{ "taskId": "task_7", "taskTitle": "GraphQL Schema", "status": "not_started" },
|
||
{ "taskId": "task_8", "taskTitle": "Docker контейнеризация", "status": "not_started" },
|
||
{ "taskId": "task_9", "taskTitle": "CI/CD Pipeline", "status": "not_started" },
|
||
{ "taskId": "task_10", "taskTitle": "Микросервисная архитектура", "status": "not_started" }
|
||
],
|
||
"completedCount": 3,
|
||
"progressPercent": 30
|
||
},
|
||
{
|
||
"userId": "user_4",
|
||
"nickname": "kate_fullstack",
|
||
"taskProgress": [
|
||
{ "taskId": "task_1", "taskTitle": "Создание REST API", "status": "completed" },
|
||
{ "taskId": "task_2", "taskTitle": "Работа с базой данных MongoDB", "status": "completed" },
|
||
{ "taskId": "task_3", "taskTitle": "JWT аутентификация", "status": "completed" },
|
||
{ "taskId": "task_4", "taskTitle": "Middleware для Express", "status": "completed" },
|
||
{ "taskId": "task_5", "taskTitle": "WebSocket сервер", "status": "completed" },
|
||
{ "taskId": "task_6", "taskTitle": "Кэширование с Redis", "status": "completed" },
|
||
{ "taskId": "task_7", "taskTitle": "GraphQL Schema", "status": "completed" },
|
||
{ "taskId": "task_8", "taskTitle": "Docker контейнеризация", "status": "completed" },
|
||
{ "taskId": "task_9", "taskTitle": "CI/CD Pipeline", "status": "in_progress" },
|
||
{ "taskId": "task_10", "taskTitle": "Микросервисная архитектура", "status": "not_started" }
|
||
],
|
||
"completedCount": 8,
|
||
"progressPercent": 80
|
||
},
|
||
{
|
||
"userId": "user_5",
|
||
"nickname": "dmitry_backend",
|
||
"taskProgress": [
|
||
{ "taskId": "task_1", "taskTitle": "Создание REST API", "status": "completed" },
|
||
{ "taskId": "task_2", "taskTitle": "Работа с базой данных MongoDB", "status": "completed" },
|
||
{ "taskId": "task_3", "taskTitle": "JWT аутентификация", "status": "completed" },
|
||
{ "taskId": "task_4", "taskTitle": "Middleware для Express", "status": "completed" },
|
||
{ "taskId": "task_5", "taskTitle": "WebSocket сервер", "status": "completed" },
|
||
{ "taskId": "task_6", "taskTitle": "Кэширование с Redis", "status": "in_progress" },
|
||
{ "taskId": "task_7", "taskTitle": "GraphQL Schema", "status": "not_started" },
|
||
{ "taskId": "task_8", "taskTitle": "Docker контейнеризация", "status": "not_started" },
|
||
{ "taskId": "task_9", "taskTitle": "CI/CD Pipeline", "status": "not_started" },
|
||
{ "taskId": "task_10", "taskTitle": "Микросервисная архитектура", "status": "not_started" }
|
||
],
|
||
"completedCount": 5,
|
||
"progressPercent": 50
|
||
},
|
||
{
|
||
"userId": "user_6",
|
||
"nickname": "anna_react",
|
||
"taskProgress": [
|
||
{ "taskId": "task_1", "taskTitle": "Создание REST API", "status": "completed" },
|
||
{ "taskId": "task_2", "taskTitle": "Работа с базой данных MongoDB", "status": "pending" },
|
||
{ "taskId": "task_3", "taskTitle": "JWT аутентификация", "status": "not_started" },
|
||
{ "taskId": "task_4", "taskTitle": "Middleware для Express", "status": "not_started" },
|
||
{ "taskId": "task_5", "taskTitle": "WebSocket сервер", "status": "not_started" },
|
||
{ "taskId": "task_6", "taskTitle": "Кэширование с Redis", "status": "not_started" },
|
||
{ "taskId": "task_7", "taskTitle": "GraphQL Schema", "status": "not_started" },
|
||
{ "taskId": "task_8", "taskTitle": "Docker контейнеризация", "status": "not_started" },
|
||
{ "taskId": "task_9", "taskTitle": "CI/CD Pipeline", "status": "not_started" },
|
||
{ "taskId": "task_10", "taskTitle": "Микросервисная архитектура", "status": "not_started" }
|
||
],
|
||
"completedCount": 1,
|
||
"progressPercent": 10
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"chainId": "chain_2",
|
||
"name": "Frontend разработка",
|
||
"totalTasks": 10,
|
||
"tasks": [
|
||
{ "taskId": "task_11", "title": "React компоненты", "description": "Создайте переиспользуемые компоненты" },
|
||
{ "taskId": "task_12", "title": "React Hooks", "description": "Используйте хуки" },
|
||
{ "taskId": "task_13", "title": "Redux State Management", "description": "Управление состоянием" },
|
||
{ "taskId": "task_14", "title": "React Router", "description": "Маршрутизация" },
|
||
{ "taskId": "task_15", "title": "Form валидация", "description": "Валидация форм" },
|
||
{ "taskId": "task_16", "title": "API интеграция", "description": "Интеграция с API" },
|
||
{ "taskId": "task_17", "title": "CSS-in-JS стилизация", "description": "Стилизация" },
|
||
{ "taskId": "task_18", "title": "Оптимизация производительности", "description": "Оптимизация React" },
|
||
{ "taskId": "task_19", "title": "Unit тесты с Jest", "description": "Юнит тестирование" },
|
||
{ "taskId": "task_20", "title": "E2E тесты с Playwright", "description": "End-to-end тестирование" }
|
||
],
|
||
"participantProgress": [
|
||
{
|
||
"userId": "user_1",
|
||
"nickname": "alex_dev",
|
||
"taskProgress": [
|
||
{ "taskId": "task_11", "taskTitle": "React компоненты", "status": "completed" },
|
||
{ "taskId": "task_12", "taskTitle": "React Hooks", "status": "completed" },
|
||
{ "taskId": "task_13", "taskTitle": "Redux State Management", "status": "completed" },
|
||
{ "taskId": "task_14", "taskTitle": "React Router", "status": "completed" },
|
||
{ "taskId": "task_15", "taskTitle": "Form валидация", "status": "completed" },
|
||
{ "taskId": "task_16", "taskTitle": "API интеграция", "status": "completed" },
|
||
{ "taskId": "task_17", "taskTitle": "CSS-in-JS стилизация", "status": "in_progress" },
|
||
{ "taskId": "task_18", "taskTitle": "Оптимизация производительности", "status": "not_started" },
|
||
{ "taskId": "task_19", "taskTitle": "Unit тесты с Jest", "status": "not_started" },
|
||
{ "taskId": "task_20", "taskTitle": "E2E тесты с Playwright", "status": "not_started" }
|
||
],
|
||
"completedCount": 6,
|
||
"progressPercent": 60
|
||
},
|
||
{
|
||
"userId": "user_2",
|
||
"nickname": "maria_coder",
|
||
"taskProgress": [
|
||
{ "taskId": "task_11", "taskTitle": "React компоненты", "status": "completed" },
|
||
{ "taskId": "task_12", "taskTitle": "React Hooks", "status": "completed" },
|
||
{ "taskId": "task_13", "taskTitle": "Redux State Management", "status": "completed" },
|
||
{ "taskId": "task_14", "taskTitle": "React Router", "status": "completed" },
|
||
{ "taskId": "task_15", "taskTitle": "Form валидация", "status": "needs_revision" },
|
||
{ "taskId": "task_16", "taskTitle": "API интеграция", "status": "pending" },
|
||
{ "taskId": "task_17", "taskTitle": "CSS-in-JS стилизация", "status": "not_started" },
|
||
{ "taskId": "task_18", "taskTitle": "Оптимизация производительности", "status": "not_started" },
|
||
{ "taskId": "task_19", "taskTitle": "Unit тесты с Jest", "status": "not_started" },
|
||
{ "taskId": "task_20", "taskTitle": "E2E тесты с Playwright", "status": "not_started" }
|
||
],
|
||
"completedCount": 4,
|
||
"progressPercent": 40
|
||
},
|
||
{
|
||
"userId": "user_3",
|
||
"nickname": "ivan_programmer",
|
||
"taskProgress": [
|
||
{ "taskId": "task_11", "taskTitle": "React компоненты", "status": "completed" },
|
||
{ "taskId": "task_12", "taskTitle": "React Hooks", "status": "completed" },
|
||
{ "taskId": "task_13", "taskTitle": "Redux State Management", "status": "in_progress" },
|
||
{ "taskId": "task_14", "taskTitle": "React Router", "status": "not_started" },
|
||
{ "taskId": "task_15", "taskTitle": "Form валидация", "status": "not_started" },
|
||
{ "taskId": "task_16", "taskTitle": "API интеграция", "status": "not_started" },
|
||
{ "taskId": "task_17", "taskTitle": "CSS-in-JS стилизация", "status": "not_started" },
|
||
{ "taskId": "task_18", "taskTitle": "Оптимизация производительности", "status": "not_started" },
|
||
{ "taskId": "task_19", "taskTitle": "Unit тесты с Jest", "status": "not_started" },
|
||
{ "taskId": "task_20", "taskTitle": "E2E тесты с Playwright", "status": "not_started" }
|
||
],
|
||
"completedCount": 2,
|
||
"progressPercent": 20
|
||
},
|
||
{
|
||
"userId": "user_4",
|
||
"nickname": "kate_fullstack",
|
||
"taskProgress": [
|
||
{ "taskId": "task_11", "taskTitle": "React компоненты", "status": "completed" },
|
||
{ "taskId": "task_12", "taskTitle": "React Hooks", "status": "completed" },
|
||
{ "taskId": "task_13", "taskTitle": "Redux State Management", "status": "completed" },
|
||
{ "taskId": "task_14", "taskTitle": "React Router", "status": "completed" },
|
||
{ "taskId": "task_15", "taskTitle": "Form валидация", "status": "completed" },
|
||
{ "taskId": "task_16", "taskTitle": "API интеграция", "status": "completed" },
|
||
{ "taskId": "task_17", "taskTitle": "CSS-in-JS стилизация", "status": "completed" },
|
||
{ "taskId": "task_18", "taskTitle": "Оптимизация производительности", "status": "in_progress" },
|
||
{ "taskId": "task_19", "taskTitle": "Unit тесты с Jest", "status": "not_started" },
|
||
{ "taskId": "task_20", "taskTitle": "E2E тесты с Playwright", "status": "not_started" }
|
||
],
|
||
"completedCount": 7,
|
||
"progressPercent": 70
|
||
},
|
||
{
|
||
"userId": "user_5",
|
||
"nickname": "dmitry_backend",
|
||
"taskProgress": [
|
||
{ "taskId": "task_11", "taskTitle": "React компоненты", "status": "completed" },
|
||
{ "taskId": "task_12", "taskTitle": "React Hooks", "status": "pending" },
|
||
{ "taskId": "task_13", "taskTitle": "Redux State Management", "status": "not_started" },
|
||
{ "taskId": "task_14", "taskTitle": "React Router", "status": "not_started" },
|
||
{ "taskId": "task_15", "taskTitle": "Form валидация", "status": "not_started" },
|
||
{ "taskId": "task_16", "taskTitle": "API интеграция", "status": "not_started" },
|
||
{ "taskId": "task_17", "taskTitle": "CSS-in-JS стилизация", "status": "not_started" },
|
||
{ "taskId": "task_18", "taskTitle": "Оптимизация производительности", "status": "not_started" },
|
||
{ "taskId": "task_19", "taskTitle": "Unit тесты с Jest", "status": "not_started" },
|
||
{ "taskId": "task_20", "taskTitle": "E2E тесты с Playwright", "status": "not_started" }
|
||
],
|
||
"completedCount": 1,
|
||
"progressPercent": 10
|
||
},
|
||
{
|
||
"userId": "user_6",
|
||
"nickname": "anna_react",
|
||
"taskProgress": [
|
||
{ "taskId": "task_11", "taskTitle": "React компоненты", "status": "completed" },
|
||
{ "taskId": "task_12", "taskTitle": "React Hooks", "status": "completed" },
|
||
{ "taskId": "task_13", "taskTitle": "Redux State Management", "status": "completed" },
|
||
{ "taskId": "task_14", "taskTitle": "React Router", "status": "completed" },
|
||
{ "taskId": "task_15", "taskTitle": "Form валидация", "status": "completed" },
|
||
{ "taskId": "task_16", "taskTitle": "API интеграция", "status": "completed" },
|
||
{ "taskId": "task_17", "taskTitle": "CSS-in-JS стилизация", "status": "in_progress" },
|
||
{ "taskId": "task_18", "taskTitle": "Оптимизация производительности", "status": "not_started" },
|
||
{ "taskId": "task_19", "taskTitle": "Unit тесты с Jest", "status": "not_started" },
|
||
{ "taskId": "task_20", "taskTitle": "E2E тесты с Playwright", "status": "not_started" }
|
||
],
|
||
"completedCount": 6,
|
||
"progressPercent": 60
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|