Задание: Веб-программист. Веб-платформа (SaaS), где пользователи могут подключать свои аккаунты в соцсетях (Дистанционная работа)
1. Общее описание проекта Требуется разработать веб-платформу (SaaS), где пользователи могут подключать свои аккаунты в соцсетях, настраивать шаблоны и расписание публикаций, а система автоматически генерирует посты с помощью ИИ и публикует их в указанные соцсети. Цель MVP: поддержка 5 соцсетей (VK, Telegram, ЯндексДзен, Одноклассники и 1 зарубежнюю), базовая генерация текста по шаблонам, календарь публикаций, личный кабинет пользователя. 2. Функциональные требования Для пользователя (личный кабинет) Регистрация и авторизация (email + пароль, опционально вход через соцсети). Подключение аккаунтов соцсетей: OAuth2-авторизация, хранение токенов в зашифрованном виде. Управление подключёнными аккаунтами: список, отключение, повторная авторизация, статусы (активен/ошибка/требуется обновление токена). Шаблоны постов: создание, редактирование, удаление шаблонов с переменными (дата, тема, тон, хэштеги). Генерация контента: кнопка «Сгенерировать пост» по выбранному шаблону и параметрам; отображение результата с возможностью ручной правки. Расписание публикаций: календарь/список запланированных постов, установка даты/времени, перенос/отмена, статусы («запланирован», «в очереди», «опубликован», «ошибка»). История публикаций: список уже опубликованных постов с привязкой к аккаунту и соцсети. Настройки профиля и уведомлений: email-уведомления об ошибках публикации и истечении токенов. Ядро системы Интеграция с LLM (ИИ): вызов API для генерации текста по промту/шаблону, контроль длины, фильтрация нежелательного контента. Очередь задач: фоновая обработка публикаций с учётом лимитов соцсетей, повторные попытки при ошибках, логирование результатов. Обработка ошибок и лимитов API соцсетей: retry-логика, backoff, хранение кодов ошибок и сообщений от API. Логирование действий: кто, когда, что сделал (подключение, публикация, ошибка), хранение логов на N дней. Админ-панель (для владельца сервиса) Просмотр пользователей, подключений, задач в очереди, ошибок. Ручное управление задачами (перезапуск, отмена). 3. Нефункциональные требования Безопасность: Хранение токенов и секретов в зашифрованном виде (AES или встроенные механизмы секретов облачной платформы). Защита от CSRF/XSS, валидация всех входящих данных. HTTPS, ограничение частоты запросов (rate limiting) к API сервиса. Производительность: Время ответа API < 500 мс для основных операций (кроме генерации и публикации - они асинхронны). Очередь публикаций должна выдерживать пиковые нагрузки (оценка: 10-100 публикаций в минуту). Масштабируемость: Архитектура должна позволять масштабировать воркеров очереди и инстансы API независимо. Локализация и язык: интерфейс на русском, возможность расширения на другие языки. Резервное копирование и восстановление: регулярное бэкапирование БД (по требованию заказчика). 4. Интеграции Соцсети (на выбор для MVP): VK API, Telegram Bot API, X API (или любая другая по согласованию). LLM (на выбор): OpenAI, Anthropic, либо российский аналог - по согласованию. Почта: сервис отправки уведомлений (SendGrid, Mailgun, Yandex Cloud Postbox и т.п.). Мониторинг и ошибки: Sentry (или аналог) для отслеживания ошибок, Grafana/Prometheus для метрик (опционально на MVP). 5. Технологический стек (рекомендуемый, можно обсудить) Backend: Python (FastAPI) или Node.js (NestJS). База данных: PostgreSQL. Кэш: Redis (для очередей, кэширования, rate limiting). Очереди задач: Celery + Redis или BullMQ. Контейнеризация: Docker, Docker Compose. Деплой: Yandex Cloud / AWS / GCP (по согласованию). Frontend: React/Vue/Next.js (либо готовый UI-кит для ускорения MVP). 6. Этапы Прототип архитектуры и API : схема БД, ER-диаграмма, описание эндпоинтов, план очередей. MVP ядро + 1 соцсеть + базовая генерация : регистрация, OAuth, очередь, публикация в одной соцсети, генерация текста, админ-панель. Добавление 1-2 соцсетей, улучшения UX, тесты : добавление соцсетей, улучшение шаблонов, тестирование интеграций, исправление багов. Документация и передача : описание API, инструкции по запуску в Docker, схема БД, список секретов/переменных окружения. Итого: ориентир на MVP. 7. Критерии приёмки Пользователь может зарегистрироваться, подключить аккаунт соцсети, создать шаблон, сгенерировать пост, запланировать и опубликовать его. Все токены хранятся в зашифрованном виде, нет утечек в логах. Очередь корректно обрабатывает ошибки API соцсетей и делает повторные попытки. В админ-панели видны пользователи, задачи и ошибки. Предоставлена документация: API-эндпоинты, переменные окружения, инструкция по запуску. 9. Исходные материалы и доступы (предоставляются заказчиком) Аккаунты/ключи для тестовых интеграций (соцсети, LLM, почта). Бренд-гайд/требования к стилю (если есть). Список приоритетных соцсетей и сценариев использования. 10. Формат сдачи и коммуникации Репозиторий на GitHub/GitLab с историей коммитов. Ежедневный/еженедельный отчёт о прогрессе (в Telegram/Jira/Trello). Демо-стенд для проверки функционала.