Tutorly — техническое описание

0. Бизнес-цели и успех (обязательно)

  • Цель бизнеса (12–24 мес): Набрать 25 постоянных учеников и сформировать мини-группы; доход 250+ тыс. ₽/мес за 12 мес.
  • Кто платит vs кто пользуется: Платят родители; пользуются школьники 10–11 классов.
  • Ценность для пользователя (одной фразой): Понятный план подготовки к ЕГЭ с репетитором, у которого проверяемые результаты.
  • KPI успеха v1 (3–7 измеримых):
    • ≥ 30 заявок на пробное занятие в месяц
    • Конверсия пробное → оплата ≥ 50%
    • Конверсия сайта ≥ 5%
    • Средний балл учеников ≥ 80
    • ≥ 20 отзывов на сайте
  • Монетизация / экономика: Индивидуально 2 500 ₽/60 мин, мини-группа 1 200 ₽, пакет 8 занятий со скидкой 10%.
  • Go-to-market: Профи.ру и Авито как источник отзывов, VK и Telegram-канал с разборами задач, сарафан родителей.
  • SEO / контент / маркетинг в v1: Страницы «репетитор по профильной математике ЕГЭ онлайн», «подготовка к ЕГЭ с нуля»; блог с разборами задач №1–19.
  • Конкуренты / аналоги (1–3) и отличие: Профи.ру, онлайн-школы (Умскул, 100балльный). Отличие: персональный подход, маленькие группы, прозрачные результаты.
  • Анти-цели v1: Не делаем LMS, видеокурсы и оплату на сайте в v1.

1. Название и суть

  • Название проекта: Tutorly — сайт репетитора по математике ЕГЭ
  • Одной фразой: Личный сайт репетитора с программой, отзывами и записью на пробное занятие.
  • Для кого: Родители и школьники, готовящиеся к профильной математике.
  • Проблема: Родителям сложно оценить репетитора: нет понятной программы, цен и подтверждённых результатов.
  • Связь с §0: каждый сценарий v1 ведёт к KPI конверсии и измеряется целями в аналитике.

2. Границы

IN SCOPE (обязательно в v1):

  • Hero с оффером и записью на бесплатную диагностику
  • Блок «Обо мне»: опыт, баллы учеников
  • Форматы и цены
  • Программа подготовки по этапам
  • Отзывы родителей и учеников
  • FAQ
  • Форма записи на консультацию с выбором удобного времени
  • Админ-список заявок

OUT OF SCOPE:

  • Личный кабинет ученика
  • Оплата онлайн
  • Видеокурсы

Позже (v2+):

  • Кабинет с домашними заданиями
  • Оплата пакетов
  • Telegram-бот напоминаний

3. Стек

  • Frontend: React 19 + Vite (продакшен); макет — чистый HTML/CSS/JS без сборки
  • Стили UI: CSS Modules / собственная дизайн-система по INPUT/DESIGN.html
  • Backend: Node.js 20 LTS + Express
  • БД OLTP: PostgreSQL 16
  • Аналитика / OLAP: Яндекс Метрика; OLAP не требуется в v1
  • Кэш / очереди / observability: не требуется в v1; логи pino, uptime-мониторинг
  • Хостинг / облако: VPS в РФ (Timeweb Cloud / Selectel), Nginx, Docker Compose
  • Монолит / модульный монолит / сервисы: модульный монолит

4. Ключевые сценарии

  1. Родитель читает программу, выбирает «индивидуально» и записывает ребёнка на диагностику в субботу.
  2. Школьник из соцсетей смотрит отзывы и оставляет заявку на мини-группу.
  3. Репетитор получает заявку в Telegram и подтверждает время.

5. Сущности и данные

СущностьПоля (примерно)СвязиЗаметки
Leadname, role(parent/student), phone, telegram, grade, format, preferred_time, comment, created_at—ПД
Reviewauthor, grade_result, text, date—С согласия автора
Packagetitle, lessons, price, format—Прайс
Articletitle, slug, body, task_number—v1: 3 статьи

6. Интеграции

  • Telegram Bot API — заявки
  • SMTP — копия
  • Яндекс Метрика
  • Ссылки на Профи.ру/Авито с отзывами

7. Нефункциональные требования

  • Ожидаемая нагрузка: До 3 000 посетителей в месяц
  • Latency / доступность: TTFB < 300 мс, LCP < 2,5 с на mobile, доступность 99,5%
  • Retention EventLog / evidence / audit: логи 30 дней, заявки/заказы 3 года, бэкап БД ежедневно с хранением 14 дней
  • Compliance: 152-ФЗ, согласие родителя для несовершеннолетних, самозанятость (чеки «Мой налог»)

8. Безопасность

  • Без регистрации; админка с JWT; капча и rate-limit на форму.
  • HTTPS (Let's Encrypt), helmet, CSP, валидация входных данных на сервере, секреты в .env вне репозитория.

9. UX / клиенты

  • Web, mobile-first.
  • Доступность: контраст AA, фокус-состояния, подписи полей форм.

9b. Дизайн

  • HTML-референс: INPUT/DESIGN.html (картинки в INPUT/assets/, описания в INPUT/assets/DESCRIPTIONS.md)

9c. CI/CD и окружения

  • Окружения: local / ci / staging / production
  • CI: GitHub Actions — lint, тесты, сборка Docker-образа; деплой на staging по merge в main, на production по тегу
  • Хостинг: VPS в РФ, Docker Compose, Nginx reverse proxy

10. Ограничения

  • Язык кода: TypeScript (strict) на фронте и бэке; автотесты Vitest + Playwright для ключевых сценариев
  • Запрещённые практики: хранение секретов в репозитории, ПД в логах, inline-SQL без параметров

11. Готовые модули

  • logging-pino
  • rate-limiting
  • caching-redis
  • auth-jwt
  • websocket-socketio
  • admin-panel
  • file-upload
  • crud-table
  • payments-stripe
  • search
  • email-nodemailer

12. Критерии приёмки v1

  • Форма записи валидирует телефон и время, показывает подтверждение
  • Заявка приходит в Telegram
  • Все цены и форматы видны без перехода
  • Адаптив 360–1920 px
  • Lighthouse SEO ≥ 95

13. Свободные заметки

Проект Webcraftly

Нужен такой же продукт?

Сайт репетитора ЕГЭ: программа, тарифы, отзывы и запись на диагностику.