Skip to content

GrimStack-Education/spotWave

Repository files navigation

SpotWave

Инструмент для поиска единомышленников и организации гипер-локальных событий в реальном времени

Next.js NestJS Prisma Tailwind CSS


Содержание


О проекте

Проблема

В больших городах люди часто чувствуют социальную изоляцию, даже живя в окружении тысяч соседей. Поиск компании для простых активностей (настольные игры, спорт, прогулки) в своем районе через общие чаты 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
Loading

Быстрый старт

Требования

Компонент Минимум Рекомендуется
Node.js 18.18+ 20+
pnpm 8+ 10+

Клонирование репозитория

git clone https://github.com/your-org/spotwave.git
cd spotwave

Установка зависимостей

pnpm install

Запуск приложения

pnpm dev

Команды

Root

# Запуск всех сервисов в режиме разработки
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

Frontend

# Запуск разработки
pnpm --filter @spotwave/frontend dev

# Сборка для продакшена
pnpm --filter @spotwave/frontend build

# Линтинг
pnpm --filter @spotwave/frontend lint

Backend

# Запуск в режиме разработки (watch mode)
pnpm --filter @spotwave/backend start:dev

# Сборка проекта
pnpm --filter @spotwave/backend build

# Запуск тестов
pnpm --filter @spotwave/backend test

Docker (локально)

# Запуск всех сервисов (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-стека приложение доступно на:

Seed создает несколько пользователей для демонстрации:

Роль Email Пароль
Host host@spotwave.local password123
Guest guest@spotwave.local password123
Runner runner@spotwave.local password123
Admin admin@spotwave.local password123

Рекомендуемый demo flow:

  1. Откройте /sign-in и войдите как guest@spotwave.local.
  2. Перейдите в /home, чтобы показать ленту локальных событий.
  3. Откройте /map, измените радиус и покажите события на карте.
  4. Откройте карточку события и нажмите Присоединиться.
  5. Перейдите в /communities, откройте сообщество и покажите чат участников.
  6. Откройте /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

About

Платформа для поиска единомышленников и офлайн-активностей рядом с тобой. Помогает найти компанию для хобби за минуты, а не часы

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Contributors