Telegram бот для интернет-магазина с полным функционалом управления товарами, корзиной, заказами и кошельком.
Полная дорожная карта развития проекта см. в файле ROADMAP.md.
- 📱 Каталог товаров - просмотр категорий и товаров
- 🛒 Корзина - добавление, удаление, изменение количества
- 💳 Кошелек - пополнение баланса и оплата заказов
- 📦 Заказы - оформление и отслеживание статуса доставки
- ❓ Поддержка - задать вопрос администратору
- ➕ Управление товарами - добавление, редактирование, удаление
- 📊 Заказы - просмотр и обработка заказов
- 💬 Вопросы - ответы на вопросы пользователей
- 📈 Статистика - мониторинг продаж
Shop-bot/
├── app.py # Главный файл приложения
├── loader.py # Загрузчик компонентов
├── data/ # Конфигурация и данные
├── handlers/ # Обработчики команд
├── keyboards/ # Клавиатуры и разметки
├── states/ # Состояния FSM
├── utils/ # Утилиты и база данных
└── scripts/ # Скрипты безопасности
Проект прошел полную проверку безопасности:
✅ Jinja2 уязвимости - не применимо (Jinja2 не используется)
✅ str.format уязвимости - не обнаружено
✅ Зависимости - все обновлены до безопасных версий
✅ Код - проверен на потенциальные проблемы (см. ROADMAP.md для запланированных исправлений)
# Автоматическая проверка
python scripts/security_check.py
# Ручная проверка зависимостей
pip list --outdatedПодробности в SECURITY.md
- Python 3.9.19 (зафиксировано) - основной язык
- aiogram 2.9.2 - Telegram Bot API фреймворк
- SQLite - база данных
- Redis - кэширование (опционально)
- pytest - тестирование
- Администраторы задаются только через переменную окружения
ADMINS(кортеж ID); возможность переключать режимы в интерфейсе удалена. - Все SQL-запросы параметризованы.
- Валидация пользовательского ввода вынесена в
utils/validators.py. - Включена защита от флуда через
middlewares/antiflood.py(по умолчанию 0.5с между сообщениями от пользователя).
- Изображения товаров сохраняются в
data/images/(путь хранится в БД в полеproducts.photo_path). - Директория
data/images/добавлена в.gitignoreи не коммитится.
git clone https://github.com/serebrium/Shop-bot.git
cd Shop-botПримечание: проект фиксирован на Python 3.9.19. При необходимости установите и активируйте через pyenv:
pyenv install 3.9.19
pyenv local 3.9.19python3 -m venv venv
source venv/bin/activate # Linux/Mac
# или
venv\Scripts\activate # Windowspip install -r requirements.txtcp env.example .env
# Отредактируйте .env файлpython app.pyСоздайте файл .env со следующими параметрами:
BOT_TOKEN=ваш_токен_бота
ADMINS=123456789,987654321
PROJECT_NAME=shop-bot# Запуск всех тестов
pytest
# Запуск с подробным выводом
pytest -v
# Запуск конкретного теста
pytest tests/test_database.pyАвтоматически создаются таблицы:
categories- категории товаровproducts- товарыcart- корзина пользователейorders- заказыwallet- кошельки пользователейquestions- вопросы пользователей
docker-compose up -d- Установите переменные окружения
- Настройте webhook
- Деплой автоматический
- Форкните репозиторий
- Создайте ветку для новой функции
- Внесите изменения
- Создайте Pull Request
MIT License - см. LICENSE
- Issues: GitHub Issues
- Security: SECURITY.md
- Documentation: SETUP.md
- v1.0.0 - Базовая функциональность
- v1.1.0 - Улучшения безопасности
- v1.2.0 - Новые функции (планируется)
⭐ Если проект полезен, поставьте звезду!