Задание
Система должна состоять из двух основных компонентов: фронтенд и бэкенд сервер.
Фронтенд сервер — основной функционал
RoR приложение должно предоставлять:
-
Выбор типа уравнения (по умолчанию линейное и квадратное).
-
Форму ввода параметров для решения уравнения.
-
Передачу параметров уравнения на бэкенд сервер в формате JSON.
-
Получение и отображение результата в «дружественном» виде.
Дополнительные пожелания
-
Использование CSS на формах / страницах «Выбор», «Вввод», «Результат».
-
Использование JS / Ajax / JS-framework на формах / страницах «Выбор», «Ввод», «Результат».
-
Использование тестовых фреймворков TestUnit / RSpec / Cucumber (один или несколько).
-
Обеспечить валидацию параметров и обработку исключительных ситуаций (500 от бэкенда, ввод буквенных параметров, ввод дробных параметров и т.д.).
Бэкенд сервер — основной функционал
Допустимо использование приложения на Sinatra или подобном фреймворке. Приложение должно:
-
Предоставить точку входа для получения параметров уравнения.
-
Обеспечить решение уравнения.
-
Предоставить ответ в формате JSON.
Дополнительные пожелания
-
Использование наследования при решении различных типов уравнения (единый интерфейс для решения любого типа уравнения).
-
Обеспечение валидации параметров и обработки исключительных ситуаций (недостаточное количество параметров, неверный тип уравнения, неверный тип аргументов и тд).
-
Использование TestUnit / RSpec / Cucumber.
-
Использование аутентификации при приеме запроса.