input
Goal
Разработка сервиса для предоставления услуг продажи чеков по требованию.
Ценность для клиента: клиент как юридическое лицо хочет уменьшить базу налогообложения. Для этого клиенту необходимо показать затраты. Мы предлагаем клиенту купить чеки задним числом, для отражения фиктивных затрат. Чеки группируются по видам деятельности, наличию скана и т.п. Фактически мы делаем магазин чеков.
Продукты
У нас есть несколько продуктов, которые отличаются и по ценообразованию и по сути.
- чеки ретро: Чеки выписанные задним числом (но не более 2х лет назад)
- чеки актуальные: Чеки выписанные сегодняшней или будущей датой
- чеки резерв: Чеки уже созданные ранее.
User-stories
Покупатель (Юридическое лицо / Бухгалтер)
Авторизация и профиль
- Я как клиент, хочу авторизоваться через Telegram, чтобы быстро и безопасно получить доступ к сервису без ввода пароля.
- Я как клиент, хочу видеть свой текущий баланс на главной странице и в боковом меню, чтобы контролировать остаток средств.
Управление балансом
- Я как клиент, хочу иметь возможность пополнить баланс через банковскую карту (физ. лиц) или криптовалюту, чтобы оплачивать услуги удобным способом.
- Я как клиент, хочу видеть историю своих транзакций (пополнения и списания), чтобы отслеживать финансовые операции.
- Я как клиент, хочу получать уведомление в Telegram, когда администратор прислал реквизиты для оплаты по карте, так как срок их действия ограничен (1 час).
- Я как клиент, хочу иметь возможность загрузить квитанцию об оплате после перевода по реквизитам, чтобы мой платеж был подтвержден.
Оформление заказа (Общее)
- Я как клиент, хочу иметь возможность выбрать компанию (кассу) из каталога перед заполнением номенклатуры, чтобы понимать, от кого будет выписан чек.
- Я как клиент, хочу, чтобы при оформлении заказа сохранялся черновик, чтобы я мог продолжить заполнение номенклатуры, если случайно закрыл вкладку или прервал процесс.
- Я как клиент, хочу видеть всплывающее окно о недостаточности средств при попытке оформить заказ, с указанием точной суммы, которую нужно доплатить.
Заказ "Чеки Стандарт" (Актуальные)
- Я как клиент, хочу при заказе стандартных чеков иметь возможность отметить галочку "Нужен электронный чек", чтобы получить его в цифровом виде.
- Я как клиент, хочу получить уведомление после оформления заказа, что он принят и будет обработан в течение 24 часов.
Заказ "Чеки Ретро" (Задним числом)
- Я как клиент, хочу иметь возможность заказать чеки задним числом (по умолчанию до 3 месяцев, для крупных заказов — до года), чтобы отразить расходы за прошлые периоды.
- Я как клиент, хочу видеть специальное предложение (карточку-заявку) на индивидуальную "отмотку" кассы, если не нашел нужные даты в каталоге, при условии заказа от 10 млн руб.
- Я как клиент, хочу оставить заявку на ретро-чеки с указанием желаемых дат и объема, понимая, что оплата будет доступна только после подтверждения возможности выполнения заказа администратором.
Заказ "Чеки Резерв" (Готовые)
- Я как клиент, хочу видеть пометки "Есть оригиналы" или "Нет оригиналов" для чеков из резерва, чтобы знать, смогу ли я получить бумажный документ по почте.
- Я как клиент, хочу видеть предупреждение, что НДС нельзя закрыть чеками из резерва, если я пытаюсь выбрать эту опцию.
- Я как клиент, хочу иметь возможность скачать купленные чеки и сканы сразу после оплаты на странице заказов.
Администратор (CMS/CRM)
Управление кассами (Компаниями)
- Я как администратор, хочу создавать и удалять компании (кассы) в системе, указывая их ИНН, название, дату регистрации и типы доступных чеков (Ретро/Стандарт).
- Я как администратор, хочу управлять доступностью касс ("В работе" / "Не в работе"), чтобы они динамически появлялись или исчезали из каталога клиентов.
- Я как администратор, хочу закреплять кассира за конкретной компанией (скрыто от клиента), чтобы распределять нагрузку по обработке заказов.
Обработка платежей
- Я как администратор, хочу видеть список заявок на пополнение баланса и иметь возможность оперативно отправлять клиентам актуальные реквизиты карт.
- Я как администратор, хочу подтверждать или отклонять платежи после проверки загруженных клиентами квитанций, чтобы баланс пользователя обновлялся корректно.
- Я как администратор, хочу иметь возможность оставлять комментарий к отклоненному платежу, чтобы клиент понимал причину отказа.
Отчетность и мониторинг
- Я как администратор, хочу использовать Metabase для просмотра аналитических отчетов по продажам, типам продуктов и активности клиентов, чтобы принимать управленческие решения.
Tech
Мы хотим разделить систему на несколько подсистем:
client-front
Клиентский фронтенд + BFF слой на SvelteKit. Тут живут наши клиенты, мы хотим чтобы эту часть легко можно было перенести на другой домен к примеру.
admin-cms-crm
Мы хотим использовать payload-cms как готовую админ панель для заведения чеков и управления клиентами, их статусами и платежами.
admin-metabase
Для построения отчетов мы хотим использовать opensource bi систему metabase. Она может работать поверх модели данных payload-cms позволяя строить отчеты и по данным кассы и т.п.
NFR
Наша клиентура находится в РУ, поэтому нельзя пользоваться CloudFlare, мы должны хостится на VPS в РУ или Fly.io, для того чтобы у нас не блокировал РКН.
Нам важно разделить админ панель и клиентскую часть на разные доменны.
Нам важно сохранять бекапы ЗА пределами сервера, к примеру в CloudFlare R2.
People
| role (rate) / month | 1 month | 2 month | 3 month | total |
|---|---|---|---|---|
| fullstack (45 usd/hour) | 160h | 160h | 160h | 21600 usd |
| lead (55 usd/hour) | 40h | 40h | 40h | 6600 usd |
| project (25 usd/hour) | 80h | 80h | 80h | 6000 usd |
| qa (20 usd/hour) | 160h | 3200 usd | ||
| devops (60 usd/hour) | 40h | 20h | 20h | 4800 usd |
| Расчетный эстимейт: 42200 usd | ||||
| Важно: эстимейт не есть коммитмент. |