Старт разработки выполнен с упором на продуктовый backend, готовый к масштабированию.
- NestJS API с модульной структурой (
auth,subscription,forecasts,natal-chart,meditations,events,profile,health). - PostgreSQL data layer через Prisma (
User,Plan) вместо in-memory хранилища. - Prisma SQL migration baseline +
prisma migrate deployдля repeatable DB rollout. - JWT access/refresh flow (короткоживущий access token).
- Базовый server-side entitlement check (free/premium) в ключевых endpoint.
- Idempotent обработка
POST /subscription/google/verifyс записью hash purchase token в БД. - Security baseline: helmet, валидация входных DTO, глобальный rate limit.
- Health endpoints:
/api/health/live,/api/health/ready. - Structured request logging +
x-request-idcorrelation for observability baseline. - Unified API error envelope (global exception filter) с
requestIdдля быстрого трейсинга ошибок. - Swagger (
/docs) для синхронизации backend + Android команды. - Медитации: paywall-aware каталог с персонализацией по состоянию (
state) и лимитами free/premium. - Натальная карта: интерпретации с фокусом (
general/love/career/energy) и расширенной детализацией домов/аспектов для premium. - Docker Compose с PostgreSQL и Redis для локальной среды и дальнейшего scale-out.
cd backend
npm install
npm run prisma:migrate:deploy
npm run prisma:generate
npm run start:devAPI: http://localhost:3000/api
Swagger: http://localhost:3000/docs
Demo user:
- email:
demo@astrology.app - password:
demo1234
- Вынести purchase validation в асинхронный workflow (queue + retries + idempotency key).
- Добавить Play Integrity/SafetyNet и anti-fraud risk scoring.
- Расширить observability до OpenTelemetry + Prometheus/Grafana.
- Добавить refresh token rotation + revoke list.
- Разделить домены на сервисы (
api-gateway,billing,content/forecast-engine) при росте нагрузки.