Бот для опитувань та анкетування в мобільному додатку
Telegram-бот з опитуванням — лише половина справи. Коли потрібно керувати цими опитуваннями з мобільного додатка: створювати запитання, переглядати результати в реальному часі, будувати зрізи по аудиторії — завдання стає складнішим. Замовники часто приходять з готовим ботом, але без адмінки. Ми закриваємо цей пробіл за 3–5 днів, використовуючи Swift, Kotlin або Flutter. Наш досвід — 5+ років, понад 30 реалізованих проєктів опитувань та анкетування. При цьому ми враховуємо масштабування: якщо опитування проходить 100 000 користувачів, серверна частина має витримувати навантаження. Ми використовуємо корутини, async/await та пули з'єднань.
Як мобільний додаток керує опитуваннями?
Мобільний додаток — панель керування для творця опитування. Кінцеві користувачі проходять анкету через бота (Telegram, WhatsApp Business API або власний чат), а оператор через мобільний інтерфейс:
- створює запитання з типами (single choice, multiple choice, відкритий текст, шкала оцінки)
- публікує опитування в потрібний канал або розсилає конкретним сегментам
- спостерігає за відповідями в реальному часі
- вивантажує результати в CSV або Excel
Для зберігання структури опитування зручна JSON-схема. Кожне запитання — об'єкт з id, type, text, опціональними options[] та next_question_id (для розгалуження). Мобільний конструктор редагує цей JSON та зберігає через API.
// Android, редагування запитання в RecyclerView data class SurveyQuestion( val id: String = UUID.randomUUID().toString(), val type: QuestionType, // SINGLE, MULTIPLE, TEXT, RATING val text: String, val options: List<String> = emptyList(), val nextQuestionId: String? = null // null = наступний по порядку ) // ViewModel зберігає через корутини fun saveQuestion(question: SurveyQuestion) { viewModelScope.launch { val result = surveyRepository.upsertQuestion(surveyId, question) _uiState.update { it.copy(savedQuestion = result) } } } Результати приходять через WebSocket або polling кожні 30 секунд. На Flutter зручно використовувати StreamBuilder поверх Stream.periodic із запитом до /surveys/{id}/responses. Ми рекомендуємо WebSocket для опитувань з високою активністю — затримка менше 1 секунди, що в 30 разів швидше за polling.
| Метод | Затримка | Навантаження на сервер | Рекомендація |
|---|---|---|---|
| WebSocket | < 1 с | Низьке | Опитування з високою активністю |
| Polling 30 сек | до 30 с | Середнє | Опитування з низьким навантаженням |
Чому real-time аналітика важлива для опитувань?
Поки опитування активне, лічильник відповідей оновлюється в реальному часі. Організатор бачить, скільки вже відповіли, розподіл за варіантами. Ми гарантуємо оновлення не більше 100 мс. Завдяки плавним анімаціям (AnimatedController у Flutter) уникаються різкі стрибки навіть при швидкому потоці відповідей.
Для single/multiple choice — горизонтальні бари з відсотками (fl_chart BarChart). Бари перебудовуються при кожній новій відповіді через AnimatedController з плавним переходом до нового значення ширини. Різкі стрибки на UI дратують, особливо при швидкому потоці відповідей.
Для відкритих текстових відповідей — скрол-список з авторством (анонімно або з ім'ям) та можливістю позначити окремі відповіді як «ключові» (оператор тапає зірочку, відповідь закріплюється зверху).
Розгалуження запитань в опитуванні — next_question_id — впливає і на аналітику: різні користувачі бачили різні запитання. Дашборд показує «відповідали N з M» для кожного запитання, а не загальну кількість респондентів.
Як уникнути типових помилок при розробці опитувань?
| Помилка | Наслідок | Рішення |
|---|---|---|
| Синхронне відправлення відповідей | UI зависає при відправленні | Використовувати корутини або async/await |
| Зберігання результатів у локальній пам'яті | Втрата даних при перезапуску | Room / Core Data + серверна реплікація |
| Відсутність обробки мережевих помилок | Користувач бачить нескінченний спіннер | Retry-механізм з експоненціальною затримкою |
| Єдиний дашборд для всіх опитувань | Плутанина в даних | Ізольовані дашборди по survey_id |
Що входить у роботу
Наш досвід у мобільній розробці (5+ років, 30+ проєктів) дозволяє виконувати проєкти під ключ. Ми надаємо:
- Конструктор опитувань: додавання/редагування запитань, drag-and-drop порядок
- Керування розсилкою: вибір аудиторії, розклад (негайно або за часом)
- Дашборд результатів з графіками по кожному запитанню
- Push-сповіщення про завершення опитування або досягнення порогу відповідей
- Експорт у CSV/Excel
Докладніше про роботу з результатами
Ми реалізуємо експорт у CSV та Excel зі збереженням структури розгалуження. Кожна відповідь включає мітку часу та ідентифікатор респондента. Для аудиту можна відстежити, хто і як відповідав.Строки орієнтовно
Стандартний проєкт займає від 3 до 5 робочих днів залежно від складності конструктора та кількості типів запитань. Вартість розраховується індивідуально після аналізу вимог. Оцінимо ваш проєкт — напишіть нам, і ми запропонуємо рішення. Отримати консультацію можна за запитом. Ми гарантуємо стабільну роботу та підтримку після запуску. Замовте розробку мобільного додатка для опитувань — зв'яжіться з нами, і ми обговоримо деталі.







