← Светлица — пульт проекта

Техническое задание. Закулисье Светлицы — минимальная система управления проектом (MVP 1.0)

> Пометка Claude, 12.10.2026 — перед передачей в разработку. Текст ТЗ — как утвердил основатель > (из переписки с ChatGPT, «Штаб» → «Закулисье»). Реальное состояние на сегодня: > сайта с формами и базой пока нет. Есть статические прототипы (шаблоны/Лендинг.html, > Страница мастер-класса.html, Стать наставницей.html, Команда.html) и пульт на обычном хостинге > (rusgoncharov.ru/svetlitsa/, Timeweb). Формы никуда не отправляют данные, авторизации и сервера приложения нет. > Поэтому этап 0 «Аудит» начинается с решения основателя: где живут данные — свой сервер (PHP/Python + база > на хостинге в РФ), готовый сервис (Camp Control и т. п.) или на самом старте таблица. Связано с пунктом роудмэпа > «Подключить формы записи к базе» и с юр. пакетом (юр/, согласия; данные граждан РФ хранятся в РФ). > Отдельно нужны: домен Светлицы и выбор платёжного сервиса с чеками.

Проект: Светлица Тип системы: внутренняя административная панель, интегрированная с существующим сайтом. Статус: MVP для запуска первых мастер-классов. Главный принцип: минимальная сложность при достаточной функциональности.

1. Назначение системы

«Закулисье Светлицы» — небольшая внутренняя система, позволяющая команде самостоятельно организовывать мастер-классы, принимать регистрации, учитывать оплаты, работать с участницами и их родителями, фиксировать посещения и сохранять историю взаимодействия с семьями.

Система должна быть непосредственно связана с существующим сайтом «Светлицы».

На сайте уже существуют:

Перед разработкой необходимо изучить существующий код, архитектуру, используемый стек и способ хранения данных.

Не создавать новый сайт. Не переписывать существующие компоненты без необходимости.

Основные задачи

  1. Исключить потерю заявок и контактов.
  2. Обеспечить удобную регистрацию на мероприятия.
  3. Организовать простой учёт оплат.
  4. Позволить команде самостоятельно управлять мероприятиями.
  5. Сохранять историю участия каждой девочки.
  6. Формировать единую базу семей.
  7. Обеспечить удобную коммуникацию с родителями.
  8. Предоставлять минимальную статистику.
  9. Обеспечить самостоятельную работу команды без постоянного участия разработчика.

Что система НЕ должна делать

На данном этапе не требуется:

2. Архитектура

2.1. Общая схема

Система состоит из двух частей.

Публичная часть

Существующий сайт «Светлицы»:

Закрытая часть

Административная панель «Закулисье Светлицы».

Доступна только авторизованным участницам команды.

Предлагаемая структура:

Сайт → Регистрация → Хранилище данных → Закулисье Светлицы.

При подключении оплаты:

Регистрация → Платёжный сервис → Подтверждение оплаты → Обновление записи в Закулисье.

2.2. Технические требования

Использовать существующий технологический стек сайта.

Не вводить отдельный сервер или сложную инфраструктуру, если текущая архитектура позволяет обойтись без этого.

Предпочтительны:

Допускается использование SQLite или существующей базы данных проекта, если это соответствует инфраструктуре и предполагаемой нагрузке.

Не создавать отдельный микросервис без необходимости.

Не использовать локальное хранилище браузера как основное место хранения заявок.

Данные должны сохраняться на сервере и быть доступны авторизованной команде с разных устройств.

3. Структура данных

Главное архитектурное решение:

Семья → Дети → Регистрации → Мероприятия.

Это позволяет избежать создания новой независимой карточки человека при каждом посещении.

3.1. Семья

Основная единица клиентской базы.

Поля:

На первом этапе достаточно одного основного контактного лица.

В будущем допускается добавление второго родителя.

3.2. Ребёнок

Каждая девочка привязана к семье.

Поля:

В карточке ребёнка автоматически отображается история посещений.

Не собирать медицинские, психологические и другие чувствительные сведения без отдельной обоснованной необходимости и надлежащего оформления.

