Приложение считывает все данные из соответствующих CSV-файлов (разделитель – запятая) при старте приложения.
Имя файла с исходными данными передаётся приложению с ключом --tasks-file
Id,Title,RegistrationDateTime,StartDateTime,EndDateTime,Importance,Urgency,Percentage,Description,Category
8b2a4482-35c8-411e-aab9-6ce490b3bea1,Задача № 1,2024-01-01T00:00:00.0,2024-01-01T00:00:00.0,,Очень низкий,false,100,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
ec247f48-f86c-45c8-ab2f-7510e4640052,Задача № 2,2024-01-02T00:00:00.0,2024-01-02T00:00:00.0,2024-01-06T00:00:00.0,Очень низкий,false,0,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
b0d29fa9-cfd4-41e2-9753-f9b5f40e9811,Задача № 3,2024-01-03T00:00:00.0,2024-01-03T00:00:00.0,2024-01-04T00:00:00.0,Критический,true,90,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
a89723c3-0bfe-41b1-b7b9-db67a8c4708a,Задача № 4,2024-01-04T00:00:00.0,2024-01-04T00:00:00.0,,Очень низкий,false,0,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
5bdb77b9-3a66-4217-b6fe-2eaaf9e54200,Задача № 5,2024-01-05T00:00:00.0,2024-01-05T00:00:00.0,,Высокий,false,70,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
2aeaf2b4-ad18-4686-a69c-9d9baa34fe69,Задача № 6,2024-01-06T00:00:00.0,2024-01-06T00:00:00.0,,Очень низкий,true,5,задача,10c50d8a-fc9e-45ba-b303-7a623f4c699b
Имя файла с исходными данными передаётся приложению с ключом --categories-file
Id,Description,Color
10c50d8a-fc9e-45ba-b303-7a623f4c699b,Учебные задачи,BLACK
Приложение запускается с помощью системы сборки Gradle, обязательные параметры:
--tasks-file – имя файла с данными приложения--categories-file – имя файла с данными приложения--port – порт, по которому доступен веб-сервер./gradlew run --args="--tasks-file ../sample-data/tasks.csv --categories-file ../sample-data/categories.csv --port 9000"
Веб-сервер запускается и работает только при получении корректных значений всех параметров. При некорректном значении хотя бы одного параметра приложение выводит соответствующее сообщение об ошибке и завершает работу с ненулевым кодом возврата.
Error: missing option --tasks-file
Error: file not found «abc.csv»
Список упорядочен по возрастанию даты и времени регистрации и id.
| page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
| records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "IsClosed": false
}
]Получение полной информации о задаче по идентификатору задачи
| task-id required | string <UUID> Example: de42a00f-7f43-4d10-808d-bee47fdeef49 идентификатор задачи |
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "StartDateTime": "2024-10-01T00:00:00",
- "EndDateTime": "2025-01-01T00:00:00",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90,
- "Description": "реализовать приложение для лабораторной № 3",
- "IsClosed": false,
- "Category": "10c50d8a-fc9e-45ba-b303-7a623f4c699b",
- "CategoryDescription": "Учебные задачи"
}Обязательно должен быть передан хотя бы один из параметров.
Список упорядочен по возрастанию даты и времени регистрации и id.
| important | boolean Example: important=true Важность задачи.
|
| urgent | boolean Example: urgent=true Срочность задачи |
| page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
| records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90
}
]Получение списка задач, для которых дата и время начала меньше переданных и процент выполнения меньше 100%.
Список упорядочен по убыванию приоритета (Importance), убыванию срочности (Urgency), возрастанию даты регистрации и id.
| time required | string <date-time> Example: time=2024-01-03T00:00:00.0 Дата и время в формате ISO |
| page | integer >= 1 Default: 1 Example: page=1 Номер страницы. Если номер превышает максимально возможный, приложение возвращает пустой список. Если номер передан и не является натуральным числом, приложение возвращает сообщение об ошибке. |
| records-per-page | integer Default: 10 Enum: 5 10 20 50 Example: records-per-page=10 Количество записей на странице. Если количество передано и не входит в указанный набор значений, приложение возвращает сообщение об ошибке. |
[- {
- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90
}
]Получение статистической информации по дням недели переданного параметры даты.
Значение null сопоставляется дню недели Не заполнено.
Список упорядочен последовательно по дню недели, «Не заполнено» (при наличии) в конце. Дни недели, для которых нет данных, пропущены.
| by-date required | string Enum: "registration" "start" "end" Example: by-date=registration Тип запрашиваемой статистики.
|
{- "StatisticsByRegistrationDateTime": {
- "Понедельник": 1,
- "Вторник": 2,
- "Среда": 1,
- "Четверг": 3,
- "Пятница": 1,
- "Суббота": 77,
- "Воскресенье": 12
}
}| Id | string <UUID> Уникальный идентификатор задачи |
| Title | string Название задачи (не может быть пустым) |
| RegistrationDateTime | string <date-time> Дата и время регистрации задачи в системе |
| StartDateTime | string <date-time> Дата и время начала задачи |
| EndDateTime | string or null <date-time> Дата и время планового окончания задачи |
| Importance | string (Importance) Enum: "Очень низкий" "Низкий" "Обычный" "Высокий" "Очень высокий" "Критический" Приоритет задачи |
| Urgency | boolean Срочность задачи |
| Percentage | integer [ 0 .. 100 ] Процент выполнения задачи |
| Description | string Описание задачи |
| IsClosed | boolean Вычисляемое поле, отсутствует в файле с данными Закрыта ли задача?
|
| Category | string or null <UUID> Категория задачи (соответствует |
{- "Id": "de42a00f-7f43-4d10-808d-bee47fdeef49",
- "Title": "Лабоработная № 3",
- "RegistrationDateTime": "2024-01-01T00:00:00",
- "StartDateTime": "2024-10-01T00:00:00",
- "EndDateTime": "2025-01-01T00:00:00",
- "Importance": "Очень низкий",
- "Urgency": true,
- "Percentage": 90,
- "Description": "реализовать приложение для лабораторной № 3",
- "IsClosed": false,
- "Category": "10c50d8a-fc9e-45ba-b303-7a623f4c699b"
}| Id | string <UUID> Уникальный идентификатор категории | ||||||||||||||||||||||||||||||||||||||||||||||||
| Description | string Описание категории | ||||||||||||||||||||||||||||||||||||||||||||||||
| Color | string Enum: "BLACK" "WHITE" "RED" "GREEN" "BLUE" "YELLOW" "CYAN" "MAGENTA" "SILVER" "GRAY" "MAROON" "OLIVE" "DARKGREEN" "PURPLE" "TEAL" Цвет задач категории для отметки в календаре. Возможные варианты:
|
{- "Id": "10c50d8a-fc9e-45ba-b303-7a623f4c699b",
- "Description": "Учебные задачи",
- "Color": "BLACK"
}