Реалізація квізу/опитування на сайті

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Реалізація квізу/опитування на сайті
Середня
~5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Реалізація квізів та опросів

Квізи та опроси збирають зворотний зв'язок, проводять тестування, допомагають користувачам вибрати продукт. Ключові вимоги: гнучка структура питань, підтримка різних типів відповідей, відображення результатів.

Структура БД

CREATE TABLE quizzes (
    id          SERIAL PRIMARY KEY,
    title       VARCHAR(255) NOT NULL,
    description TEXT,
    type        VARCHAR(50)  NOT NULL DEFAULT 'survey',  -- survey|quiz|poll
    settings    JSONB        NOT NULL DEFAULT '{}',      -- show_results, randomize, time_limit
    is_active   BOOLEAN      NOT NULL DEFAULT true,
    created_at  TIMESTAMPTZ  NOT NULL DEFAULT NOW()
);

CREATE TABLE questions (
    id          SERIAL PRIMARY KEY,
    quiz_id     INTEGER REFERENCES quizzes(id) ON DELETE CASCADE,
    type        VARCHAR(50)  NOT NULL,  -- text|choice|multiple|rating|nps
    title       TEXT NOT NULL,
    required    BOOLEAN DEFAULT true,
    order_index INTEGER NOT NULL,
    metadata    JSONB DEFAULT '{}'
);

CREATE TABLE answers (
    id          SERIAL PRIMARY KEY,
    question_id INTEGER REFERENCES questions(id),
    text        TEXT NOT NULL,
    order_index INTEGER
);

CREATE TABLE responses (
    id          SERIAL PRIMARY KEY,
    quiz_id     INTEGER REFERENCES quizzes(id),
    user_id     INTEGER REFERENCES users(id),
    ip_address  INET,
    data        JSONB NOT NULL,  -- {question_id: answer_value, ...}
    completed_at TIMESTAMPTZ
);

React Компонент

function QuizForm({ quiz }: { quiz: Quiz }) {
  const [responses, setResponses] = useState<Record<string, any>>({});

  const handleSubmit = async () => {
    const res = await fetch(`/api/quizzes/${quiz.id}/responses`, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(responses),
    });
    if (res.ok) alert('Дякуємо за ваш відгук!');
  };

  return (
    <form onSubmit={handleSubmit}>
      {quiz.questions.map(q => (
        <QuestionField
          key={q.id}
          question={q}
          onChange={(val) => setResponses(prev => ({...prev, [q.id]: val}))}
        />
      ))}
      <button type="submit">Відправити</button>
    </form>
  );
}

Розклад

Базовий квіз з 3-4 типами питань та показом результатів: 2-3 дні. Продвинені функції (гілочення логіки, A/B тестування): 5-7 днів.