Тестове завдання на вакансію Junior AI Web Developer

План сайту

Сайт послуг з калькулятором вартості, адмінкою і заявками в Telegram. Зроблено з Claude Desktop; тексти, рішення і журнал роботи з AI лежать у репозиторії.

Мета

Приводити заявки на збірку і легкий ремонт меблів напряму майстрові, без посередників і дзвінків «а скільки коштує». Клієнт бачить ціни одразу, рахує орієнтовну вартість у калькуляторі й залишає заявку, яка за секунду приходить майстрові в Telegram.

Аудиторія

Сторінки і структура

АдресаЩо тамДля кого
/Односторінковий лендінг (структура нижче)клієнти
/planЦя сторінка: план сайтурекрутер
/adminАдмінка: прайс, фото, зміна пароля (логін + пароль)майстер
/api/contentПрайс і фото для сторінки (JSON)сайт
/api/leadПриймає заявку з форми і надсилає в Telegramсайт

Головна сторінка зверху вниз (структура «Ціни-перший»):

  1. Шапка (липка): назва, меню розділів на комп'ютері, телефон та ім'я майстра.
  2. Перший екран: слоган, заголовок, кнопки «Подзвонити» і «Порахувати вартість».
  3. Ціни і калькулятор: усі групи прайсу розгорнуті картками. Біля кожної позиції кнопки «−/+»; липка панель показує «Обрано N позицій, від X грн» і кнопкою «Додати в заявку» вписує розрахунок у форму.
  4. Що робимо: 4 картки (збірка, легкий ремонт, кухні під ключ, розбирання і переїзд).
  5. Наші роботи: галерея фото з адмінки; порожні місця показуються заглушками.
  6. Залишити заявку: телефон, кнопка «Написати у Telegram», форма (ім'я*, телефон*, що зробити*, фото).
  7. Підвал: контакти, посилання на план і непомітна шестерня для входу в адмінку.
  8. На телефоні: закріплена панель «Подзвонити» + «Telegram».

Як це працює

Клієнт ──► сайт (Cloudflare Pages, папка site/)
              │  прайс і фото ◄── /api/content ◄── сховище KV
              │  калькулятор рахує з того ж прайсу
              │  форма заявки ──► /api/lead ──► Telegram-бот ──► телефон майстра
Майстер ──► /admin (логін + пароль) ──► змінює прайс і фото ──► KV

Технічні рішення і чому

РішенняЧому
Чистий HTML/CSS/JS, без фреймворків і збирачаСторінка одна, важить ~30 КБ, відкривається миттєво з телефона; правити може будь-хто.
Cloudflare Pages + Pages Functions + KV0 грн/рік, SSL і CDN у комплекті, серверна частина в тому ж проєкті, платіжна картка не потрібна.
Заявки в Telegram замість CRMМайстер і так у Telegram; жодних акаунтів і пошти; заявка приходить за секунду.
Калькулятор рахує з прайсу адмінкиОдне джерело правди: змінив ціну в адмінці — змінився і калькулятор.
Власна адмінка з логіном і паролемДля людини без технічних навичок: прайс і фото правляться з телефона.
Безпека адмінкиХеш пароля PBKDF2, сесія в cookie HttpOnly, блокування після 5 невдалих входів, авто-вихід через 5 хвилин.

Як працював з AI (Claude Desktop)

  1. Правила в CLAUDE.md: мова, заборона реальних даних клієнта, секрети лише в Cloudflare, кожне рішення з датою в журналі рішень.
  2. Порядок: мета → варіанти (три кольорові гами, три структури сторінки, зверстані й порівняні поруч) → вибір → код → перевірка в браузері на телефоні і комп'ютері → документація.
  3. Документація замість історії чату: README, TODO, папка docs. Нова сесія Claude починає з них і продовжує роботу без втрат.
  4. Перевірка, а не довіра: кожен крок адмінки і форми перевірено запитами до локального сервера (401/400/429, завантаження фото, зміна пароля).
  5. Безпека на кожному кроці: токени й паролі вводить людина в терміналі, AI їх не бачить і в файли не кладе.

Що далі

← На сайт