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