3.3. Мероприятие

Поля:

Статусы:

3.4. Регистрация

Связующая сущность между ребёнком и мероприятием.

Поля:

Важно: статус регистрации, статус оплаты и статус посещения должны храниться отдельно.

Например, девочка может быть зарегистрирована и оплатить участие, но не прийти.

Или семья может отменить регистрацию после оплаты.

Статус регистрации

Статус оплаты

Статус посещения

Система должна предотвращать случайное создание двух активных регистраций одного ребёнка на одно мероприятие.

4. Административная панель

4.1. Главная страница — Дашборд

После авторизации пользователь попадает на главную страницу.

Отображаются:

Ближайшие мероприятия

Для каждого:

Новые заявки

Количество необработанных регистраций.

Краткая статистика

Не создавать сложные графики.

Главная задача дашборда — за несколько секунд понять, что происходит в проекте.

5. Управление мероприятиями

5.1. Список мероприятий

Отображать мероприятия в виде карточек или таблицы.

Фильтры:

5.2. Создание мероприятия

Команда должна самостоятельно создавать новое мероприятие.

Не требуется участие разработчика.

При создании указываются основные поля мероприятия.

Дополнительно желательно предусмотреть возможность дублирования существующего мероприятия.

Например:

«Каллиграфия. 15 ноября» → «Каллиграфия. 29 ноября».

При дублировании копируются основные настройки, но не регистрации и оплаты.

5.3. Карточка мероприятия

Главный рабочий экран организатора.

В верхней части:

Ниже — показатели:

Записано: 12 / 15

Оплачено: 9

Ожидают оплаты: 3

Далее — список участниц.

Колонки:

ДевочкаРодительКонтактОплатаПосещениеКомментарий

Действия:

Добавление участницы вручную

Обязательная функция.

Например, мама позвонила и попросила записать дочь.

Или захотела привести сестру.

Организатор должен иметь возможность:

  1. Найти существующую семью по телефону.
  2. Выбрать ребёнка или добавить нового.
  3. Выбрать мероприятие.
  4. Создать регистрацию.

Если семья новая — создать её прямо в процессе.

Не заставлять организатора переходить через множество экранов.

6. Регистрация с сайта

6.1. Общий сценарий

Родитель открывает страницу мастер-класса.

Нажимает кнопку «Записаться».

Заполняет форму.

Минимальные поля:

Email — необязательное поле, если он не требуется для выбранного способа оплаты и отправки документов.

После отправки:

  1. Проверяются обязательные поля.
  2. Проверяется доступность мест.
  3. Создаётся или находится существующая семья.
  4. Создаётся или выбирается ребёнок.
  5. Создаётся регистрация.
  6. Родитель получает подтверждение принятия заявки.
  7. Регистрация появляется в административной панели.

Важно

Отправка формы не означает автоматического подтверждения оплаты.

На странице необходимо чётко сообщать статус записи.

Например:

«Ваша заявка получена. Для подтверждения участия необходимо оплатить мастер-класс».

Текст должен соответствовать реальной схеме регистрации.

6.2. Повторная регистрация

Если телефон уже есть в базе, система должна попытаться найти существующую семью.

Не создавать автоматически новую семью при каждом обращении.

При этом нельзя раскрывать историю семьи или персональные данные только на основании введённого номера телефона.

При неоднозначном совпадении необходимо предусмотреть ручную проверку организатором.

6.3. Регистрация нескольких детей

Если родитель хочет записать двух сестёр, система должна поддерживать две регистрации на одно мероприятие, привязанные к одной семье.

На первом этапе допустимо добавлять вторую девочку через административную панель.

В публичной форме возможность записи нескольких детей можно реализовать позднее.

7. Оплата

7.1. Общий принцип

Не разрабатывать собственный платёжный механизм.

Использовать существующий или выбранный платёжный сервис.

Система должна учитывать:

Не хранить реквизиты банковских карт.

7.2. Первый этап

Допускается ручное подтверждение оплаты уполномоченным сотрудником после сверки с платёжным сервисом или банком.

Это позволяет запустить систему без сложной интеграции.

