Project Tracker Desktop — локальный настольный трекер проектов, этапов и поручений на Python.
Приложение сделано для офлайн-работы: данные хранятся в локальной SQLite-базе, без облака, регистрации и внешних серверов.
A local offline desktop project/task tracker built with Python, CustomTkinter, SQLite and SQLAlchemy.
Project Tracker помогает держать под контролем проекты, задачи, сроки, ответственных, контрольные даты и «красную зону». Логика ориентирована не на абстрактный todo-list, а на управленческую работу: быстро увидеть, где просрочка, где блокер, где ждём ответ, что надо проверить и какие проекты требуют внимания сегодня.
- Главная панель с краткой сводкой по активным задачам и рискам.
- Проекты: карточки проектов, статусы, приоритеты, сроки, ответственный DRI, этапы проекта.
- Этапы проекта: ручное ведение этапов и быстрый шаблон типовых стадий проекта.
- Задачи: сроки, контрольные даты, статусы, DRI, соисполнители, контролёр, следующий шаг, ожидаемый результат, блокеры.
- Зависимости задач: задача может зависеть от другой задачи внутри проекта.
- Цветовые сигналы: просрочено, сегодня, ближайшая зона риска, блокер, ожидание ответа, проверка результата, зависшие задачи.
- Сводки и отчёты: генерация текстовых сводок, экспорт в TXT, XLSX и PDF.
- Справочники: ответственные и приоритеты.
- Настройки: горизонт риска, видимость блоков на главной, лимиты сводки, активные задачи по умолчанию.
- Полностью локальная работа: SQLite-база создаётся автоматически при первом запуске.
- Python 3
- CustomTkinter
- Tkinter / ttk
- SQLite
- SQLAlchemy
- openpyxl
- reportlab
- PyInstaller для сборки Windows
.exe
pip install -r requirements.txt
python main.pyНа Windows можно запустить файл:
run_from_source.batОн создаст виртуальное окружение .venv, установит зависимости и запустит приложение.
В корне проекта есть готовый батник:
build_exe.batОн выполнит полный цикл сборки:
- проверит наличие Python;
- создаст виртуальное окружение
.venv; - установит зависимости из
requirements.txt; - установит PyInstaller;
- соберёт приложение в один файл:
dist\ProjectTracker.exe
После первого запуска рядом с .exe будет создана рабочая база:
dist\data\project_tracker.db
Если PyInstaller ругается на версию Python, соберите проект в отдельном окружении Python 3.12/3.13.
При запуске из исходников база создаётся здесь:
data/project_tracker.db
При запуске собранного .exe база создаётся рядом с исполняемым файлом:
dist/data/project_tracker.db
Файл базы данных не должен попадать в публичный репозиторий. В .gitignore уже добавлены правила, которые исключают локальные SQLite-базы и временные файлы.
project_tracker/
├─ main.py # точка входа
├─ requirements.txt # зависимости приложения
├─ build_exe.bat # сборка Windows EXE
├─ run_from_source.bat # запуск из исходников на Windows
├─ database/ # подключение SQLite и инициализация схемы
├─ models/ # SQLAlchemy-модели
├─ services/ # бизнес-логика проектов, задач, сводок, настроек
├─ exports/ # экспорт TXT/XLSX/PDF
├─ ui/ # интерфейс CustomTkinter
│ ├─ dialogs/ # окна редактирования
│ └─ tabs/ # вкладки приложения
└─ data/ # локальная рабочая база, не публикуется в GitHub
Рекомендуемый порядок первой загрузки:
git init
git add .
git commit -m "Initial Project Tracker Desktop release"
git branch -M main
git remote add origin https://github.com/USER/REPOSITORY.git
git push -u origin mainПеред публикацией проверьте, что в индекс не попала локальная база данных:
git statusВ списке файлов не должно быть:
data/project_tracker.db
Приложение не отправляет данные в интернет. Все проекты, задачи, ответственные и настройки хранятся локально в SQLite. Для публичного GitHub-репозитория не публикуйте рабочие .db-файлы, экспортированные отчёты с персональными данными и внутренние служебные документы.
Это рабочая локальная desktop-версия Project Tracker с базовыми модулями управления проектами и задачами. Проект можно развивать дальше: импорт/экспорт данных, календарная логика, интеграция с CRM, расширенные отчёты, напоминания, локализация RU/EN и единый стиль-kit для всей линейки офисных инструментов.
Лицензия пока не выбрана. Перед публичным распространением можно добавить LICENSE — например MIT, Apache-2.0 или другой вариант по вашему выбору.