Простейшее клиент-серверное приложение (учебное), реализованное на Java (без GUI, обычное консольное). Клиент и сервер взаимодействуют через сокеты. Назначение приложения – база данных (не реальная, обычный txt-файл, в который добавляются данные в формате KEY=VALUE). В этой системе три сущности: неавторизированный пользователь, пользователь и админ. Неавторизированный пользователь может залогиниться в формате LOG:LOGIN=PASSWORD (список логинов и паролей пользователей и администратора хранится в отдельном txt файле ). Авторизированный пользователь может добавлять данные в формате ADD:VALUE=KEY, запрашивать данные по ключу командой GET:KEY, удалять данные по ключу RM:KEY, удалять все данные командой RMALL. Администратор может залогиниться в командой LOG:LOGIN=PASSWORD. Добавить пользователя командой ADDUSER:LOGIN=PASSWORD, вывести логины всех пользователей командой LSUSERS, удалить пользователя RMUSER:LOGIN, поменять пароль пользователя PASSWD:LOGIN=PASSWORD. Каждый запрос должен сопровождаться выводом команды REQUEST@SUCCESS или REAUEST@FAILURE (если, например, файл с логинами и паролями не найден). Нужно написать тесты к этой проге на bash или провести юнит тестирование (что легче будет). В коде использовать аннотации, чтобы можно было потом произвести автодокументация. Желательно привести UML-диаграммы. Проект будет демонстрироваться на одном компьютере (localhost).