Телеграм-бот для отслеживания времени, затраченного на выполнение задач. Бот позволяет начинать и завершать задачи с помощью обычных текстовых сообщений, отслеживает время выполнения и формирует отчеты.
- 📝 Начало и завершение задач через обычные текстовые сообщения
- ⏱ Точный подсчет времени, затраченного на каждую задачу
- 📊 Отчеты за день, выбранную дату или по всем задачам
- 📋 Экспорт всех задач в Excel-файл
- ✏️ Редактирование названий задач и времени
- 🗑 Удаление задач
- 🔐 Ограничение доступа только для одного пользователя
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/TimeRecorder.git cd TimeRecorder -
Установите зависимости:
npm install -
Создайте файл
.envна основеenv.example:cp env.example .env -
Отредактируйте файл
.env, добавив токен вашего Telegram-бота и ID вашего чата:BOT_TOKEN=your_telegram_bot_token_here ALLOWED_CHAT_ID=your_chat_id_hereДля получения токена создайте нового бота через @BotFather. Для получения вашего Chat ID отправьте сообщение боту @userinfobot.
node index.js
Для запуска в фоновом режиме можно использовать PM2:
npm install -g pm2
pm2 start index.js --name time-recorder
Просто напишите боту сообщение, содержащее слово "начал" или "начинаю" и название задачи:
- "Начал работу над проектом"
- "Начинаю готовить ужин"
- "Приступил к чтению книги"
Отправьте сообщение, содержащее "закончил", "завершил" или "готово":
- "Закончил работу"
- "Задача завершена"
- "Готово"
/status- Показать текущую активную задачу/report- Отчёт за сегодня/report all- Суммарный отчёт по всем задачам/report YYYY-MM-DD- Отчёт за указанную дату/export- Выгрузка всех задач в Excel/edit ID task:Новое название- Изменить название задачи/edit ID start:10:00 end:14:30- Изменить время начала/окончания/delete ID- Удалить задачу/help- Показать справку
/edit 5 task:Встреча с клиентом- Изменить название задачи с ID 5/edit 5 start:09:30 end:10:45- Изменить время начала и окончания задачи с ID 5/edit 5 start:09:30- Изменить только время начала/edit 5 end:10:45- Изменить только время окончания
- Бот работает по часовому поясу Хабаровска (Asia/Vladivostok)
- Все данные хранятся локально в SQLite базе данных
- Excel-отчеты содержат разбивку по дням и общий сводный лист
- node-telegram-bot-api - API для работы с Telegram
- sqlite3 - База данных SQLite
- exceljs - Генерация Excel-отчетов
- moment-timezone - Работа с датами и временными зонами
- dotenv - Управление переменными окружения
MIT