Система отчетности и аналитики для покер-рума на Next.js с Supabase.
- 📊 Просмотр всех смен с общим рейком
- 🎯 Отображение активной смены в реальном времени
- 📈 Детальная статистика по каждой смене
- 🃏 Информация по столам, игрокам и транзакциям
- 💰 Подсчет рейка, чаевых и балансов игроков
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS
- Supabase (PostgreSQL)
- Vercel (хостинг)
git clone <repository-url>
cd PokerRoomWebnpm installСоздайте файл .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
npm run devОткройте http://localhost:3000 в браузере.
Убедитесь, что ваш проект загружен на GitHub/GitLab/Bitbucket.
- Зайдите на vercel.com
- Нажмите "New Project"
- Импортируйте ваш репозиторий
- Настройте переменные окружения:
- Перейдите в Settings → Environment Variables
- Добавьте:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
- Нажмите "Deploy"
Убедитесь, что в вашей базе данных Supabase:
- Применена схема из файла
database.sql(если есть) - Включен Row Level Security (RLS)
- Созданы политики доступа для публичного чтения
├── 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
- Баланс (разница)
Проект построен на модульной архитектуре:
- Типы (
types/) - определите типы данных - Запросы (
lib/queries.ts) - добавьте функции для работы с БД - Компоненты (
components/) - создайте UI компоненты - Страницы (
app/) - используйте компоненты на страницах
npm run dev # Запуск dev сервера
npm run build # Сборка продакшн версии
npm run start # Запуск продакшн сервера
npm run lint # Проверка кода линтеромПри возникновении проблем проверьте:
- Правильность переменных окружения
- Доступность базы данных Supabase
- Наличие данных в таблицах
- Правильность RLS политик
MIT