Roboweb/Блог
    Все статьи
    Для студий и фрилансеров16 сентября 20267 мин чтения

    Как передать проект клиенту: код в его репозиторий и доступы

    Как передать проект клиенту после разработки: код в его репозиторий на GitFlic или GitHub, права, секреты, домен, заявки в CSV, акт приёмки и поддержка.

    Как передать проект клиенту: код в его репозиторий и доступы

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

    Почему код должен сразу жить в репозитории клиента

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

    • Клиент платит за актив. Пока код лежит у вас, клиент владеет им только на бумаге, и он это понимает.
    • Меньше споров об оплате. Клиент видит промежуточные версии в своём репозитории, а не получает архив в последний день.
    • Вы не храните чужое. Не нужно годами держать проекты бывших клиентов и отвечать за доступы к ним.
    • Повторные заказы. Клиент, которому отдали всё без торга, возвращается с новыми задачами охотнее, чем тот, кто выпрашивал пароли.

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

    Если проект собран в Roboweb, выгрузка кода даёт архив с проектом на Next.js + Prisma + PostgreSQL. Его содержимое размещается в репозитории клиента обычными средствами git — на GitFlic, GitHub или внутреннем сервере компании. Прямая выгрузка в GitHub из кабинета для передачи не подходит: она создаёт новый публичный репозиторий в аккаунте GitHub, подключённом к кабинету студии, а не приватный репозиторий в организации клиента. Экспорт доступен на платных тарифах и расходует энергию, поэтому заложите его в смету, особенно если выгрузок будет несколько. Как учитывать такие расходы в фиксированной цене, мы разбирали в статье о фикс-цене для клиента.

    Подготовка: аккаунт клиента на GitHub или GitFlic и права доступа

    Площадку выбирает клиент — с учётом того, где его компании удобнее и надёжнее хранить код. Аргументы за и против собраны в статье GitFlic или GitHub. Дальше порядок одинаковый:

    1. Аккаунт или организацию создаёт клиент — на корпоративную почту, а не на личную почту сотрудника и не на вашу.
    2. Владелец — сотрудник клиента с включённой двухфакторной аутентификацией, если площадка её поддерживает.
    3. Студию приглашают участником с правом записи в конкретный репозиторий, а не владельцем организации.
    4. Репозиторий приватный, если клиент сознательно не решил иначе.
    5. После сдачи права студии понижаются до чтения или отзываются полностью — это фиксируется в акте.

    Сравните два подхода:

    • Плохо: «Создадим репозиторий у себя, а в конце передадим». Конец проекта часто размыт, и «в конце» не наступает.
    • Хорошо: «Репозиторий в организации клиента с первого дня; у клиента права владельца, у студии — участника».

    Что входит в передачу: код, схема базы, переменные окружения, домен

    Что передаёмГде находитсяЧьё после сдачи
    Исходный кодРепозиторий клиентаКлиента
    Схема базыprisma/schema.prismaКлиента
    Список переменных.env.exampleКлиента
    Значения секретовМенеджер паролей клиентаКлиента
    База PostgreSQLХостинг клиентаКлиента
    ДоменКабинет регистратораКлиента
    ЗаявкиФайл CSVКлиента

    Пояснения к строкам, в которых чаще всего ошибаются:

    • Код. В выгрузке фронтенд, серверная часть, аккаунты посетителей и серверные функции. Что где лежит, подробно описано в разборе структуры экспорта на Next.js + Prisma.
    • Схема базы. Разворачивается скриптом db:push, миграций в комплекте нет. Скажите об этом клиенту прямо: менять схему на живой базе без плана нельзя.
    • Переменные окружения. В .env.example указан DATABASE_URL. Реальные значения в репозиторий не попадают и не пересылаются в чатах и почте — только через менеджер паролей или другой защищённый канал.
    • Домен. Оформлен на клиента. Если когда-то регистрировали его на себя «для скорости», переоформите до сдачи. Подключение своего домена к проекту доступно на платных тарифах.
    • Хостинг и база. Если после выгрузки продукт переезжает на инфраструктуру клиента, аккаунты оформляются на клиента, а оплата идёт с его реквизитов.

    Короткая инструкция для следующего разработчика

    В README выгрузки уже описаны запуск и ограничения. Добавьте к нему раздел о передаче — на одну-две страницы:

    1. Запуск: установить зависимости, задать DATABASE_URL, выполнить db:push, запустить dev; для сборки — build и start.
    2. Где работает продукт: хостинг, база, домен и на кого они оформлены.
    3. Ограничения каркаса: поля моделей в схеме строковые, типы и связи нужно уточнить; безопасность стартовая — нужны HTTPS, доверенный обратный прокси и периодическая чистка просроченных сессий; один экспорт — одна база данных.
    4. Устройство интерфейса: разметка хранится в app/_site.ts, формы, каталог, кабинет и корзину оживляет public/rw-export.js. Компонентов React по экранам в выгрузке нет: если они нужны, разметку на них раскладывает разработчик.
    5. Что меняли руками после выгрузки — список файлов и причин, чтобы новая выгрузка не затёрла доработки.
    6. Контакты: кто у клиента принимает решения по продукту.

    Если инструкция не помещается в две страницы, это сигнал, что проект пока не готов к передаче.

    Заявки и данные: выгрузка и передача ответственности

    Данные — самая чувствительная часть сдачи.

    • Заявки. Разберите статусы в разделе «Заявки с проектов» — новые, обработанные, отклонённые — и выгрузите их в CSV. Файл передаётся тем же защищённым каналом, что и секреты.
    • Куда пойдут новые заявки. Заявки приходят туда, где живёт проект. Если после сдачи он продолжает публиковаться из кабинета студии, обращения клиентов будут приходить вам. Договоритесь заранее, где проект живёт дальше.
    • Тестовые данные. Уберите из базы проекта тестовые аккаунты и записи, а тестовые заявки в кабинете отметьте отклонёнными, чтобы клиент не путал их с настоящими.
    • Ответственность. После передачи данными распоряжается клиент. Копии на стороне студии удаляются в согласованный срок, а факт удаления фиксируется в акте. Если студия работала с персональными данными по поручению клиента, условия такого поручения по 152-ФЗ нужно закрепить в договоре, а правовые детали согласовать с юристом клиента.

    Хорошая сдача — та, после которой клиент может обойтись без вас. Именно поэтому он чаще возвращается.

    Акт приёмки и условия поддержки после сдачи

    В акт стоит включить:

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

    Условия поддержки фиксируйте отдельно от сдачи:

    1. Срок бесплатного исправления ошибок в сданной версии.
    2. Граница между ошибкой и новой задачей: «форма не отправляется» — ошибка, «добавьте поле» — новая задача.
    3. Срок реакции на обращения — прописывается в договоре.
    4. Стоимость доработок: почасово или фиксированными пакетами.
    5. Изменения третьих лиц: поддержка распространяется на сданную версию; правки другого разработчика оцениваются отдельно.

    Следующий шаг: превратите этот чек-лист в приложение к договору и шаблон акта. Пройдите его на текущем проекте до финального платежа — пропущенные пункты проще закрыть сейчас, чем через полгода по звонку клиента.

    Понравилась статья?

    Поделитесь с коллегами и друзьями

    Telegram

    Готовы запустить свой продукт?

    Опишите идею — ИИ соберёт фуллстек с бэкендом, а код останется вашим активом

    Создать проект бесплатно