При этом сам приём платежей должен осуществляться законным способом с необходимой фискализацией и выдачей чеков.

7.3. Второй этап

Если выбранный платёжный сервис поддерживает API и webhook, реализовать автоматическое обновление статусов.

Обязательные требования:

7.4. Что видит родитель после оплаты

После успешной оплаты родитель должен попадать на страницу подтверждения.

На ней:

Если подтверждение от платёжного сервиса ещё не поступило, отображать статус «Проверяем оплату», а не «Оплачено».

8. База семей

8.1. Список семей

Отображать:

Поиск по имени и телефону.

8.2. Карточка семьи

В карточке:

Контакты

Имя родителя, телефон, email, предпочтительный способ связи.

Дети

Список девочек, привязанных к семье.

История участия

Все регистрации на мероприятия.

Комментарии

Краткие заметки команды.

Например:

«Интересуются летним лагерем».

«Понравилась каллиграфия, хотят прийти на следующий мастер-класс».

«Удобнее мероприятия по выходным».

Комментарии должны быть доступны только уполномоченным сотрудникам.

Не использовать карточку семьи для хранения необоснованных субъективных характеристик родителей или детей.

8.3. Редактирование

Команда должна самостоятельно:

Удаление или объединение записей должно быть защищено от случайных действий.

9. Коммуникации

На первом этапе не требуется интеграция с мессенджерами.

В карточке семьи предусмотреть удобные действия:

Ссылки должны открывать соответствующее приложение или интерфейс.

Не предполагать, что по одному номеру телефона всегда можно открыть диалог в конкретном мессенджере.

История коммуникаций

На первом этапе достаточно комментариев.

Например:

«12 ноября — отправили информацию о мастер-классе».

«13 ноября — мама подтвердила участие».

Автоматическую синхронизацию переписок не делать.

Шаблоны сообщений

Предусмотреть несколько готовых текстов с возможностью копирования:

  1. Подтверждение регистрации.
  2. Напоминание о мероприятии.
  3. Благодарность после мероприятия.
  4. Приглашение на следующее мероприятие.

Шаблоны должны быть доступны команде для редактирования без изменения кода.

Автоматические рассылки на первом этапе не требуются.

Рекламные и информационные сообщения отправлять с учётом необходимых согласий и применимых правил коммуникации.

10. Заявки наставниц

Поскольку на сайте уже существует форма для потенциальных наставниц, необходимо обеспечить сохранение таких заявок.

Создать отдельный простой раздел «Команда».

Поля:

Статусы:

Не создавать полноценную HR-систему.

11. Минимальная статистика

Необходимые показатели:

По мероприятиям

По семьям

По деньгам

На первом этапе это показатели движения денег по мероприятиям, а не полноценный бухгалтерский или управленческий финансовый отчёт.

Расходы допускается учитывать отдельно.

Не создавать сложную финансовую модель внутри системы.

12. Пользователи и доступ

Минимальные роли:

Администратор

Организатор

На первом этапе не создавать более сложную ролевую систему.

Однако доступ к контактам семей, данным детей и платежам должен предоставляться только тем участникам команды, кому он необходим.

Обязательные требования:

Не допускать доступ к административной панели через простой секретный URL без авторизации.

13. Работа с данными и надёжность

Обязательные требования:

  1. Данные сохраняются на сервере.
  2. Есть регулярное резервное копирование.
  3. Есть возможность выгрузки семей и регистраций в CSV.
  4. Ошибки формы не приводят к потере введённых данных.
  5. Повторная отправка формы не создаёт неконтролируемые дубли.
  6. Ошибки платежей не создают ложный статус оплаты.
  7. В системе фиксируются основные изменения финансовых статусов.
  8. Есть понятный способ восстановить работу после сбоя.

Для персональных данных необходимо определить законное основание обработки, необходимые согласия, сроки хранения, порядок удаления и права доступа. Также проверить применимые требования к размещению и обработке данных граждан РФ.

14. Интерфейс

Стиль:

Основной сценарий — работа с ноутбука.

Обязательно обеспечить удобное использование со смартфона.

Особенно важно на телефоне:

