Портфолио из трёх кейсов

В уроке 2.6 ты уже писал кейс по боту. Посмотри на него сейчас. Скорее всего там «сделал бота для онлайн-школы, вот снимок». Заказчик прочитает это за три секунды и не поймёт, что ты для него можешь. Портфолио нужно, чтобы незнакомый человек поверил, что ты решишь его задачу. Поверит он цифрам и честности, а список технологий ему ничего не говорит.

Чему научишься в этом уроке:
• собирать кейс по схеме «задача → решение → цифры → что не получилось»;
• брать цифры из своего журнала и прогона, а не придумывать;
• проверять портфолио и репозиторий на ключи, личные данные и адреса серверов;
• выбирать три кейса из пяти продуктов.

Три кейса, а не семь

Обязательных продуктов пять, дашборд и мини-SaaS по желанию. Для портфолио бери три самых сильных. Сильный кейс тот, где есть настоящая цифра и настоящий сбой. Кейс со своим заказчиком сильнее учебного. Если весь трек ты делал «Кодиум», так и пиши: «учебный заказчик, онлайн-школа». Это честно и всё равно показывает, что ты умеешь.

Журнал продукта на этой неделе только начат, поэтому кейсы сейчас черновики. Строку «что не получилось» бери из провалов своего прохождения П1–П7: блоки «Если не получилось», свои заметки, сбои, которые ты чинил. Цифры журнала допишешь к сдаче трека на 16-й неделе (урок 9.7).

Схема кейса

  1. Задача. Словами заказчика, лучше из созвона. «Заявки теряются в личных сообщениях, администратор отвечает через полдня».
  2. Решение. Что сделано, с точки зрения пользователя. «Бот принимает заявку, проверяет телефон, заявка сразу попадает в кабинет менеджера». Список библиотек сюда не нужен, его место в README.
  3. Цифры. Минимум две, из твоего журнала или прогона.
  4. Что не получилось и как исправил. Один-два сбоя из журнала продукта или из своего прохождения П1–П7.
  5. Демо. Снимок или короткое видео живой работы, ссылка на репозиторий.

Четвёртая строка кажется лишней: зачем показывать ошибки? Представь, что выбираешь мастера для ремонта. Один пишет «всё сделаю идеально», другой «на прошлом объекте протекла труба под ванной, теперь я проверяю давление до плитки». Второму веришь больше: видно, что он доводит работу до конца и учится на ошибках.

Инфографика «Кейс в пять строк»: пять горизонтальных полос сверху вниз. «Задача: заявки теряются в личных сообщениях». «Решение: бот принимает заявку, она сразу в кабинете менеджера». «Цифры: ответ ассистента 3–7 с с сервера; 88 тестов». «Что не получилось: CRM зависла из-за хостинга; ключ заявки против дубля». «Демо: видео 3–5 минут, репозиторий». Полоса «Что не получилось» выделена цветом.

Откуда брать цифры

Цифра без источника хуже, чем её отсутствие: заказчик спросит «а как вы это посчитали?». Бери только то, что сам видел.

  • время работы агента и число заданий (по своим записям);
  • расход в кабинете CloseRouter за паттерн;
  • время ответа бота или ассистента, замеренное с сервера;
  • число тестов из итога pytest -q;
  • сколько дней продукт работает без твоего вмешательства, из журнала (урок 9.1);
  • медиана первого контакта и доля заявок быстрее часа из дашборда, если делал П5 (в прогоне 2,1 часа и 22,5%);
  • расход модели в месяц и при каком числе клиентов окупается подписка.

Для сравнения цифры автора. Агент собрал все продукты П1–П7 примерно за 12,2 $, из них большую часть съел П6 с переделками. Ответ ассистента стоит ≈ 0,0001–0,00025 $. Основная модель с сервера отвечает за 3–7 секунд. Твои цифры будут другими, и это нормально: в кейс идут твои.

Что нельзя показывать

Портфолио открыто всем. Это витрина магазина: на неё ставят товар, а не ключи от склада.

  • ключи, токены, пароли, файл .env, даже начало ключа (в П7 агент напечатал первые символы ключа в ответ, это тоже утечка);
  • личные данные: имена и телефоны заявителей, id пользователей Telegram, аватары, даже тестовые;
  • IP и внутренние адреса серверов, имена служб с путями;
  • ФИО, ИНН, номер магазина ЮKassa;
  • переписку с заказчиком целиком;
  • название школы или компании без разрешения владельца.

