Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flutterando/matchmaker_lol
https://github.com/flutterando/matchmaker_lol
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/flutterando/matchmaker_lol
- Owner: Flutterando
- License: mit
- Created: 2023-10-12T19:02:45.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-18T00:47:48.000Z (about 1 year ago)
- Last Synced: 2023-10-18T10:53:31.844Z (about 1 year ago)
- Language: Dart
- Size: 109 KB
- Stars: 2
- Watchers: 3
- Forks: 3
- Open Issues: 5
-
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, MatchCada 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.