🤖 Telegram бот для учёта рабочего времени в группах с расширенной админ-панелью.
- Учёт смен: отметка прихода/ухода
- История смен: просмотр последних смен
- Статистика: личная статистика по часам
- Статус: кто сейчас на работе
- Автоматическое определение прав владельца
- Админ-панель с расширенными функциями
- Статистика по всем пользователям
- Детальная информация о любом сотруднике
- Метрики и аналитика по сменам
- Экспорт данных в CSV/JSON/TXT форматах
git clone <repository-url>
cd TimeMateBot# Создание виртуального окружения
python -m venv venv
source venv/bin/activate # Linux/Mac
# или
venv\Scripts\activate # Windows
# Установка зависимостей
pip install -r requirements.txt# Копирование файла окружения
cp .env.example .env
# Редактирование .env файла
BOT_TOKEN=your_telegram_bot_token# Локальный запуск
python bot.py
# Или с помощью Docker
docker-compose up -d- Python 3.8+
- Telegram Bot Token (получить у @BotFather)
- Docker и Docker Compose (опционально)
TimeMateBot/
├── bot.py # Основной файл запуска бота
├── handlers.py # Обработчики команд пользователей
├── admin_handlers.py # Админские функции
├── keyboards.py # Клавиатуры бота
├── storage.py # Хранилище данных
├── models.py # Модели данных
├── config.py # Конфигурация
├── requirements.txt # Зависимости Python
├── Dockerfile # Конфигурация Docker
├── docker-compose.yml # Docker Compose конфигурация
├── .env.example # Пример файла окружения
└── data/ # Папка с данными (создаётся автоматически)
└── shifts.json # Файл с данными о сменах
/start- Запуск бота и приветствие/admin- Админ-панель (только для владельца)/stats- Личная статистика/menu- Показать меню
- 🟢 Пришёл - Начать смену
- 🔴 Ушёл - Закончить смену
- 📊 Статус - Кто сейчас на работе
- 📜 История - Последние смены
- 👥 Кто на смене - Все активные смены
- 📊 Статистика всех - Сводка по всем пользователям
- 🔍 Детали пользователя - Информация о конкретном сотруднике
- 📈 Метрики - Аналитика по сменам
- 📤 Экспорт данных - Выгрузка в файлы
Бот поддерживает экспорт данных в трёх форматах:
Имя,Username,Дата начала,Дата конца,Длительность
Иван Иванов,ivanov,27.03.2026 09:00,27.03.2026 17:00,8ч 0м{
"export_info": {
"date": "27.03.2026 15:30:45",
"total_completed_shifts": 150,
"active_shifts": 2
},
"shifts": [...]
}ЭКСПОРТ ДАННЫХ БОТА
==================================================
Дата экспорта: 27.03.2026 15:30:45
Всего завершенных смен: 150
Активных смен сейчас: 2
==================================================
27.03.2026 | Иван Иванов | 09:00-17:00 | 8ч 0м
- Автоматическое определение владельца группы через Telegram API
- Проверка прав для всех админских функций
- Кеширование прав доступа для производительности
- Фильтрация только завершенных смен для экспорта
Разработан с использованием:
- aiogram - асинхронный фреймворк для Telegram ботов
- APScheduler - планировщик задач
- Python 3.8+ с async/await
MIT License - свободное использование и модификация
При обнаружении проблем:
- Проверьте логи бота
- Убедитесь в правильности токена
- Проверьте права бота в группе