Маркетплейс «спаси еду»: кофейни и пекарни Астаны продают свежие, но не проданные за день товары боксами со скидкой 40–70%, пользователи бронируют, оплачивают и забирают самовывозом. Бизнес режет списания — люди едят дешевле.
Это рабочий MVP, максимально близкий к реальному продукту: полный флоу публикация → бронь → оплата → код/QR → выдача с правилами no-show и возврата.
| Роль | Что умеет |
|---|---|
| 🛍 Магазин (покупатель) | каталог боксов на ленте, фильтр по району, карточка с «ориентировочной ценностью» и FOMO «осталось N», бронь + демо-оплата, QR-код и код выдачи, «Мои заказы» |
| 🧑🍳 Партнёр (кофейня) | создать бокс за минуту, список своих боксов и броней, выдача заказа по коду |
| 🛠 Админ | метрики пилота (GMV, fill rate, no-show, возвраты, take-rate), все заказы, возвраты |
- Surprise box — точный состав может отличаться, это набор остатков дня.
- No-show — если не забрал в окне самовывоза, заказ сгорает, предоплата не возвращается.
- Возврат — если заведение не выдало, полный refund (бокс возвращается в наличие).
- Бронь атомарно уменьшает остаток; повторная выдача одного кода блокируется.
Python · FastAPI · SQLite (stdlib) · ванильный JS · segno (QR локально). Без внешних зависимостей и тяжёлых фреймворков — быстрый и дешёвый запуск.
uv venv --python 3.12 .venv && source .venv/bin/activate
uv pip install -r requirements.txt
uvicorn app.main:app --reload # http://localhost:8000 · /docs — API
pytest # тесты бизнес-логикиБаза наполняется демо-данными Астаны при первом старте (6 заведений, 7 боксов).
Оплата в MVP — демо-заглушка. В проде нужен Kaspi Pay / Kaspi QR — это основной платёжный рельс в Казахстане (люди не вводят карты). Интеграция Kaspi — отдельный и самый весомый технический пункт следующего этапа.
- Kaspi Pay/QR — реальная оплата.
- Карта + геолокация, пуши «появились боксы рядом», избранные точки.
- Реферальная программа, промокоды, рейтинг боксов.
- Комиссия 5–12% с заказа после валидации спроса.
MVP проверяет 3 гипотезы: supply (партнёры публикуют), demand (люди покупают), operations (бронь/выдача без хаоса) — прежде чем вкладываться в полноценное приложение.
- Деплой бэкенда — Render → New → Blueprint → этот репозиторий (
render.yaml). - Переменные окружения — заполнить по .env.example:
YUMMY_SECRET_KEY(обязательно),YUMMY_ENFORCE_AUTH=1,YUMMY_ADMIN_EMAILS,YUMMY_CORS_ORIGINS. - Админ-доступ — зарегистрироваться на сайте с email из
YUMMY_ADMIN_EMAILS→ аккаунт получает роль admin (JWT открывает /admin/*). - Партнёры — заведение регистрируется с ролью «Заведение» → его JWT открывает публикацию боксов и выдачу по коду/QR-сканеру.
- Оплата — после регистрации мерчанта Kaspi вписать
KASPI_SERVICE_IDвapp/static/index.html(кнопка Kaspi появится сама). - Telegram-вход/уведомления — токен от @BotFather в
TELEGRAM_BOT_TOKEN.
Разработка: make help (dev / test / docs / seed / zip).