-
Создайте произвольную форму используя CSS и любой JavaScript фреймворк на Ваш выбор. Например, форму контакта или заказа, содержащую как минимум 5 полей разного типа: text, dropdown, date, radio, checkbox.
-
Вы можете использовать такие фреймворки как Vue.js, Angular, React, Knockout. Не используйте jQuery в качестве основного фреймворка. Он может быть использован только в качестве вспомогательного инструмента. По желанию можно использовать TypeScript или Babel
-
Добавьте валидацию к полям формы
-
Заполненная форма должна отправляться в REST-сервис. Данные формы должны быть в формате JSON и иметь следующий вид:
{
fieldId1: 'value1',
fieldId2: 'value2'
}
-
Создайте REST-сервис используя C# и ASP.NET Web Api/ASP.NET Core Web API, который будет ответственнен за получение, поиск и сохранение данных (JSON-объектов) форм
-
Создайте страницу со списком созданных форм с возможностью их поиска
-
Упакуйте все JS и CSS файлы в один бандл и настройте минификацию используя любой из инструментов на Ваш выбор (Webpack, Gulp, Grunt)
Ключевая идея – сделать так, чтобы изменения в структуре данных формы не требовала изменений в бэкенд сервисах.
Задача достаточно простая, однако постарайтесь представить, что это реальное приложение. То есть попробуйте создать хорошую архитектуру и уровень абстракции.
Для запуска приложения необходимы nodejs и dotnet.
Запуск приложения можно осуществить выполнением launch-me.bat. Что происходит в этом случае:
- устанавливаются npm-пакеты (npm install)
- с помощью Webpack собирается бандл в production-режиме (webpack --mode production)
- собирается и запускается приложение (dotnet run -c Release --environment="Production")
При желании, команды можно выполнить вручную. Для этого необходимо перейти в директорию src/JustAnotherSimpleFormApplication.Web и выполнить команды:
npm install
npm run build:prod
dotnet run -c Release --environment="Production"
npm install
npm run build:dev
dotnet run