init
This commit is contained in:
118
docs/COMMERCIAL_PROPOSAL.md
Normal file
118
docs/COMMERCIAL_PROPOSAL.md
Normal 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-провайдера;
|
||||
- доступ к ботам, список ботов и учетные данные предоставляются заказчиком.
|
||||
Reference in New Issue
Block a user