Skip to content

kitishe/PokerRoomWeb

Repository files navigation

Отчеты покер-рума

Система отчетности и аналитики для покер-рума на Next.js с Supabase.

Возможности

  • 📊 Просмотр всех смен с общим рейком
  • 🎯 Отображение активной смены в реальном времени
  • 📈 Детальная статистика по каждой смене
  • 🃏 Информация по столам, игрокам и транзакциям
  • 💰 Подсчет рейка, чаевых и балансов игроков

Технологии

  • Next.js 15 (App Router)
  • TypeScript
  • Tailwind CSS
  • Supabase (PostgreSQL)
  • Vercel (хостинг)

Установка и запуск локально

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

git clone <repository-url>
cd PokerRoomWeb

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

npm install

3. Настройка переменных окружения

Создайте файл .env.local на основе env.example:

cp env.example .env.local

Заполните переменные окружения вашими данными Supabase:

NEXT_PUBLIC_SUPABASE_URL=https://ваш-проект.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=ваш-anon-ключ

Вы можете найти эти значения в настройках вашего проекта Supabase:

  • Dashboard → Settings → API

4. Запуск сервера разработки

npm run dev

Откройте http://localhost:3000 в браузере.

Развертывание на Vercel

1. Подготовка проекта

Убедитесь, что ваш проект загружен на GitHub/GitLab/Bitbucket.

2. Деплой на Vercel

  1. Зайдите на vercel.com
  2. Нажмите "New Project"
  3. Импортируйте ваш репозиторий
  4. Настройте переменные окружения:
    • Перейдите в Settings → Environment Variables
    • Добавьте:
      • NEXT_PUBLIC_SUPABASE_URL
      • NEXT_PUBLIC_SUPABASE_ANON_KEY
  5. Нажмите "Deploy"

3. Настройка Supabase

Убедитесь, что в вашей базе данных Supabase:

  1. Применена схема из файла database.sql (если есть)
  2. Включен Row Level Security (RLS)
  3. Созданы политики доступа для публичного чтения

Структура проекта

├── app/                    # Next.js App Router
│   ├── layout.tsx         # Корневой layout
│   ├── page.tsx           # Главная страница (список смен)
│   └── shift/[id]/        # Детальная страница смены
│       └── page.tsx
├── components/            # React компоненты
│   ├── ActiveShiftCard.tsx
│   ├── ShiftListItem.tsx
│   ├── MetricCard.tsx
│   ├── TableCard.tsx
│   └── PlayerRow.tsx
├── lib/                   # Утилиты и хелперы
│   ├── supabase/         # Supabase клиенты
│   │   ├── client.ts     # Браузерный клиент
│   │   └── server.ts     # Серверный клиент
│   ├── queries.ts        # Запросы к БД
│   └── utils.ts          # Вспомогательные функции
└── types/                # TypeScript типы
    ├── database.ts       # Типы БД
    └── api.ts           # Типы API

Основные функции

Главная страница

  • Отображение активной смены (если есть)
  • Список всех смен с общим рейком
  • Клик по смене открывает детальную информацию

Страница детальной смены

  • Метрики: общий рейк, чаевые, количество уникальных игроков
  • Список всех столов смены
  • Информация по каждому столу:
    • Игра и лимиты
    • Количество игроков
    • Рейк и чаевые
    • Длительность работы
  • Список игроков за каждым столом с транзакциями:
    • Buy-ins
    • Cash-outs
    • Баланс (разница)

Разработка

Добавление новых функций

Проект построен на модульной архитектуре:

  1. Типы (types/) - определите типы данных
  2. Запросы (lib/queries.ts) - добавьте функции для работы с БД
  3. Компоненты (components/) - создайте UI компоненты
  4. Страницы (app/) - используйте компоненты на страницах

Полезные команды

npm run dev        # Запуск dev сервера
npm run build      # Сборка продакшн версии
npm run start      # Запуск продакшн сервера
npm run lint       # Проверка кода линтером

Поддержка

При возникновении проблем проверьте:

  1. Правильность переменных окружения
  2. Доступность базы данных Supabase
  3. Наличие данных в таблицах
  4. Правильность RLS политик

Лицензия

MIT

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors