- Пользователи могут создавать группы.
- Пользователи могут присоединяться к группам.
- Пользователи могут иметь права администратора в группе.
- Пользователь создавший группу автоматически становится администратором.
- Администратор может назначить другого пользователя в группе администратором.
- Администратор может снять с себя полномочия администратора, если в группе есть хотя бы еще 1 администратор.
- Администратор может покинуть группу только есть в группе есть хотя бы еще 1 администратор.
- Администратор может удалить группу.
- Администратор может дать команду и сервис назначит секретного Санту для каждого члена группы, выбирая из остальных членов группы.
- Каждый член группы будет назначен секретным Сантой строго одному другому члену группы.
- После этого группа становится закрытой, в нее нельзя войти или выйти.
- Пользователи могут запросить, для кого в группе они стали секретным Сантой.
- Будет плюсом, если сервис будет использовать БД для хранения данных о пользователях, группах и секретных Сантах. Но можно обойтись хранением данных в памяти.
- Сервис должен работать как HTTP REST с JSON сообщениями.
- Будет плюсом написать консольную утилиту для общения с сервисом.