Не создавать отдельное мобильное приложение.

Главное требование к UX

Любая типовая операция должна выполняться быстро и без необходимости обращаться к разработчику.

15. Порядок разработки

Этап 0. Аудит существующего проекта

Перед написанием кода:

  1. Изучить структуру сайта.
  2. Определить технологический стек.
  3. Найти существующие формы.
  4. Проверить, как сейчас сохраняются заявки.
  5. Определить, есть ли уже база данных и авторизация.
  6. Проверить готовность страниц мероприятий к повторному использованию.
  7. Составить краткий план изменений.

Не начинать переписывать архитектуру до завершения аудита.

Этап 1. Обязательный MVP

Реализовать:

Это первая рабочая версия.

Этап 2. После первого мероприятия

На основании реального использования:

Не добавлять функции только потому, что их легко реализовать.

Этап 3. После нескольких мероприятий

Рассмотреть:

Реализовывать только при подтверждённой необходимости.

16. Критерии готовности

MVP считается готовым, если команда без участия разработчика может выполнить следующие действия.

Сценарий 1. Новая семья

Мама впервые открывает сайт, записывает дочь на мастер-класс.

Заявка появляется в Закулисье.

Организатор видит контакт и статус регистрации.

Сценарий 2. Повторное посещение

Мама записывает ту же девочку на другое мероприятие.

Система связывает регистрацию с существующей семьёй.

История посещений сохраняется.

Сценарий 3. Две сестры

Мама хочет записать двух дочерей.

Организатор создаёт две регистрации, связанные с одной семьёй.

Сценарий 4. Оплата

Мама оплачивает мероприятие через согласованный платёжный сервис.

Организатор видит подтверждение оплаты или вручную отмечает его после проверки.

Система не считает неоплаченную заявку оплаченной.

Сценарий 5. День мероприятия

Организатор открывает список участниц со смартфона.

Отмечает, кто пришёл.

При необходимости открывает контакт родителя.

Сценарий 6. Отмена

Родитель отменяет участие.

Организатор изменяет статус регистрации.

При необходимости отдельно отражает возврат средств.

Место освобождается в соответствии с правилами регистрации.

Сценарий 7. Новое мероприятие

Организатор самостоятельно создаёт новый мастер-класс.

Публикует его на сайте.

Открывает регистрацию.

Для этого не требуется участие разработчика.

Сценарий 8. Повторное приглашение

Организатор находит семьи, которые уже посещали мероприятия.

Просматривает историю.

Связывается с родителями через доступный согласованный канал.

Сценарий 9. Резервное копирование

Администратор может получить экспорт основных данных.

При техническом сбое предусмотрен проверенный порядок восстановления.

17. Ограничения проекта

Приоритет — не максимальная функциональность, а быстрый запуск устойчивой минимальной системы.

Разработчику запрещается без отдельного согласования:

Если требование можно реализовать простым способом, предпочтение отдаётся простому способу.

Если функция существенно увеличивает сроки или сложность, предложить упрощённую альтернативу.

18. Главный принцип проекта

«Закулисье Светлицы» должен быть достаточно простым, чтобы команда могла самостоятельно работать в нём уже после первого знакомства.

Система должна помогать проводить мероприятия, сохранять отношения с семьями и улучшать продукт.

Она не должна становиться отдельным большим IT-проектом.

Критерий успеха

Команда способна самостоятельно:

Создать мероприятие → Принять регистрации → Организовать оплату → Провести мероприятие → Отметить посещения → Сохранить историю → Пригласить семьи снова.

Без постоянного участия основателя.

19. Инструкция для Claude Code

Перед реализацией:

  1. Изучи существующий репозиторий.
  2. Опиши текущую архитектуру.
  3. Определи, какие функции уже существуют.
  4. Найди самый простой способ реализовать обязательный MVP.
  5. Предложи минимальную структуру данных.
  6. Составь план разработки с оценкой сложности.
  7. Отдельно перечисли вопросы, которые требуют решения владельца проекта.

Не начинай масштабную разработку, пока не согласован план.

После согласования:

Конечный результат — работающая минимальная система, а не демонстрационный прототип.