Все проекты

Веб-проект

XOgame

Крестики-нолики онлайн: игра с ботом, с другом по ссылке или со случайным соперником. Свой фронтенд и свой бэкенд с realtime-синхронизацией ходов.

  • React
  • TypeScript
  • Vite
  • Vapor (Swift)
  • PostgreSQL
  • WebSocket

01 / Контекст

О проекте

XOgame — крестики-нолики в браузере без регистрации: игрок получает анонимный токен и сразу играет. Три режима — против бота (3 уровня сложности), с другом по инвайт-ссылке или коду, и случайный соперник через матчмейкинг с живой очередью. Поле можно выбрать от классического 3×3 до 6×6 с увеличенной длиной выигрышной линии, есть светлая/тёмная тема и обычная и «волшебная» тема значков.

Фронтенд — React 19 + TypeScript на Vite, роутинг через react-router, игровая логика вынесена в чистые функции и переиспользуется между локальным ботом и генерацией победных комбинаций для любого размера поля. Бэкенд — свой сервис на Vapor (Swift 6) поверх PostgreSQL: вся игровая логика (проверка победителя, генерация инвайт-кодов, матчмейкинг через FOR UPDATE SKIP LOCKED, реванши) живёт в SQL-функциях, а Vapor — тонкий HTTP/WebSocket-слой над ними через SQLKit. Обновления хода передаются обеим сторонам по WebSocket без поллинга. Фронтенд задеплоен на GitHub Pages с собственным доменом и пререндером ключевых маршрутов под SEO, бэкенд — в Docker за Nginx с HTTPS от Let's Encrypt на отдельном сервере.

Роль
Full-stack: фронтенд + бэкенд
Платформа
Web
Основа
React · Vapor (Swift) · PostgreSQL