https://github.com/core-euler/fitter_bot
Fitting bot for marketplaces
https://github.com/core-euler/fitter_bot
ai bot nanobanana python telegram
Last synced: 28 days ago
JSON representation
Fitting bot for marketplaces
- Host: GitHub
- URL: https://github.com/core-euler/fitter_bot
- Owner: core-euler
- Created: 2025-12-02T17:24:24.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-02-02T13:29:21.000Z (5 months ago)
- Last Synced: 2026-02-28T18:54:06.256Z (4 months ago)
- Topics: ai, bot, nanobanana, python, telegram
- Language: Python
- Homepage: https://t.me/luqi_slavallokbrand_bot
- Size: 17.4 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Fitting Bot - Этап 0 (Шаблон интерфейса)
Telegram-бот для женского бренда одежды с каталогом товаров, подбором размеров и AI-примеркой.
## Этап 0: Что реализовано
Визуальный и навигационный прототип бота без реальной интеграции с БД и внешними API:
- ✅ Команда /start и главное меню
- ✅ Каталог товаров (9 категорий, 15+ товаров)
- ✅ Пагинация товаров
- ✅ Карточки товаров с фото
- ✅ Избранное (сохранение в памяти)
- ✅ Ввод параметров тела с FSM
- ✅ Редактирование параметров
- ✅ Заглушка рекомендации размера
- ✅ Админ-панель /admin_stats
- ✅ Заглушка для AI-примерки
## Технологии
- **Python 3.11**
- **Aiogram 3.15** - асинхронная библиотека для Telegram Bot API
- **Redis** - хранилище FSM состояний
- **PostgreSQL** - (пока не используется, будет на этапе 1)
- **Docker & Docker Compose** - контейнеризация
## Структура проекта
```
fitting_bot/
├── bot/
│ ├── handlers/ # Обработчики команд
│ │ ├── start.py # /start и главное меню
│ │ ├── catalog.py # Каталог и пагинация
│ │ ├── favorites.py # Избранное
│ │ ├── measurements.py # Параметры (FSM)
│ │ └── admin.py # Админ-панель
│ ├── keyboards/ # Клавиатуры
│ ├── states/ # FSM состояния
│ ├── mock_data/ # Моковые данные
│ │ ├── categories.py # Категории товаров
│ │ └── products.py # Товары
│ └── utils/ # Утилиты
│ └── storage.py # Хранение в памяти
├── docker-compose.yml # Docker Compose конфигурация
├── Dockerfile # Dockerfile для бота
├── requirements.txt # Python зависимости
├── .env.example # Пример переменных окружения
└── main.py # Точка входа
```
## Быстрый старт
### 1. Клонирование и настройка
```bash
# Перейти в директорию проекта
cd fitting_bot
# Скопировать .env.example в .env
cp .env.example .env
```
### 2. Настройка .env файла
Отредактируйте `.env` и добавьте токен вашего бота:
```env
TELEGRAM_BOT_TOKEN=your_bot_token_here
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_DB=0
ADMIN_TG_IDS=123456789
```
### 3. Получение токена бота
1. Найдите @BotFather в Telegram
2. Отправьте команду `/newbot`
3. Следуйте инструкциям и получите токен
4. Вставьте токен в `.env` файл
### 4. Запуск через Docker Compose
```bash
# Запуск всех сервисов (postgres, redis, bot)
docker-compose up -d
# Просмотр логов
docker-compose logs -f bot
# Остановка
docker-compose down
```
### 5. Запуск локально (без Docker)
```bash
# Установка зависимостей
pip install -r requirements.txt
# Запуск Redis (должен быть установлен)
redis-server
# Запуск бота
python main.py
```
## Использование бота
### Основные команды
- `/start` - Запуск бота и показ главного меню
- `/admin_stats` - Просмотр статистики (доступна всем на этапе 0)
### Главное меню
- **🛍 Каталог** - Просмотр товаров по категориям
- **⭐️ Избранное** - Сохраненные товары
- **📐 Мои параметры** - Ввод параметров тела
- **ℹ️ О боте** - Информация о возможностях
### Категории товаров
- 🧥 Куртки оверсайз
- 🧥 Пальто
- 🧥 Пуховики
- 🧥 Плащи
- 🧥 Бомберы
- 🧥 Жилеты
- 🧥 Ветровки
- 🧥 Парки
- 👖 Штаны
## Особенности этапа 0
### Данные в памяти
Все данные (избранное, параметры) хранятся в памяти Python и сбрасываются при перезапуске бота. Это нормально для прототипа.
### Моковые данные
Все товары и категории жестко закодированы в файлах:
- `bot/mock_data/categories.py`
- `bot/mock_data/products.py`
Изображения товаров - это заглушки через placeholder.
### Фиксированная рекомендация размера
На этапе 0 для всех товаров показывается размер **M** после ввода параметров. Реальный алгоритм подбора будет реализован на этапе 1.
## Что будет на следующих этапах
### Этап 1: Каталог и подбор размеров
- Интеграция с Google Sheets
- База данных PostgreSQL
- Реальный алгоритм подбора размеров
- FastAPI backend
- Сохранение данных между перезапусками
### Этап 2: AI-примерка
- Загрузка фото пользователя
- Валидация фото через AI
- Интеграция с Gemini API
- Генерация примерок
- История примерок
## Разработка
### Добавление новых товаров
Отредактируйте `bot/mock_data/products.py`:
```python
{
"product_id": "new_product_001",
"category": "jackets_oversize",
"name": "Название товара",
"description": "Описание товара",
"wb_link": "https://www.wildberries.ru/",
"available_sizes": "XS,S,M,L,XL",
"collage_url": "https://url_to_image",
"photo_1_url": "https://url_to_photo1",
...
}
```
### Добавление новых категорий
Отредактируйте `bot/mock_data/categories.py`.
## Troubleshooting
### Бот не отвечает
1. Проверьте, что токен бота правильный в `.env`
2. Проверьте логи: `docker-compose logs -f bot`
3. Убедитесь, что Redis запущен
### Redis connection error
```bash
# Проверить статус Redis
docker-compose ps redis
# Перезапустить Redis
docker-compose restart redis
```
### Изображения не загружаются
На этапе 0 используются placeholder изображения. Если они не загружаются, это не критично - структура и навигация бота работают.
## Docker команды
```bash
# Пересобрать образ бота
docker-compose build bot
# Перезапустить только бота
docker-compose restart bot
# Посмотреть логи Redis
docker-compose logs -f redis
# Очистить все данные
docker-compose down -v
```
## Контакты
Для вопросов по проекту обращайтесь к документации:
### Общая документация:
- `docs/SPEC.md` - Краткая спецификация проекта
- `docs/MAIN.md` - Полное ТЗ проекта
- `docs/S0/S0.md` - Техническое задание этапа 0
- `docs/S1/S1.md` - Техническое задание этапа 1
### Документация Google Sheets:
- `docs/GOOGLE_SHEETS_CHEATSHEET.md` - 📋 **Шпаргалка** (начните отсюда!)
- `docs/GOOGLE_SHEETS_COLUMNS.md` - 📚 Подробное описание всех столбцов
- `docs/GOOGLE_SHEETS_SETUP.md` - 🔧 Настройка подключения к Google Sheets
- `docs/GOOGLE_SHEETS_MIGRATION.md` - 🔄 Инструкция по переходу на русские названия
## Лицензия
Проект разрабатывается для конкретного заказчика.