Кейс

Open Board — открытый Kanban-трекер задач для малого бизнеса

Открытый Kanban-трекер на Python/FastAPI: доски, drag-and-drop, метки, чек-листы, вложения, голосование, глобальный поиск и статистика. Без SPA — серверный рендеринг с Alpine.js и SortableJS.

Архитектура, full-stack разработка, проектирование предметной области 2026
Opensource Python
Open Board — открытый Kanban-трекер задач для малого бизнеса

Какую задачу решал проект.

Командам малого бизнеса нужен доступный трекер задач: колонки, карточки, перемещение drag-and-drop, базовая структура без перегруза. Существующие решения либо слишком сложные (Jira), либо закрывают данные (Trello), либо требуют SPA-фреймворка для разработки.

Архитектурно нужно было решить: сделать плавный drag-and-drop без SPA; обеспечить поддержку нескольких досок с изоляцией данных; реализовать ролевую модель доступа (owner / editor / viewer); собрать полноценные детали карточки (метки, чек-листы, вложения, голосование, комментарии) в серверном рендеринге; и добавить глобальный поиск, фильтры и ленту активности.

Ограничения и требования
  • Несколько досок в одной системе: у каждой свои колонки, метки и карточки.
  • Drag-and-drop карточек и колонок через SortableJS без SPA.
  • Ролевая модель: owner, editor, viewer + системные admin и member.
  • Карточки с приоритетами, сроками, исполнителями, метками, чек-листами и вложениями.
  • Глобальный поиск, фильтры и календарный вид поверх всех досок.
  • Лента активности, уведомления и подписки на доски и карточки.

Результат

Open Board — это открытая веб-система управления задачами, которую я спроектировал и разработал с нуля как open-source альтернативу Trello. Серверный рендеринг на FastAPI + Jinja2, интерактив через HTMX, Alpine.js и SortableJS.
Проект построен вокруг архитектуры с поддержкой нескольких досок: у каждой доски свои колонки, карточки, метки и участники. Drag-and-drop карточек и колонок, голосование, чек-листы, вложения, комментарии, глобальный поиск и календарный вид — всё работает без единой строки SPA-кода.
Система написана на Python (FastAPI + SQLAlchemy + Jinja2), работает на SQLite для быстрого старта и поддерживает PostgreSQL. Интерфейс — серверный рендеринг с Alpine.js и SortableJS для интерактивности. Tailwind CSS через CDN — без шага сборки фронтенда.
Проект с открытым исходным кодом — развивается и дополняется. Исходники доступны на GitHub.

Решение

Как устроена архитектура.

Монолит с фабрикой FastAPI: вся бизнес-логика и маршруты в одном модуле. Схема БД — декларативно через SQLAlchemy. Интерактив — Alpine.js + SortableJS поверх серверного рендеринга.

Серверный рендеринг без SPA

Страницы рендерятся через Jinja2 на сервере. Alpine.js обрабатляет inline-формы, SortableJS — drag-and-drop карточек и колонок. Это даёт быструю загрузку, SEO и простоту поддержки.

Поддержка нескольких досок

Каждая доска изолирована: свои колонки, метки, карточки, участники и настройки. Доступ через sys_board_members с ролями owner, editor, viewer.

Полноценная детальная страница карточки

Карточка включает описание, приоритет (0–4), срок, исполнителя, метки, чек-листы с пунктами, вложения с обложкой, голосование и комментарии — всё на отдельной странице.

Drag-and-drop через SortableJS

Перемещение карточек между колонками и изменение порядка колонок отправляют JSON через fetch. Сервер обновляет позиции в БД, страница не перезагружается.

Глобальный поиск и фильтры

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

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

bcrypt-хеширование, подписанные сессии, проверка доступа к доске на каждом запросе. admin видит страницу пользователей, member — только свои доски. Вложения изолированы по доске.

Экраны

Интерфейс системы.

Dashboard Open Board — статистика и лента активности

Dashboard Open Board — статистика и лента активности

Kanban-доска Product Development с колонками, карточками и метками

Kanban-доска Product Development с колонками, карточками и метками

Лента активности по проекту

Лента активности по проекту

Просмотр архива досок и карточек

Просмотр архива досок и карточек

Управление пользователями и ролями

Управление пользователями и ролями

Глобальный поиск по карточкам и доскам

Глобальный поиск по карточкам и доскам

Страница статистики проекта

Страница статистики проекта

Создание новой доски

Создание новой доски

Итог

Что получает команда.

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

Python + FastAPI

технологический стек

SQLAlchemy ORM, Jinja2, Alpine.js, SortableJS, Tailwind CDN. SQLite для старта, PostgreSQL для продакшена.

8+ сущностей

в карточке

Описание, приоритет, срок, исполнитель, метки, чек-листы, вложения, голосование, комментарии — всё в одном интерфейсе.

3 роли

на уровне доски

Owner, editor, viewer — плюс системные admin и member. Проверка прав на каждом запросе.

Без SPA

серверный рендеринг

Быстрая загрузка, SEO-дружелюбность, простой деплой. Drag-and-drop через SortableJS, формы через Alpine.js.