devpilot.
До вибору прикладів

НАВЧАЛЬНИЙ ПРИКЛАД

Форма, яка уточнює завдання

Виберіть сайт, рекламу або інтеграцію — форма покаже потрібні уточнення. Заповнені поля перевіряються та збираються в JSON просто на сторінці.

DEMOБез вигаданих показників продажів
Полотно:

Це ширина демонстраційного полотна. Вона не замінює перевірку справжнього пристрою.

DEMO / form-rules

Форма, яка уточнює завдання

Однаковий набір запитань незручний для різних послуг: сайту потрібна кількість сторінок, рекламі — країна, інтеграції — джерело та отримувач даних. Демонстрація змінює запитання за типом завдання й показує підготовлену структуру без справжнього надсилання.

Відкрити робочу демонстрацію
УМОВНА ЛОГІКАLOCAL / JS

Форма, яка уточнює завдання

Уточнює відомості під вибрану послугу, не перевантажуючи людину запитаннями інших напрямів.

Форма, яка уточнює завдання
Сайт

Підготовлена структура заявки

Це перевірка полів і підготовка JSON: заявка нікуди не надсилається.

Для запуску прикладу потрібен JavaScript; опис і розбір доступні без запуску.

Переглянути робочий код
function buildConditionalRequest(type, values) {
  if (!['site', 'ads', 'integration'].includes(type)) throw new Error('RULES_TYPE');
  if (values === null || typeof values !== 'object' || Array.isArray(values) ||
      Object.getPrototypeOf(values) !== Object.prototype) throw new Error('RULES_VALUES');
  const company = values.company === undefined ? '' : values.company;
  if (typeof company !== 'string' || company.trim().length > 100) throw new Error('RULES_COMPANY');
  if (typeof values.task !== 'string' || values.task.trim().length < 10 ||
      values.task.trim().length > 1500) throw new Error('RULES_TASK');

  let details;
  if (type === 'site') {
    if (!['string', 'number'].includes(typeof values.pages)) throw new Error('RULES_PAGES');
    const pages = Number(values.pages);
    if (!Number.isInteger(pages) || pages < 1 || pages > 100) throw new Error('RULES_PAGES');
    details = {pages};
  } else if (type === 'ads') {
    if (typeof values.country !== 'string' || !values.country.trim() ||
        values.country.trim().length > 100) throw new Error('RULES_COUNTRY');
    details = {country: values.country.trim()};
  } else {
    if (typeof values.source !== 'string' || !values.source.trim() ||
        values.source.trim().length > 100) throw new Error('RULES_SOURCE');
    if (typeof values.target !== 'string' || !values.target.trim() ||
        values.target.trim().length > 100) throw new Error('RULES_TARGET');
    details = {source: values.source.trim(), target: values.target.trim()};
  }
  return {type, company: company.trim(), task: values.task.trim(), details};
}

Локальна демонстрація: сервер, збереження та справжнє надсилання не підключені.

Лише текст, без HTML. Зміни залишаються у вкладці.

Завдання в цьому сценарії

Однаковий набір запитань незручний для різних послуг: сайту потрібна кількість сторінок, рекламі — країна, інтеграції — джерело та отримувач даних. Демонстрація змінює запитання за типом завдання й показує підготовлену структуру без справжнього надсилання.

Як побудовано рішення

  • Залишаємо загальний опис завдання обов’язковим, а назву компанії — необов’язковою. Тип запиту визначає, які уточнювальні поля показуються.
  • Для сайту потрібне ціле число сторінок від однієї до ста, для реклами обов’язково вказати країну, для інтеграції — джерело та отримувача. Опис завдання має містити від десяти до півтори тисячі символів.
  • Перевіряємо заповнення й збираємо JSON із загальними відомостями та полями вибраного типу. Приховані уточнення інших типів до результату не включаємо; мережа й канал доставки не підключені.

Проміжні матеріали

  1. Початкове завдання та обмеження → Однаковий набір запитань незручний для різних послуг: сайту потрібна кількість сторінок, рекламі — країна, інтеграції — джерело та отримувач даних. Демонстрація змінює запитання за типом завдання й показує підготовлену структуру без справжнього надсилання.
  2. Склад рішення → Три типи запиту з відповідними уточнювальними полями.
  3. Перевірка перед запуском → Переключити всі типи, перевірити обов’язкові уточнення, межі кількості сторінок і довжину опису, потім звірити поля результату.

Що перевірити перед запуском

  • Переключити всі типи, перевірити обов’язкові уточнення, межі кількості сторінок і довжину опису, потім звірити поля результату.
  • Для справжньої форми погодити склад заявки й отримувача; окремо реалізувати серверну перевірку, збереження та доставку.

Що входить у приклад

  • Три типи запиту з відповідними уточнювальними полями.
  • Перевірка обов’язкових значень, опису завдання й кількості сторінок.
  • Підготовлений JSON для перегляду без справжнього надсилання.

Технічний паспорт

DevPilot 1.5.2 · Охоплення перевірок, вихідний код і дата свідчень

Статус
DEMO · Вигадана компанія й навчальні дані
Матеріали
Власні HTML/CSS/SVG, вихідний код і локальні алгоритми. Фотографії клієнтів не використовуються.
Обробка
Демонстрація виконується в браузері. Відкриття прикладу не створює заявку чи оплачений проєкт.
Докази
Вміст і локальні перевірки відокремлені від справжнього браузерного, хостингового та комерційного приймання.