✨ Возможности
- Автоматическая генерация сертификатов PDF/PNG
- Интеграция с Stepik API:
- Проверка завершения курса
- Получение данных студента
- Персонализация:
- Подпись преподавателя
- Управление через Telegram:
- Запрос сертификата
- История выданных документов
| Компонент | Назначение |
|---|---|
| Python 3.13+ | Основной язык разработки |
| Aiogram | Telegram Bot Framework |
| PostgreSQL | Хранение данных сертификатов и пользователей |
| SQLAlchemyORM | Работа с PostgreSQL по средствам ООП |
| PyPDF2 | Генерация PDF-сертификатов |
| Pillow | Создание графических сертификатов (PNG) |
| Docker | Контейнеризация |
| Stepik API | Интеграция с образовательной платформой |
| GitHub Actions | CI/CD: автотесты и деплой на DockerHub |
# Клонирование репозитория
git clone https://github.com/nihosprop/bot_get_cert.gitСтруктура проекта
your_name_bot_dir
├── data
│ ├── 1 часть жен.pdf
│ ├── 1 часть муж.pdf
│ └── Bitter-Regular.ttf
├── docker-compose.PROD.yml
├── logs
│ └── app.log
└── redis.conf
├── .env
Деплой через docker-composePROD
-
Добавить в папку data(static в локальной версии) .pdf шаблоны сертификатов.
-
Прописать docker-compose.yml заменив данные на свои
-
Прописать .env по аналогии .env.example, заменив данные на свои
-
Выдать права контейнеру на запись logs/app.log:
# из корня проекта
sudo chown -R 1000:1000 logs- Прописать redis.conf под свои нужды.
! Задать пароль для Redis в .env и redis.conf
! Redis пароли должны совпадать в .env и redis.conf
Находясь в корне проекта(бота) исполнить:
docker compose down && docker compose pull && docker compose up -d