Перейти к содержанию
Стратегия Систем · Операционный трекер
Меню

§ 02 · Продукт

Двенадцать модулей,
разделённых на пять
рабочих зон

Архитектурно — модульный монолит на FastAPI: один процесс с двенадцатью изолированными модулями в api/modules/. Каждой группой владеет отдельный Claude-агент со своим git-worktree — разработка идёт параллельно без конфликтов.

Зона I · Foundation

Учёт и доступ

Кто пользуется системой, к чему имеет доступ, в каком часовом поясе работает.

  • 01

    Регистрация и приглашения

    Регистрация по email, создание компании с указанием часового пояса, приглашение сотрудников по ссылке.

  • 02

    Профиль пользователя

    Имя, аватар, привязка Telegram через одноразовый токен, настройки уведомлений по каждому типу события и каналу.

  • 03

    Аутентификация · JWT RS256

    Вход по email/паролю, сброс пароля. Refresh-токены с rotation и denylist для мгновенного отзыва скомпрометированной сессии.

  • 04

    RBAC и группы

    Роли админ / тимлид / сотрудник / наблюдатель. Группы пользователей: эффективные права = OR от персональных и групповых.

Зона II · Kanban

Канбан и задачи

Главное «место жизни» сотрудника: доски, карточки, drag-and-drop, файлы.

  • 01

    Доски и колонки

    Личные и командные доски, настраиваемые колонки под процесс конкретной команды.

  • 02

    Карточки и Lanes

    CRUD карточек, drag-and-drop через @dnd-kit + fractional indexing на бэке (sort_order — float между соседями, минимум апдейтов БД).

  • 03

    Регулярные задачи

    Шаблон-расписание. Procrastinate-планировщик каждую минуту проверяет, кому пора получить новую задачу, и кладёт её в инбокс.

  • 04

    Должности — пресеты

    Библиотека шаблонов компании. Импорт должности на сотрудника = копирование задач этому сотруднику. После импорта шаблон и копии живут независимо.

  • 05

    Вложения и метки

    Файлы до 50 MB через локальный FileStorage + nginx X-Accel-Redirect. Метки — цветной тег per-доска.

  • 06

    Виды · канбан / список / календарь

    Один набор карточек — три вида. Календарь через FullCalendar.io, список — виртуализированная таблица.

Зона III · Comms

Уведомления и поиск

Чтобы важное не терялось, а нужное находилось за секунды.

  • 01

    Уведомления · pluggable

    Email + Telegram + in-app сразу в MVP. Каждый канал — реализация одного интерфейса; SMS / Max / push добавляются за день.

  • 02

    SSE-стрим в браузер

    Postgres LISTEN/NOTIFY → один asyncpg-listener → fan-out → клиент держит EventSource с auto-reconnect. Без WebSocket, без long-polling.

  • 03

    Полнотекстовый поиск

    Postgres FTS (tsvector + GIN) по русскому словарю. <300 мс на 10 000 карточек. Подсветка совпадений через ts_headline.

  • 04

    Multi-criteria фильтры

    Фильтр по меткам, исполнителю, диапазону дат, статусу. Состояние фильтра — в URL, ссылку можно отправить коллеге.

Зона IV · Billing

Тарифы и оплата

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

  • 01

    Тарифные планы

    Free / Pro / Enterprise. Лимиты в JSONB: пользователи, доски, карточки, объём файлов. Trial на 14 дней при регистрации.

  • 02

    ЮKassa и подписки

    Платежи через ЮKassa. Webhook защищён IP allow-list + re-fetch объекта через API (у ЮKassa нет HMAC — единственная корректная защита).

  • 03

    Enforcement лимитов

    FastAPI-dependency check_quota стоит на write-эндпоинтах. Превышение → HTTP 402 с указанием ресурса и текущего значения.

  • 04

    Инвойсы и история

    PDF-инвойс с русскоязычными реквизитами при успешном платеже. Хранится в FileStorage, отдаётся через nginx X-Accel-Redirect.

Зона V · Quality

Контрольные листы

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

  • 01

    Шаблоны и применения

    Контрольный лист = шаблон с пунктами (drag-drop порядок, required-флаги). Применяется к карточке или standalone (ежедневный обход).

  • 02

    Расписания · cron

    Procrastinate periodic запускает шаблон по cron. Расписание валидируется croniter, есть готовые пресеты.

  • 03

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

    Завершённый run — append-only, нельзя редактировать. Подходит как compliance-доказательство.

§ 02.2 · Концепции

Шесть решений,
ради которых
стоит выбрать

  1. 01

    Должность как шаблон, а не привязка

    Когда руководитель назначает сотрудника на должность, регулярные задачи копируются как личные. Меняешь шаблон — текущие сотрудники не задеты. «Обновить из шаблона» — отдельная осознанная кнопка.

  2. 02

    Регламент в двух версиях

    К каждой регулярной задаче — markdown-инструкция. Сотрудник видит актуальную версию, но в момент создания задачи фиксируется снимок — на случай вопроса «по какой инструкции работал?».

  3. 03

    Несколько ответственных за задачу

    У задачи может быть несколько исполнителей; задача появляется в инбоксе каждого. Любой может закрыть — в completed_by_id останется конкретный человек. В отчётах задача засчитывается всем причастным.

  4. 04

    Часовой пояс — у компании, не у человека

    Расписания, дедлайны, утренний дайджест — всё считается в TZ компании. Владивосток и Калининград живут на одной инсталляции; каждой приходит по своим часам.

  5. 05

    Идемпотентность write-операций

    Любой POST/PUT/PATCH/DELETE принимает Idempotency-Key. Двойной клик «Создать», retry мобильника или повтор webhook → одно действие, один ответ. Стандарт Stripe и Yandex Cloud.

  6. 06

    Защита от каскадных отказов

    Telegram и SMTP обёрнуты в circuit breaker (5 ошибок → 60 секунд паузы). Мы не зависаем на таймаутах и не DDoS-им упавший внешний сервис ретраями.

§ 02.3 · Дорожная карта

Что будет,
когда и почему

Открыто рассказываем, что в MVP, что — после первого месяца, что — на горизонте полугода. Без «когда-нибудь».

  1. Этап 01

    MVP

    3 – 4 нед.

    • 12 модулей выше
    • Закрытая бета на нашем офисе (~15 человек)
    • Email + Telegram уведомления
  2. Этап 02

    + 1 – 2 мес.

    Биллинг

    • Полноценные платежи через ЮKassa
    • Per-company Telegram-бот для брендированных клиентов
    • Дашборд руководителя — если будет реальный запрос после месяца Scoreboard
  3. Этап 03

    + 3 – 4 мес.

    Real-time и mobile

    • WebSocket вместо polling в дашборде
    • Мобильное приложение на React Native
    • Совместное редактирование регламентов через Yjs
  4. Этап 04

    + 6 мес.

    Compliance

    • Включение в Реестр отечественного ПО
    • Аккредитация ИТ-компании Минцифры