Skip to content

Repository files navigation

StudyTracker

Десктопное приложение (Electron + React + TypeScript), которое трекает время учёбы/работы и блокирует игры, пока не выполнена дневная цель.

Зачем это нужно

Идея простая: сначала дело — потом игры. Пока ты не наберёшь запланированное количество часов учёбы или работы за день, запрещённые игры не запускаются — приложение их закрывает. Это создаёт мягкое, но ощутимое давление держать фокус и не уходить в игры «на пять минут».

Возможности

  • Сессии — таймер для учёбы/работы, время суммируется в дневную цель и сохраняется локально.
  • Дневная цель — отдельные значения для будней и выходных + настраиваемый час сброса счётчика.
  • Блокировка игр — запрещённые игры автоматически закрываются, пока цель не достигнута.
  • Список игр — добавление вручную (выбор .exe) или сканированием библиотеки Steam.
  • Дашборд — статистика за сегодня, вчера и последние 7 дней с графиками.
  • Toggl Track — опциональная синхронизация старт/стоп сессий с проектом (категория идёт тегом).
  • Трей и автозапуск — работает в фоне и может стартовать вместе с Windows.

Как работает блокировка

Фоновый сервис каждые ~2 секунды проверяет запущенные процессы. Если найдена игра из блок-листа, а дневная цель ещё не выполнена, процесс завершается. Игры Steam определяются по пути установки, ручные записи — по имени .exe. Чтобы блокировка не отключалась случайно, приложение продолжает работать в трее после закрытия окна.

Это «дисциплинарная» блокировка: она помогает держать фокус, но не защищает от целенаправленного обхода (диспетчер задач и т.п.).

Установка

Требуется Node.js 18+ и Windows.

git clone https://github.com/Finsoy/StudyTracker.git
cd StudyTracker
npm install          # установка зависимостей + пересборка нативного модуля под Electron
npm run dev          # запуск в режиме разработки

Сборка установщика под Windows:

npm run build:win    # готовый установщик появится в папке dist/

Как пользоваться

  1. Задай цель. Открой «Настройки» → укажи количество часов на будни и выходные и час сброса счётчика (например, 4:00, чтобы ночные сессии шли в нужный день).
  2. Добавь игры. На вкладке «Игры» добавь .exe вручную или просканируй библиотеку Steam — именно эти игры будут блокироваться.
  3. Запусти сессию. На вкладке «Сессия» выбери «Учёба» или «Работа» и нажми «Начать сессию». Время копится в дневную цель.
  4. Достигни цели — играй. Пока цель не выполнена, игры из списка закрываются. Как только нужные часы набраны, блокировка снимается (индикатор в сайдбаре станет зелёным).
  5. (Опционально) Toggl. В «Настройках» включи Toggl Track и вставь API-токен (Profile settings → API Token), чтобы сессии зеркалились в Toggl с выбранным проектом.

Технологии

  • electron-vite — Electron + Vite + TypeScript
  • React 19 + Tailwind CSS v4 + Recharts
  • better-sqlite3 — локальное хранилище

Лицензия

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages