Feito com um conjunto de serviços estruturados em uma arquitetura de microsserviços e orientado a eventos
Os serviços estão organizados em arquitetura de camadas hexagonal, clique para ver o modelo.
A implementação do serviço de autenticação é feita em Java 17 usando Spring Boot.
- A persistência de dados deste serviço é feita em um banco relacional MySQL. Modelo de Dados
A implementação do serviço de sessões é feita em JavaScript usando NodeJS.
- A persistência de dados deste serviço é feita em um banco não relacional MongoDB. Modelo de Dados.
Os serviços estão integrados a um message broker, implementado com RabbitMQ.
No Front-end é usado as seguintes tecnologias:
- HTML5
- CSS3 com Sass
- Metodologia BEM
- ReactJS
Para se cadastrar o usuário deverá informar o seu email.
Caso o email seja verificado o usuário poderá informar o seu nome, o seu apelido, o seu avatar, sua senha e opcionalmente seu número de celular.
Para se logar o usuário deverá informar o seu apelido ou email e sua senha.
Caso a autenticação de duas fatores esteja ativada o usuário receberá um código pelo celular ou email para seguir no sistema.
Todo usuário cadastrado pode ter amigos e enviar mensagens ou convites de jogos.
Para adicionar um amigo deverá informar o seu apelido.
O usuário pode deixar personagems criados para poder entrar em jogos novos.
Cada personagem tem seu avatar próprio e ficha com história e atributos
O usuário pode entrar em um jogo já em andamento ou novo.
Para entrar no jogo o usuário deverá ter um personagem criado
O usuário pode criar um jogo como mestre.
Para criar será necessário escolher o livro de regras e as configurações específicas.
O usuário pode entrar em sessões de jogos do qual foi convidado independendente se a sessão está fechada ou não.
Se a sessão estiver fechada o usuário será limitado na sessão podendo apenas editar seu personagem.