Инструмент для поиска единомышленников и организации гипер-локальных событий в реальном времени
В больших городах люди часто чувствуют социальную изоляцию, даже живя в окружении тысяч соседей. Поиск компании для простых активностей (настольные игры, спорт, прогулки) в своем районе через общие чаты Telegram или группы ЖК часто неэффективен: сообщения теряются в спаме, а поиск происходит вручную и хаотично.
SpotWave — это платформа для гипер-локального взаимодействия. С помощью интерактивной карты и умных фильтров пользователи могут мгновенно находить события «здесь и сейчас» в радиусе нескольких километров от себя. Система позволяет быстро объединяться в группы по интересам, отсекать нерелевантные предложения и безопасно организовывать встречи с соседями.
flowchart LR
subgraph Client["Клиент"]
User["Пользователь"]
end
subgraph FE["Frontend (Next.js + Tailwind)"]
Router["App Router / Pages"]
Components["HeroUI Components"]
State["Client State / Hooks"]
end
subgraph BE["Backend (NestJS)"]
API["REST API / Controllers"]
Services["Business Logic"]
Modules["Domain Modules"]
end
subgraph Storage["Хранилище"]
DB[("PostgreSQL<br/>+ Prisma v7")]
end
User --> Router
Router --> Components
Router --> State
State --> API
API --> Services
Services --> Modules
Modules --> DB
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| Node.js | 18.18+ | 20+ |
| pnpm | 8+ | 10+ |
git clone https://github.com/your-org/spotwave.git
cd spotwavepnpm installpnpm dev# Запуск всех сервисов в режиме разработки
pnpm dev
# Запуск только frontend
pnpm dev:frontend
# Запуск только backend
pnpm dev:backend
# Сборка всех пакетов
pnpm build
# Сборка только frontend
pnpm build:frontend
# Сборка только backend
pnpm build:backend
# Автоисправление линтинга + форматирование
pnpm lint:fix
# Форматирование всего репозитория
pnpm format# Запуск разработки
pnpm --filter @spotwave/frontend dev
# Сборка для продакшена
pnpm --filter @spotwave/frontend build
# Линтинг
pnpm --filter @spotwave/frontend lint# Запуск в режиме разработки (watch mode)
pnpm --filter @spotwave/backend start:dev
# Сборка проекта
pnpm --filter @spotwave/backend build
# Запуск тестов
pnpm --filter @spotwave/backend test# Запуск всех сервисов (build + up) из корня
docker compose -f infrastructure/docker/docker-compose.yml up --build
# Запуск в фоне
docker compose -f infrastructure/docker/docker-compose.yml up -d
# Остановить и удалить контейнеры
docker compose -f infrastructure/docker/docker-compose.yml down
# Просмотр логов
docker compose -f infrastructure/docker/docker-compose.yml logs -f
# Пересборка образов без кеша
docker compose -f infrastructure/docker/docker-compose.yml build --no-cache
# Применить схему БД (Prisma) через Docker
docker compose -f infrastructure/docker/docker-compose.yml run --rm migrator
# Запустить backend e2e-тесты через Docker
docker compose -f infrastructure/docker/docker-compose.yml run --rm backend-testПосле запуска Docker-стека приложение доступно на:
- Frontend: http://localhost:3000
- Backend API: http://localhost:3333
- B2B admin: http://localhost:3001
Seed создает несколько пользователей для демонстрации:
| Роль | Пароль | |
|---|---|---|
| Host | host@spotwave.local |
password123 |
| Guest | guest@spotwave.local |
password123 |
| Runner | runner@spotwave.local |
password123 |
| Admin | admin@spotwave.local |
password123 |
Рекомендуемый demo flow:
- Откройте
/sign-inи войдите какguest@spotwave.local. - Перейдите в
/home, чтобы показать ленту локальных событий. - Откройте
/map, измените радиус и покажите события на карте. - Откройте карточку события и нажмите
Присоединиться. - Перейдите в
/communities, откройте сообщество и покажите чат участников. - Откройте
/profileи/verification, чтобы показать trust-сигналы, check-ins и отзывы.
Важно: команда docker compose -f infrastructure/docker/docker-compose.yml run --rm backend-test запускает e2e-тесты на локальной Postgres-базе и может очищать demo-данные. Чтобы восстановить seed после тестов:
docker compose -f infrastructure/docker/docker-compose.yml run --rm migrator