Desktop Kanban board (Electron), Kanboard CSV compatible
  • TypeScript 96%
  • JavaScript 3.2%
  • CSS 0.6%
  • NSIS 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-25 22:37:01 +03:00
build MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
docs Скриншоты в README и руководство пользователя docs/user-guide.md 2026-10-25 22:37:01 +03:00
scripts MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
src MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
tests MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
.gitattributes MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
.gitignore MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
electron.vite.config.ts MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
package-lock.json MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
package.json MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
README.md Скриншоты в README и руководство пользователя docs/user-guide.md 2026-10-25 22:37:01 +03:00
tsconfig.base.json MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
tsconfig.json MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
tsconfig.node.json MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
tsconfig.web.json MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00
vitest.config.ts MyKanBoard 1.0.4: десктопная канбан-доска с CSV-обменом Kanboard 2026-10-25 22:30:42 +03:00

MyKanBoard

Локальное однопользовательское приложение для Windows с функциональностью Kanboard: доска с колонками и дорожками, задачи, подзадачи, учет времени, автоматические действия, аналитика. Данные хранятся в SQLite на компьютере пользователя. Обмен с Kanboard идет через CSV в форматах Kanboard.

Доска

Карточка задачи Гант
Календарь Обзор, темная тема

Описание экранов - руководство пользователя. Сборки для Windows - в разделе Releases.

Сборка и запуск

Требуется Node.js 24.

npm install
npm run dev        # запуск из исходников
npm test           # vitest: ядро, CSV, фильтры, автодействия
npm run typecheck  # tsc для main/preload и renderer
npm run dist       # release/MyKanBoard-<версия>-setup.exe и -win-x64.zip (переносимая версия)
npm run smoke      # сборка + прогон окна через Playwright со скриншотами в test-results/smoke

Если команды запускаются из терминала VS Code, перед npm run dev снимите переменную ELECTRON_RUN_AS_NODE: VS Code передает ее дочерним процессам, и Electron стартует как обычный Node (does not provide an export named 'BrowserWindow'). Скрипт tests/e2e/smoke.mjs снимает ее сам.

Где хранятся данные

Вариант Каталог
zip-версия (папка MyKanBoard-data рядом с exe) MyKanBoard-data рядом с exe
portable.exe версий 1.0.0-1.0.1 MyKanBoard-data рядом с exe
установленная версия %APPDATA%\MyKanBoard
переопределение переменная окружения MKB_DATA_DIR

В каталоге: kanboard.sqlite (база) и files\ (вложения). Резервная копия и восстановление - в Настройки - Данные (копия делается через VACUUM INTO, приложение при этом не останавливается).

Переносимая версия поставляется zip-архивом, а не самораспаковывающимся exe: portable-exe electron-builder распаковывает 110 МБ при каждом запуске (замер: 6-8 с до окна), из распакованной папки окно открывается за 0,3-0,7 с.

Перенос из Kanboard и обратно

Импорт (кнопка "Импорт из Kanboard"): принимаются выгрузка задач Kanboard, выгрузка подзадач и шаблон импорта задач. Формат определяется по набору заголовков, а не по имени файла. Заголовки распознаются на любом из 40 языков интерфейса Kanboard. Кодировка UTF-8 или Windows-1251, разделитель , ; табуляция | определяются автоматически. Недостающие колонки, дорожки, категории, метки и исполнители создаются. Подзадачи привязываются к задачам по номеру задачи Kanboard из предыдущего импорта, иначе по названию.

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

Экспорт (меню проекта - "Экспорт в CSV для Kanboard"):

  • "Для импорта в Kanboard" - 18 столбцов шаблона TaskImport. Kanboard читает столбцы по порядку, язык заголовков не важен. Колонки, дорожки и категории должны существовать в проекте Kanboard, иначе задача попадет в значения по умолчанию.
  • "Как выгрузка Kanboard" - те же столбцы, что дает экспорт задач в Kanboard (для отчетов и Excel).

CSV-форматы Kanboard не содержат комментарии, вложения, связи между задачами и настройки проекта: эти данные при переносе через CSV не передаются. Выгрузка задач Kanboard не содержит описание задачи; шаблон импорта - содержит.

Отличия от Kanboard

  • Нет пользователей, ролей, прав, уведомлений, LDAP, API и плагинов. Исполнители - справочник людей; локальный пользователь - запись с логином me.
  • Автодействия: реализованы все 47 из app/Action, кроме TaskEmail и TaskEmailNoActivity. Шесть действий, которые в Kanboard срабатывают только от внешних вебхуков, в интерфейсе не предлагаются.
  • Ежедневная проверка (task.cronjob.daily) выполняется при запуске и раз в час, не чаще раза в сутки.
  • Язык фильтров: все 35 атрибутов Kanboard; сравнение текста без учета регистра для кириллицы, е и ё равны.

Структура

Путь Назначение
src/main/db подключение node:sqlite, миграции (PRAGMA user_version)
src/main/services проекты, задачи, части задачи, активность, аналитика, поиск, CSV
src/main/actions движок и реализации автодействий
src/main/index.ts, system.ts окно Electron, IPC, диалоги, резервные копии
src/shared типы, контракт IPC (api.ts), каталог действий, язык фильтров, CSV-библиотека
src/renderer интерфейс на React
tests vitest, фикстуры CSV, смоук-прогон Electron
docs руководство пользователя и скриншоты (снимаются npm run smoke)

Renderer не имеет доступа к БД и файловой системе: вызываются только методы, перечисленные в src/shared/api.ts. Все изменения данных идут через сервисы main, которые пишут журнал активности и историю переходов и публикуют события для автодействий.