Skip to content
 
 

Repository files navigation


Kotlin Spring Boot WebSocket Build Status

Um servidor backend robusto e em tempo real para gerenciamento de partidas de xadrez multiplayer.


Este projeto é a API e servidor de WebSocket responsáveis pela lógica de jogo e comunicação em tempo real do Chess Multiplayer. Construído com Kotlin e Spring Boot, ele gerencia o estado das partidas, controle de tempo (relógio), histórico de movimentos e validação do lado do servidor.

O objetivo é fornecer uma arquitetura de comunicação bidirecional rápida e confiável, garantindo que os jogadores recebam atualizações do tabuleiro (FEN) e eventos da partida de forma instantânea.


Diferenciais Arquiteturais

A arquitetura foi pensada para escalar a comunicação em tempo real e isolar a complexidade das regras do jogo:

Componente Responsabilidade Aplicação no Projeto
WebSocket Comunicação full-duplex Configuração centralizada para envio e recebimento de movimentos de xadrez e eventos em tempo real (PartidaWebSocketController).
Serviço de Relógio Controle de Tempo Assíncrono Um RelogioService e PartidaTimeoutScheduler gerenciam os modos de tempo e disparam eventos quando o tempo de um jogador esgota.
DTOs (Data Transfer Objects) Desacoplamento de dados Isolamento completo entre a camada de persistência (entidades) e as mensagens trafegadas no WebSocket.
Gestão de Estado Consistência da Partida A classe Partida mantém o estado atualizado (FEN, status, turno) evitando concorrência indesejada.
Inteligência Artificial Análise de Desempenho O GeminiService (Groq/LLaMA 3) atua sob demanda gerando JSON estruturado para analisar a partida e dar dicas sem ferir a LGPD.

🛠 Tecnologias Utilizadas


Pré-requisitos

  • Java JDK 17+
  • Gradle (ou utilize o gradlew embutido)

Configuração

  1. Clone o repositório.
  2. Importe o projeto na sua IDE (IntelliJ IDEA recomendado).
  3. Execute o comando para iniciar a aplicação:
./gradlew bootRun
  1. O servidor WebSocket estará disponível na porta configurada (padrão: 8080).

Usuário de Teste (Base)

Ao iniciar a aplicação, um usuário administrador é criado automaticamente (se ainda não existir) para facilitar os testes da API e login no frontend:

  • Email: admin@email.com
  • Senha: 123456

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages