Skip to content

Фаза 0: Ініціалізація проекту GameShell — monorepo з усіма компонентами#1

Merged
Virt92 merged 4 commits into
mainfrom
devin/1777888122-initial-setup
May 4, 2026
Merged

Фаза 0: Ініціалізація проекту GameShell — monorepo з усіма компонентами#1
Virt92 merged 4 commits into
mainfrom
devin/1777888122-initial-setup

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

Summary

Повна ініціалізація monorepo-проекту GameShell — системи управління комп'ютерним клубом / кібер-ареною.

Що створено:

Backend (NestJS + TypeScript + Prisma)

  • 12 модулів: Auth (JWT + SMS), Clubs, Hosts, Sessions, Tariffs, Staff, Players, Games, Shop, Loyalty, Reports, Consoles
  • Prisma-схема з 17 таблицями (clubs, staff, players, zones, hosts, tariffs, sessions, shifts, games, host_games, products, orders, order_items, achievements, promo_codes, deploy_tasks, host_telemetry)
  • WebSocket Gateway (Socket.IO) для real-time оновлень
  • RBAC guards + decorators (Owner, DevOps, Operator, Accountant)
  • Swagger API документація
  • Seed data: 35 ПК, 3 PS5, 2 PS2, тарифи, ігри, товари магазину

Admin Panel (Vue 3 + TypeScript + Tailwind CSS)

  • Темна тема в стилі gaming
  • 10 сторінок: Dashboard, Карта обладнання, Сесії, Ігри, Консолі (PlayStation), Магазин, Звіти, Персонал, Гравці, Налаштування
  • Ролева навігація (Owner/DevOps/Operator/Accountant бачать різні пункти)
  • Pinia store для авторизації
  • API client з JWT refresh token

Shell Client (C# WPF / .NET 8)

  • Екран блокировки (SMS-вхід / QR / Гість)
  • Game Launcher з пошуком та таймером сесії
  • Блокування клавіш (Win, Alt+Tab, Alt+F4)
  • Моніторинг процесів (блокує TaskManager, cmd, regedit)
  • Session Timer з попередженнями (10 хв, 2 хв)
  • DI через Microsoft.Extensions.Hosting
  • MVVM з CommunityToolkit.Mvvm

Agent (C# Worker Service / .NET 8)

  • Background service для збору телеметрії
  • Каркас для віддалених команд

Local Hub (Node.js + TypeScript)

  • playactor інтеграція (PS5 wake/standby по мережі)
  • MQTT/Tasmota управління реле (PS2 живлення)
  • HDMI-CEC підтримка
  • WebSocket міст між хмарним backend та локальними пристроями

Інфраструктура

  • Docker Compose: PostgreSQL 16, Redis 7, Mosquitto 2
  • GitHub Actions CI: збірка всіх 4 компонентів
  • .env.example для швидкого старту

Архітектура:

Cloud/VPS                    LAN клубу
┌─────────────┐         ┌──────────────────────┐
│  Backend    │◄───────►│  Local Hub           │
│  (NestJS)   │  WS     │  - playactor (PS5)   │
│  + Postgres │         │  - MQTT (Tasmota)    │
│  + Redis    │         │  - CEC (Raspberry Pi)│
├─────────────┤         ├──────────────────────┤
│ Admin Panel │         │  35x Agent (ПК)      │
│  (Vue 3)    │         │  3x PS5 (playactor)  │
└─────────────┘         │  2x PS2 (Tasmota)    │
                        └──────────────────────┘

Review & Testing Checklist for Human

  • Перевірити Prisma-схему (apps/backend/prisma/schema.prisma) — чи всі 17 таблиць відповідають ТЗ
  • Запустити docker compose up -d та cd apps/backend && npm install && npx prisma generate && npx tsc --noEmit — backend повинен компілюватись без помилок
  • Запустити cd apps/admin && npm install && npx vue-tsc --noEmit — admin panel повинна компілюватись
  • Перевірити що Shell .csproj та Agent .csproj мають правильні залежності для збірки на Windows (dotnet build)
  • Переглянути seed data (apps/backend/prisma/seed.ts) — чи кількість ПК/PS відповідає реальному клубу

Notes

  • Shell та Agent — WPF / Worker Service, збираються тільки на Windows. CI для Shell використовує windows-latest
  • Backend TypeScript компілюється чисто (0 помилок)
  • Admin Vue-tsc компілюється чисто (0 помилок)
  • playactor в Local Hub — для управління PS5 без реле, через протокол Remote Play
  • Це Фаза 0 (ініціалізація). Наступна Фаза 1 — повна реалізація API endpoints, міграції БД, та функціональні UI компоненти

Link to Devin session: https://app.devin.ai/sessions/70ce4ce2689a44f08d7cbe0ca5b1af6c
Requested by: @Virt92

… WPF), agent (C# Worker), local-hub (Node.js)

- NestJS backend with 12 modules: Auth, Clubs, Hosts, Sessions, Tariffs, Staff, Players, Games, Shop, Loyalty, Reports, Consoles
- Prisma schema with 17 tables (clubs, hosts, sessions, games, etc.)
- Vue 3 admin panel with Tailwind CSS, dark theme, role-based navigation
- Pages: Dashboard, Hosts map, Sessions, Games, Consoles (PlayStation), Shop, Reports, Staff, Players, Settings
- C# WPF Shell client: lock screen, game launcher, session timer, keyboard hooks
- C# Worker Service Agent: telemetry, remote commands
- Node.js Local Hub: playactor (PS5), MQTT/Tasmota (relays), HDMI-CEC
- Docker Compose: PostgreSQL, Redis, Mosquitto
- GitHub Actions CI for all components
- Seed data: 35 PCs, 3 PS5, 2 PS2, tariffs, games, products

Co-Authored-By: Egor <egor-green@mail.ru>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

devin-ai-integration Bot and others added 3 commits May 4, 2026 11:22
…used imports in admin

Co-Authored-By: Egor <egor-green@mail.ru>
…rs.Timer)

Co-Authored-By: Egor <egor-green@mail.ru>
Co-Authored-By: Egor <egor-green@mail.ru>
@Virt92 Virt92 merged commit c22017c into main May 4, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant