- Python 3.11+
- Аккаунт Google с доступом к Google Sheets API (при необходимости обратитесь к google_acc_readme.md за подробностями)
- Telegram Bot Token
Для установки вы можете воспользоваться скриптами из директории setup:
- Для Linux и macOs: setup.sh
- Для Windows: setup.bat
Или выполнить ручную установку
git clone https://github.com/moevm/mse1h2026-employee.git
cd srcpython3 -m venv .venv
source .venv/bin/activate # Linux / macOS
call .venv\Scripts\activate # Windowspip install -r requirements.txtЕсли файл requirements.txt отсутствует, установите зависимости вручную:
pip install aiogram apscheduler gspread google-auth python-dotenvНеобходимо создать файл .env в корневой директории проекта. В нем задаются переменные окружения
| Переменная | Описание | Пример значения |
|---|---|---|
BOT_TOKEN |
Токен Telegram-бота | 123456789:ABCDEFGHIGKLMNOPQRSTUVWXYZ123456789 |
GOOGLE_CREDENTIALS_PATH |
Путь к JSON-ключу сервисного аккаунта | credentials.json |
GOOGLE_SHEET_ID |
ID Google Таблицы | 123456789ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghi |
ROLES_SHEET_NAME |
Имя листа с ролями | Роли |
TASK_REQUESTS_SHEET_NAME |
Имя листа с запросами задач | Запросы задач |
TASKS_SHEET_NAME |
Имя листа с задачами | Задачи |
ROLE_REQUESTS_SHEET_NAME |
Имя листа с запросами ролей | Запросы ролей |
VISITS_SHEET_NAME |
Имя листа с посещениями | Посещения |
REMINDERS_TIMEZONE |
Часовой пояс для напоминаний | Europe/Moscow |
REMINDERS_DAYS_OF_WEEK |
Рабочие дни | mon,tue,wed,thu,fri |
REMINDER_MORNING_TIME |
Время утреннего напоминания | 08:50 |
REMINDER_EVENING_TIME |
Время вечернего напоминания | 16:50 |
Введите команды:
source .venv/bin/activate # Linux / macOS
call .venv\Scripts\activate # Windows
python main.pyТеперь необходимо открыть бота в Telegram и отправить ему команду /start
| TgID | Role | ManagerIDs |
|---|---|---|
| 1 | lead | |
| 2 | employee | 1 |
| 3 | intern | 1 |
| 4 | superuser |
| TaskId | Title | Description | EmployeeID | AuthorID | Status | CreatedAt | UpdatedAt | Deadline |
|---|---|---|---|---|---|---|---|---|
| 1 | Задача 1 | Описание | 2 | 1 | created | 2024-01-01 09:00:00 | 2024-01-01 09:00:00 | 2024-01-31 |
| Роль | Значение | Описание |
|---|---|---|
superuser |
суперпользователь | Управление запросами на роли, полный доступ |
lead |
руководитель | Управление задачами и отчетностью, исполнение роли сотрудника |
employee |
сотрудник | Работа с задачами, учёт посещаемости |
intern |
стажер | Базовый доступ, учёт посещаемости |
Один пользователь может иметь несколько ролей одновременно. Используемая роль выбирается при входе
Первого суперпользователя необходимо добавить вручную в лист «Роли»:
- Узнать свой Telegram ID
- Добавить строку в лист «Роли»:
TgID: <ваш_id> Role: superuser ManagerIDs: (пусто) - Запустить бота и отправить ему команду
/start