Maksutov Design МАКСУТОВ ДИЗАЙН
v0.3.1 Latest NestJS Next.js 14 Expo YooKassa

Rigs Market

Marketplace аренды туристического и спортивного снаряжения: объявления, карта, бронирование, чат, депозит через YooKassa, мобильное приложение и бизнес-кабинет. На странице показан весь путь аренды, а не только витрина.

01 / product scope

Rigs держится на цепочке: поиск → бронь → оплата → выдача → возврат

3 приложения в монорепозитории: API, web и mobile.
15 NestJS-модулей: аренда, платежи, чат, поиск, админка и фоновые задачи.
84 API endpoint в старой странице: REST API плюс WebSocket для чата.
0 TypeScript-ошибок после релизов `v0.2.0` и `v0.3.0`.

02 / stack & tags

TypeScript-монорепозиторий: один тип проходит через API, web и mobile

Rigs работает в две стороны: арендатор ищет снаряжение на карте, хост получает бронирование, платежная часть держит депозит, а чат закрывает спорные детали до выдачи.

В коде показана связка `@rigs/types`, API, web и mobile. Если меняется модель брони или платежа, это должно быть видно во всех частях, а не всплывать ошибкой уже после оплаты.

UX/UI NestJS Next.js TypeScript Expo Mapbox Socket.io YooKassa PostGIS Redis Elasticsearch MinIO Turborepo
TypeScript
99,2%
CSS
0,7%
Dockerfile
0,1%
JavaScript
0,0%

03 / release log

Релизы Rigs закрывают платежи, безопасность и мобильную совместимость

v0.3.1

Hotfix платежного вебхука и депозит-холда

Короткий релиз: исправлены два сценария, где пользователь мог потерять деньги или зависнуть в неправильном статусе.

  • YooKassa webhook больше не отклоняется из-за неверного сравнения `Authorization: Bearer`.
  • Успешная оплата переводит бронь в статус `paid/completed`, а не оставляет ее подвешенной.
  • При автоотмене просроченной брони вызывается `cancelDepositHold()` для каждой записи.
release notes
v0.3.0

Security Hardening & Code Quality

Релиз после аудита API: безопасность, логирование, типизация Socket.io и нормальная подготовка окружения.

  • Добавлен `helmet`, CORS для Socket.io переведен с `origin: '*'` на whitelist из `WEB_URL`.
  • `HttpLoggerMiddleware` логирует метод, путь, статус и время ответа.
  • Socket.io получил typed events: `ServerToClientEvents` и `ClientToServerEvents`.
release notes
v0.2.0

Expo SDK 54 Migration

Полный апгрейд мобильной части с Expo SDK 51 на SDK 54. В релизе отдельно зафиксированы критичные, средние и мелкие исправления.

  • `expo-router` обновлен до v6, routes переписаны на типизированные объекты.
  • `expo-notifications` обновлен до v0.32: banner/list вместо устаревшего alert API.
  • `npx tsc --noEmit` после миграции показывает 0 ошибок.
release notes

04 / file map

Ключевые файлы

05 / next projects