- TypeScript 96%
- JavaScript 3.2%
- CSS 0.6%
- NSIS 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| build | ||
| docs | ||
| scripts | ||
| src | ||
| tests | ||
| .gitattributes | ||
| .gitignore | ||
| electron.vite.config.ts | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| tsconfig.web.json | ||
| vitest.config.ts | ||
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, которые пишут журнал активности и историю переходов и публикуют
события для автодействий.




