/userTasks

Primary LanguageJava

Задачи пользователей

ТЗ

общее

  • Есть система учета задач, в которой есть пользователи и задачи, назначенные на них.
  • На одной задаче может быть только один ответственный.
  • Каждый пользователь может забрать неограниченное количество задач
  • Если пользователь выходит из системы
    • его статус меняется на offline
    • нужно распределить его задачи на других онлайн пользователей с учетом их загруженности(максимально равномерно распределить).

rest

Нужно реализовать rest сервис

  • пользователи могут менять свой статус (online, offline)
  • забирать на себя задачи и переводить их в различные статусы(завершено, отклонено)
  • создавать задачи.

Документация (api c примерами)

Пример работы работы системы, когда пользователь выходит (ставит статус offline)

  1. До начало работы
1.1 Список пользователей на текущий момент

Пользователь 4 не должен участвовать, т.к. он offline Должны задачи взять пользовать 2 и 3

[
    {
        "id": 1,
        "username": "user1",
        "email": "email1",
        "status": "Online"
    },
    {
        "id": 2,
        "username": "user2",
        "email": "email2",
        "status": "Online"
    },
    {
        "id": 3,
        "username": "user3",
        "email": "email3",
        "status": "Online"
    },
    {
        "id": 4,
        "username": "user4",
        "email": "email4",
        "status": "Offline"
    }
]
1.2 Список всех задач
[
    {
        "id": 5,
        "name": "name task1",
        "userId": 1,
        "status": "Open"
    },
    {
        "id": 6,
        "name": "name task2",
        "userId": 1,
        "status": "Open"
    }
]
  1. Ставим статус offline пользователю 1
  2. Смотрим, что изменилось
3.1 Снова список всех задач Изменились правильно userId задач
[
    {
        "id": 5,
        "name": "name task1",
        "userId": 2,
        "status": "Open"
    },
    {
        "id": 6,
        "name": "name task2",
        "userId": 3,
        "status": "Open"
    }
]