Разработка структуры приложения на Spring IO (Java)

Захар9 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
06.01.2016

Разработка структуры приложения на Spring IO (Java)

Цель:

Разработка приложения  Spring IO на Java. Этот документ содержит описание основной функциональности, которая позже будет расширена для реализации дополнительных контроллеров.

Описание

Общие требования

Разработка структуры Spring IO приложения, которое будет использоваться для дальнейшей разработки приложения (сервиса) back end. Backend будет использовать REST интерфейс.

-         Фреймворк Spring IO будет использоваться для разработки структуры

-         Тесты функциональности и документирование с использованием SWAGGER.

Имплементировать SWAGGER для  REST интерфейса.

Графический интерфейс  SWAGGER позволит получить документацию интерфейса и выполнять ручные тесты функциональности.

-         Модульные тесты.

Добавить возможность тестировать всю систему с помощью JUnit.

Язык разработки:

Java

Инструменты разработки:

Maven.

Deployment приложения:

Self-hosted

Конфигурация:

Должна быть разработана поддержка Внешней Конфигурации, для более удобной  смены IP, хостинга и порта.

Контроллер Учетные данные пользователя

Сценарии

·        Клиент должен иметь возможность войти в систему.  Клиенты могут иметь несколько ролей:

Администратор,  Клиент #1, Клиент #2.

·        Клиент будет вводить учетные данные (имя пользователя, пароль). (Используя интерфейс REST). После ввода существующей комбинации логин-пароль клиентом, сессия клиента начинается.

·        Клиентская сессия должна иметь token , который отправляется с каждым REST запросом. Этот token идентифицирует пользователя.

o  Сессия клиента заканчивается, когда пользователь выходит из системы.

o  Сессия клиента обрывается после истечения определенного времени X.

o  Каждый REST запрос клиента должно обнулять таймер.

·        Информация о пользователях хранится в БД (mongo DB ). Пароли пользователей не должны храниться в БД, только соответствия.

REST интерфейс.

·        Имплементация  VersionController: VersionController REST интерфейса предостовляет информацию о версии продукта.

·        Имплементация  UserController: логин (для всех пользователей),и список, удаление пользователей, изменение роли пользователя (только для администратора).