This commit is contained in:
talorr
2026-03-27 03:36:08 +03:00
parent 8a97ce6d54
commit cda36918e8
225 changed files with 35641 additions and 0 deletions

118
docs/COMMERCIAL_PROPOSAL.md Normal file
View File

@@ -0,0 +1,118 @@
# Коммерческое предложение
## Проект
Система сигналов на базе Alpinbet с парсером, backend API, PWA-клиентом, push-уведомлениями и административной панелью.
## 1. Цель проекта
Разработка системы для получения сигналов из источника Alpinbet, их обработки и доставки пользователям в режиме, близком к реальному времени, с разграничением доступа по подписке и по ботам.
## 2. Состав работ
### 2.1 Backend
Будет реализовано:
- регистрация и авторизация пользователей;
- роли пользователей и базовое разграничение прав;
- система подписок с датой окончания и проверкой доступа;
- разграничение доступа к ботам;
- API для PWA-клиента и административной панели;
- прием и обработка сигналов от парсера;
- логика отправки уведомлений;
- базовое логирование системных событий.
Ограничения:
- backend не гарантирует 100% доставку уведомлений, так как доставка зависит от внешних push-провайдеров и настроек устройства пользователя;
- при изменении бизнес-логики доступа, тарифов или ролей требуется отдельная доработка.
### 2.2 Интеграция с Alpinbet
Будет реализовано:
- подключение к источнику данных Alpinbet по учетным данным заказчика;
- регулярный опрос страниц с интервалом около 20 секунд;
- сохранение сигналов в систему;
- защита от дублирования сигналов;
- привязка сигнала к конкретному боту/источнику;
- поддержка встроенного списка ботов в парсере.
На текущем этапе в парсер зашиваются следующие боты:
- `raketafon``https://alpinbet.com/dispatch/antigol/raketafon`
- `pobeda-1-comand``https://alpinbet.com/dispatch/antigol/pobeda-1-comand`
- `raketabas``https://alpinbet.com/dispatch/antigol/raketabas`
- `sol-1www``https://alpinbet.com/dispatch/antigol/sol-1www`
- `fon-stb``https://alpinbet.com/dispatch/antigol/fon-stb`
Важно:
- доступ к Alpinbet, учетные данные и фактическая структура страниц находятся на стороне заказчика;
- при изменении API, HTML-структуры, механизма авторизации или адресов страниц Alpinbet требуется отдельная доработка;
- при недоступности источника система не генерирует сигналы;
- качество и стабильность парсинга напрямую зависят от стабильности внешнего источника.
### 2.3 Push-уведомления
Будет реализовано:
- отправка уведомлений при появлении новых сигналов;
- регистрация устройства пользователя;
- доставка через web push;
- базовая обработка невалидных push-подписок.
Ограничения:
- на iPhone push-уведомления работают через PWA и зависят от Safari, разрешений пользователя и системных настроек;
- уведомления могут приходить с задержкой;
- гарантируется попытка отправки уведомления, но не гарантируется фактическое получение на устройстве.
### 2.4 Клиентское приложение (PWA)
Будет реализовано:
- доступ через браузер как web-приложение;
- установка на телефон как PWA;
- авторизация пользователя;
- просмотр списка сигналов;
- просмотр срока действия подписки;
- отображение доступных пользователю ботов;
- работа с push-уведомлениями в рамках возможностей браузера.
Ограничения:
- приложение является PWA, а не нативным приложением;
- публикация в App Store и Google Play не входит в данный этап;
- функциональность ограничена возможностями браузера и платформенных ограничений PWA.
### 2.5 Административная панель
Будет реализовано:
- просмотр списка пользователей;
- управление сроками доступа и подписками;
- выдача и продление доступа;
- управление доступом к ботам;
- базовый просмотр сигналов и статусов доставки уведомлений.
Не входит:
- сложная аналитика;
- финансовая отчетность;
- CRM-функции и продвинутая история изменений.
### 2.6 Запуск системы
Будет выполнено:
- настройка серверного окружения;
- деплой проекта;
- базовая проверка работоспособности backend, parser, frontend и push-механизма;
- проверка получения сигналов из подключенных ботов.
## 3. Что не входит в проект
- публикация в App Store / Google Play;
- интеграция платежных систем;
- юридические документы и правовая часть;
- техническая поддержка сторонних сервисов и поставщиков;
- доработки, вызванные изменениями на стороне Alpinbet, Firebase, браузеров или операционных систем;
- SLA на внешние сервисы и гарантии бесперебойной работы источника данных.
## 4. Технические ограничения и допущения
- система работает по модели best effort для внешних интеграций;
- парсер зависит от доступности Alpinbet и сохранности учетной сессии;
- при изменении структуры страниц могут потребоваться срочные корректировки селекторов и логики парсинга;
- скорость появления сигнала у пользователя зависит от источника, интервала опроса, сети, браузера и push-провайдера;
- доступ к ботам, список ботов и учетные данные предоставляются заказчиком.