School CRM
Учёт для школы: ученики, классы, сотрудники, приём оплаты и PDF-чеки, зарплаты, расходы, финансовый отчёт. Две роли — администратор и кассир с ограниченными правами.
Buildify — небольшая студия. Делаем сайты и учётные системы для школ и малого бизнеса и держим их у себя: кластеры k3s, свой GitLab и registry, выкатка через ArgoCD, секреты в Vault, метрики в Victoria Metrics. Мы не перепродаём чужую платформу — эксплуатируем свою, поэтому после запуска проект не остаётся без присмотра.
Приложения клиентов живут в наших кластерах: сборка идёт через собственный GitLab с self-hosted раннерами, образы попадают в свой registry, выкатка описана в гите и применяется ArgoCD. Обновления, сертификаты, мониторинг и восстановление после сбоев — часть работы, а не отдельная услуга, о которой надо вспомнить через полгода.
Компания маленькая, и это видно по тому, как мы работаем: заказчик разговаривает с теми, кто пишет код, а не с менеджером между ними.
Дмитрий Зубриков — основатель, DevOps-инженер и full-stack разработчик. Инфраструктура, архитектура продуктов, разработка.
Остальные — junior-разработчики, которые растут на реальных проектах, и специалисты по работе с клиентами. Команда растущая: часть людей на проектах недавно, и мы это не прячем.
Всё перечисленное работает в проде — ссылки открываются.
Учёт для школы: ученики, классы, сотрудники, приём оплаты и PDF-чеки, зарплаты, расходы, финансовый отчёт. Две роли — администратор и кассир с ограниченными правами.
Учёт для розницы: товары, поставщики, приём по накладной с фотофиксацией, продажи по штрихкоду. Касса вынесена в отдельное PWA — продавец сканирует штрихкод камерой телефона, отдельное оборудование не нужно.
Обе системы стоят на одном ядре: авторизация, пользователи, роли, расходы — общий код. Отраслевая часть — школа или розница — подключается сверху, а не форкается в отдельную ветку, поэтому починка в ядре доезжает сразу до обоих продуктов.
Сгруппирован по слоям — так же, как устроена платформа.
Состояние кластера описано в репозитории. Выкатка — это коммит, откат — это revert. Руками в прод не ходим: то, чего нет в гите, назавтра исчезнет при следующей синхронизации.
Разработчик отвечает за код. Кластер, сертификаты, секреты, доступы и мониторинг — на нас. Клиенту не нужно держать своего админа, чтобы сайт продолжал работать.
Окружения поднимаются из кода, секреты лежат в Vault, а не в переменных на сервере. Если машина умрёт, её собирают заново по описанию, а не вспоминают, что на ней когда-то настроили руками.
Напишите, что нужно сделать, — ответим, за какой срок и сколько это стоит. Если задача не наша, скажем прямо.
Кнопка открывает почтовый клиент с готовым письмом.