Репозиторий без секретов

Репозиторий на GitHub часто открывают раньше страницы. В README напиши задачу, как запустить и что положить в .env (имена переменных без значений). Перед тем как открыть доступ, проверь всю историю, а не только текущие файлы: секрет, удалённый вчера, остаётся в старом коммите. Как устроена история, ты видел в уроке 1.4, про .env был урок 1.6.

git ls-files | grep -i "\.env$"
git log -p | grep -inE "token|api_key|secret|password|sk-" | head -20

Первая команда должна вернуть пустоту: .env не в репозитории. Вторая показывает строки истории, где встречаются эти слова. Имена переменных вроде BOT_TOKEN= без значения допустимы. Нашёл значение ключа или токена: считай его утёкшим, перевыпусти и только потом решай, как чистить историю. Проще всего завести новый чистый репозиторий для показа.

Если не получилось

  • Нет ни одной своей цифры → открой журнал продукта и кабинет CloseRouter. Время ответа замерь с сервера сейчас.
  • Кейс получился списком технологий → перепиши строку «решение» так, чтобы её понял владелец школы.
  • Не хочется писать «что не получилось» → возьми запись из журнала, где сбой поймал ты сам. Это сильная сторона, а не слабая.
  • Поиск по истории нашёл токен → перевыпусти токен у @BotFather или ключ в кабинете, потом открывай репозиторий.

Контрольный вопрос. Черновик кейса: «Сделал Telegram-бота для онлайн-школы на aiogram и FastAPI. Всё работает отлично. Вот скриншот, сервер 203.0.113.7». Что нужно поправить? Отметь всё верное.

Выберите все верные варианты.

АДобавить список всех библиотек с версиями
БУбрать адрес сервера
ВДобавить цифры из журнала или прогона
ГДобавить задачу словами заказчика
ДДобавить, что не получилось и как исправил

Подсказка: Сверь черновик с пятью строками схемы и со списком того, что нельзя показывать.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Контрольный вопрос. Ты запустил поиск по истории репозитория и увидел строку BOT_TOKEN= с настоящим значением токена в коммите месячной давности. В текущих файлах токена нет. Что делаешь первым?

АНичего, в текущих файлах токена уже нет
БДелаю репозиторий публичным, пока никто не заметил
ВУдаляю один файл README
ГПеревыпускаю токен у @BotFather и меняю его в .env на сервере

Подсказка: Кто может прочитать старый коммит в открытом репозитории?

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Задание. МИССИЯ «Три кейса». 1. Три кейса из своих продуктов по схеме: задача, решение, цифры (минимум две), что не получилось и как исправил, демо. 2. Для каждой цифры в скобках откуда она: журнал, кабинет CloseRouter, итог pytest -q, замер с сервера. 3. Ссылка на репозиторий (или три) с README: задача, запуск, имена переменных .env без значений. 4. Вывод двух команд проверки из урока: поиск .env в файлах репозитория и поиск по истории. Сделай в среде: Открой каждую демо-ссылку своих кейсов в окне инкогнито, без входа в аккаунт. Принято, если: в каждом кейсе пять строк и минимум две цифры с источником; строка «что не получилось» взята из журнала продукта или из провалов своего прохождения П1–П7 (цифры журнала дописываются к сдаче 9.7); в кейсах, на снимках и в репозитории нет ключей, токенов, телефонов, имён, id пользователей и адресов серверов; поиск .env пустой; учебный заказчик назван учебным; приложены три снимка демо, открытых в инкогнито.

Подсказка: Начни с кейса, где у тебя самая интересная запись в журнале: с неё и пиши строку «что не получилось».

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

На курсе задания проверяются автоматически. Решить первое задание бесплатно →  ·  Подобрать курс

Что дальше

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

Итог:
• три кейса по схеме «задача → решение → цифры → что не получилось → демо»;
• каждая цифра взята из своего журнала или прогона;
• портфолио и репозиторий проверены на секреты, личные данные и адреса, включая историю коммитов.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева