Есть дизайн мобильного приложения в Фигма. Требуется составить ТЗ для серверной части мобильного приложения, чтобы осуществить API First подход. Функциональные требования достаточно понятны через дизайн, но всё же вот некоторые из них в абстрактном описании:
Беспарольная аутентификация через email с юзкейсами по безопасности и отсеканию спама;
Редактирование профиля;
Ролевой доступ к возможностям приложения;
Мультиязычность (на старте en и ru) контента и учесть простое добавление новых языков;
Получение server-server нотификаций (ios + android) при действиях с подпиской через сторы и обработка их по конкретным юзкейсам;
Для РФ и Беларуси оплата будет с помощью Yoomoney;
Загрузка фото/видео контента;
Транзакционные пуш-уведомления;
Обратная связь;
Управление контентом (это тренировки, упражнения и так далее), не забываем про мультиязычность;
Возможности подписки ограничены объемом контента (например бесплатная до 3 единиц, базовая — до 10 единиц, максимальная — неограниченно), необходимо проверять это на стороне бэкенда.
Нефункциональные требования:
Clean Architecture на базе NestJS (уже есть база приложения) + PostgreSQL + Redis(в качестве кеша и очереди);
Событийная модель(если в одном модуле возникает событие, другой модуль должен реагировать на него);
Модульность — слабая связанность, сильное сцепление. Предлагается использовать модуль для оркестрации;
Унифицированный формат логов;
Унифицированный формат запросов/ответов;
Локализованный реестр ошибок;
Sentry для мониторинга ошибок;
Unit и функциональные тесты в критически важной части системы;
API должно быть построено с учетом того, что в будущем планируется Web-версия.
Обо мне: СТО крупной российской компании, хочу делегировать написание ТЗ, как и разработку собственного приложения. Готов общаться плотно для уточнения всех требований, получить детальное ТЗ, которое ляжет в основу договора на разработку бэкенда.
Покажу дизайн только после подписания NDA (у меня есть ЭЦП). Рассматриваю в основном глубоко-увлеченных системных аналитиков или компании с опытом построения легко поддерживаемых систем со знанием специфики подписочных моделей в сторах Apple и Google.
Ожидаемый результат — ТЗ в любой удобной системе ведения документации с возможностью комментирования. Со своей стороны могу предложить Notion или Confluence.
Для чего нужно приложение?
Приложение представляет собой некий гибрид LMS и CRM системе в сфере фитнеса