https://github.com/flutterando/matchmaker_lol
https://github.com/flutterando/matchmaker_lol
Last synced: 10 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/flutterando/matchmaker_lol
- Owner: Flutterando
- License: mit
- Created: 2023-10-12T19:02:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-20T14:31:06.000Z (over 2 years ago)
- Last Synced: 2025-01-20T23:56:42.572Z (about 1 year ago)
- Language: Dart
- Size: 132 KB
- Stars: 1
- Watchers: 4
- Forks: 3
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# matchmaker_lol
Programa que organiza as partidas de lol visando balancear as equipes se baseando no nível e na função desejada.
# Mockup
https://www.figma.com/file/djieQL73SV06XRvDau6Urw/Matchmaker-LOL-(Community)?type=design&node-id=54495-526&mode=design&t=ixMakmK8dQXEvBPY-0
## Arquitetura
# Dominio
dominio ou modulos ou entidades -> Player; Room, Team, Match
Cada player deve ter seu nome e lane selecionada, após selecionado, deve marcar como pronto;
Deve guardar o id do player e o nome e role nos cookies da pagina, para quando reiniciado a buscar os dados, caso não tenha, crie um novo.
Player{
id;
name;
role;
isReady;
}
Quando criada deve gerar um ID para que outros players possam acessar a Room.
Quando todos os jogadores estão como isReady é realizado a separação dos teams {blue e red} -> Match.
Para o host deve aparecer o botão de kikar os players da sala.
Room{
id;
Set players;
hostID;
}
Team{
id;
List players;
}
O lado dos times sera definido de forma aleatoria, assim como os membros de cada time.
O lado seria definido através da lista dos times onde a primeira posição sera blue e a segunda será red.
Match{
id;
Room id;
List teams;
}
----------------------------------------------------------------------------------------------------------------
# Definições arquiteturais
Consumo de Apis: Utilizar padrão repository
Organização de camadas: Utilizando padrão de inversão de controle.
Gerenciamento de estado: ValueNotifier com state pattern(https://refactoring.guru/pt-br/design-patterns/state)
Para localStorege: Usar Services.
Para conversão de dados: Utilizar adapter.
Para copia de dados imutaveis: CopyWith/prototype
Para representação de regra de negocio: Entidade
Para execução de regra de negocio: Usecases
----------------------------------------------------------------------------------------------------------------
# Packages
UUID =https://pub.dev/packages/uuid Para criação de ID's unicos.
result_dart = https://pub.dev/packages/result_dart Para organização de tuplas e programação funcional.
flutter_modular = https://pub.dev/packages/flutter_modular Para rotas e inversão de controle.
firebase_core & firebase_storage = https://pub.dev/packages/firebase_core & https://pub.dev/packages/firebase_storage Para armazenamento de dados.
shared_preferences= https://pub.dev/packages/shared_preferences Para persistencia de dados local.
mocktail = https://pub.dev/packages/mocktail Para mockagem dos dados de teste.
flutterando_analysis = https://pub.dev/packages/flutterando_analysis Para lints mais rigorosos.