flins — это набор примеров тестовых вопросов и заданий для подготовки к техническим собеседованиям по Python. Проект помогает разработчикам практиковаться и улучшать навыки решения типичных задач, которые часто встречаются на технических интервью.
Telegram-бот предоставляет удобный интерфейс для тренировки вопросов прямо в мессенджере.
| Команда | Описание |
|---|---|
/start |
Начать работу с ботом |
Бот идеально подходит для регулярной практики “на ходу” и позволяет эффективно готовиться к собеседованиям в любое удобное время.
Backend: FastAPI, Uvicorn, SQLAlchemy ORM
Database: PostgreSQL, asyncpg, Alembic (миграции)
Telegram Integration: python-telegram-bot / aiogram
DevOps: Docker, Docker Compose
Security: JWT, Passlib, Bcrypt
Testing: Pytest, pytest-asyncio
Admin Panel: SQLAdmin
Code Quality: Ruff, Loguru
/docs (Swagger UI)/redoc (ReDoc)/admin# Database
DATABASE_URL=postgresql+asyncpg://user:password@db:5432/postgres_db
POSTGRES_DB=postgres_db
POSTGRES_USER=postgres_user
POSTGRES_PASSWORD=your_secure_password
POSTGRES_HOST=db
POSTGRES_PORT=5432
# Security
SECRET_KEY=your_secret_key_here
ALGORITHM=HS256
# Telegram Bot
TELEGRAM_BOT_TOKEN=your_telegram_bot_token
TELEGRAM_ADMIN_ID=your_telegram_user_id
# Admin Accounts
ADMIN1_EMAIL=admin1@example.com
ADMIN2_EMAIL=admin2@example.com
ADMIN_PASSWORD=secure_admin_password
В GitHub Actions для CI/CD добавить Secrets:
DOCKER_PASSWORD - пароль от Docker HubDOCKER_USERNAME - логин от Docker HubHOST - IP-адрес или домен сервера для деплоя (например: 123.123.123.123)SSH_KEY - приватный SSH-ключ для подключения к серверуSSH_PASSPHRASE - парольная фраза для SSH-ключаTELEGRAM_TO - ID чата Telegram для уведомлений о деплоеTELEGRAM_TO2- ID чата Telegram для уведомлений о деплоеUSER - имя пользователя для SSH-подключения к серверу# Обновите список пакетов
sudo apt update
sudo apt upgrade -y
# Установите curl (если не установлен)
sudo apt install -y curl
# Загрузите скрипт установки Docker
curl -fSL https://get.docker.com -o get-docker.sh
# Запустите скрипт установки
sudo sh ./get-docker.sh
# Установите Docker Compose plugin
sudo apt install -y docker-compose-plugin
# Удалите скрипт (опционально)
rm get-docker.sh
# Скопируйте пример env файла
cp .env.example .env
# Откройте файл для редактирования
nano .env
sudo apt install -y nginx
# Создайте новый конфиг файл, пример представлен ниже
sudo nano /etc/nginx/sites-available/
docker-compose up -d
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /admin {
proxy_pass http://127.0.0.1:8000/admin;
proxy_set_header Host $host;
}
}
# API доступен
curl http://your-server:8000/docs
# Telegram Bot получает обновления
# (убедитесь, что firewall пропускает исходящие HTTP запросы)
# Admin панель
http://your-server:8000/admin