Складання технічного завдання на розробку сайту

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

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

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Складання технічного завдання на розробку сайту
Середня
~2-3 робочих дні
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • 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

Складання технічного завдання на розробку сайту

Технічне завдання — документ, який фіксує що саме буде розроблено, у якому вигляді, та як це буде перевірятися. Погане ТЗ — джерело суперечок про те, хто правий. Хороше ТЗ — інструмент комунікації між замовником, розробниками та тестувальниками.

Основна помилка при написанні ТЗ: описувати інтерфейс замість поведінки. «Синя кнопка в правому куті» — не ТЗ. «При натисненні на кнопку "Оформити замовлення" система створює замовлення зі статусом draft, резервує товар на складі, відправляє email підтвердження та перенаправляє користувача на сторінку /orders/{id}» — ТЗ.

Структура технічного завдання

1. Призначення та цілі системи

Описує контекст: для кого створюється, яку бізнес-задачу вирішує, які критерії успіху (не «зручний сайт», а «конверсія в заявку не менше 3%», «час завантаження головної сторінки до 2 секунд»).

2. Користувацькі ролі та права

Ролі:
- Гість (неавтентифікований користувач)
- Покупець (зареєстрований користувач)
- Менеджер (працівник компанії)
- Адміністратор

Матриця доступу:
| Дія                 | Гість | Покупець | Менеджер | Адмін |
|---------------------|-------|----------|---------|-------|
| Переглянути каталог | ✓     | ✓        | ✓       | ✓     |
| Додати в кошик      | ✓     | ✓        | —       | —     |
| Оформити замовлення | ✗     | ✓        | —       | —     |
| Керувати замовленнями | ✗   | свої     | всі     | всі   |
| Керувати товарами   | ✗     | ✗        | ✓       | ✓     |
| Керувати користувачами | ✗  | ✗        | ✗       | ✓     |

3. Функціональні вимоги

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

FR-001: Реєстрація користувача

Передумови:
- Користувач не автентифікований
- Email не зареєстрований у системі

Основний сценарій:
1. Користувач вводить email, пароль, ім'я
2. Система валідує дані (формат email, пароль ≥ 8 символів)
3. Система створює облік зі статусом "не підтверджений"
4. Система відправляє лист з посиланням підтвердження (TTL 24 години)
5. Користувач отримує повідомлення "Перевірте email"

Виключення:
- Email вже використовується → помилка "Цей email вже зареєстрований"
- Невалідний email → помилка валідації
- Помилка відправки email → завдання ставиться в повторну чергу,
  користувачу показується повідомлення "Лист прийде впродовж кількох хвилин"

Результат: запис у таблиці users, запис у черзі email

4. Нефункціональні вимоги

Продуктивність:

  • Час відповіді API: 95-й перцентиль < 300ms при навантаженні 100 rps
  • Сторінка каталогу: FCP < 1.5s, LCP < 2.5s (Core Web Vitals)
  • Розмір початкового JS-бандла: < 150KB gzip

Надійність:

  • Uptime: 99.5% (планові простої поза робочим часом)
  • Час відновлення після збою: < 15 хвилин
  • Резервна копія БД: щодня, зберігання 30 днів

Безпека:

  • Аутентифікація: JWT з TTL 1 година + refresh token 30 днів
  • Хеширування паролів: bcrypt, cost factor 12
  • Rate limiting: 5 невдалих спроб входу → блокування на 15 хвилин
  • HTTPS всюди, HSTS header
  • SQL-ін'єкції: лише параметризовані запити, ORM
  • XSS: Content Security Policy, санітизація користувацького вводу

5. Інтеграції

Зовнішні сервіси:
- Оплата: ЮKassa (API v3)
  - Методи: банківська карта, СБП, ЮMoney
  - Webhook: POST /api/payments/webhook (HMAC-SHA256 підпис)

- Доставка: СДЭК API v2
  - Розрахунок вартості при оформленні замовлення
  - Створення накладної при підтвердженні замовлення
  - Трекинг через webhook або polling (кожні 4 години)

- Email: SendGrid (transactional)
  - Підтвердження реєстрації
  - Відновлення пароля
  - Статуси замовлень

- Аналітика: Яндекс.Метрика + GA4
  - Електронна торгівля (перегляд товару, додавання в кошик, купівля)

6. Схема даних

Не повна ERD-діаграма, але ключові сутності та їх відносини:

users (1) ─── (N) orders
orders (1) ─── (N) order_items
order_items (N) ─── (1) products
products (N) ─── (1) categories
products (1) ─── (N) product_images
users (1) ─── (1) carts
carts (1) ─── (N) cart_items

7. Середовища та розгортання

Середовища:
- development: локально (Docker Compose)
- staging: https://staging.example.com — для тестування перед релізом
- production: https://example.com

CI/CD:
- Гілка develop → автодеплой на staging
- Гілка main → деплой на production (ручне підтвердження)
- Прогон тестів обов'язковий перед деплоєм

Моніторинг:
- Uptime: UptimeRobot (перевірка кожну хвилину)
- Помилки: Sentry
- Метрики: Grafana + Prometheus

8. Критерії приймання

Чіткі умови, при яких робота вважається виконаною:

Модуль "Каталог":
☐ Список товарів з пагінацією (20 товарів на сторінці)
☐ Фільтрація по категорії, ціні, наявності
☐ Сортування по ціні, новизні, популярності
☐ Пошук працює (повнотекстовий, від 3 символів)
☐ Карточка товару: фото, опис, ціна, кнопка "В кошик"
☐ Breadcrumbs з мікромітками BreadcrumbList
☐ LCP карточки товару < 2.5s на мобільному (Lighthouse)
☐ Тест: додавання неіснуючого товару повертає 404

Формат документа

ТЗ живе в Git разом з кодом. Markdown + PlantUML для діаграм. Версіонується, проходить ревью через PR. Зміни вимог — через PR з обговоренням, не через Telegram.

Обсяг розумного ТЗ для сайту середної складності: 30–80 сторінок. Менше — недостатня деталізація. Більше — ТЗ заради ТЗ, яке ніхто не читає.

Сроки

Складання ТЗ для інтернет-магазину середнього розміру (50–100 екранів) — дві-три тижні з урахуванням ітерацій з замовником. Це включає: аналітичні інтерв'ю з stakeholders, прописування сценаріїв використання, узгодження нефункціональних вимог, ревью з технічною командою. Економія на ТЗ зазвичай обертається переробками, які коштують у 3–5 разів дорожче.