Futebol Net Core/Spa/Api
Budget: $750 – $1,500 USD
Tenho um projeto para um App de futebol e precisa-se de um freelance sênior em .NET Core e em alguma linguagem de front-end para SPA (Angular, React, etc) para a continuação do desenvolvimento do sistema, contemplando a Área Administrativa Web e as APIs necessárias para a comunicação com o futuro App Mobile.
O sistema precisa ser codificado com muita qualidade pois quero um sistema com excelente performance, fácil manutenção e escalabilidade.
Sobre o Projeto:
Se trata de um jogo inovador de palpites onde os jogadores palpitam em jogos reais e acumulam pontos. Os módulos do jogo são:
- Palpites: Módulo principal do jogo, onde os jogadores palpitarão nas partidas de futebol.
- Liga: Os pontos acumulados vão para as ligas e de acordo com a posição nos rankings, os jogadores poderão ser premiados.
Além disso, os jogadores terão a opção de criar ligas e evoluir de nível, para assim aumentar os benefícios.
- Loja: O jogador poderá adquirir o plano pago e comprar pacotes de moedas.
Sobre o Administrativo:
O Administrativo se trata do sistema web que será utilizado para gerenciar o jogo como um todo, desde ter informações dos jogadores, criar campeonatos, pacotes de moedas, etc.
Sobre o Front-end:
No Front-end, já tem as páginas 100% prontas em html, css e bootstrap, precisando apenas implementá-los no angular, react, etc, para desacoplar a camada de front-end do projeto do back-end (pois criei algumas implementações iniciais em razor).
No back-end, já foi criado a solution e foi aplicado alguns design patterns:
- A arquitetura foi implementada o padrão DDD, com as seguintes camadas:
- Application: Contém as Controllers e Views (a ideia seria tirar as views dessa camada e colocar em projeto separado em SPA)
- Domain: Contém as Models, DTOs, Enums, Profiles, Resources e Validators
- CrossCutting: Contém configurações usadas em todo o sistema
- Data: Contém os Repositórios, Mappings, Migrations e o Context
- Service: Contém as regras de negócio
- Foi usado o Repository Pattern para centralizar o CRUD
- Uso de arquivos Resources para centralizar as mensagens de erros, possibilitando a reutilização das mesmas
- Controller respeitando o Nível 2 de maturidade das APIs
- Já tem a configuração do Swagger pronta, na versão mais atual
- Foi usado o FluentValidation para validar as models
- Foi usado o Fluent API para o mapeamento das models
- Foi usado o Identity para gerenciar o login pelo administrativo
- Foi usado o jwt para mais segurança no login
- bd usado por enquanto é o mysql, mas aceito sugestões de mudanças, já que usando migrations fica muito mais fácil essa alteração
- versão do projeto iniciou-se em 3.1 mas foi convertido para o NET 5
Precisará implementar cache para reduzir requisições no DB e melhorar o desempenho no App. Ex: quando um jogador navegar nos campeonatos, usar cache para trazer os resultados da consulta em vez de requisição direto no BD.
Ao finalizar o desenvolvimento do sistema, precisará hospeda-lo, possibilitando o lançamento do produto.
Observações:
Eu criei algumas implementações iniciais para testar o padrão. A ideia seria continuar o desenvolvimento a partir do padrão criado.
As Regras de Negócio estão organizadas no Trello e será disponibilizado para facilitar o desenvolvimento.
Como o código será 100% em inglês (incluindo métodos e variáveis), deixei pronto em cada módulo no Trello, um anexo contendo um glossário traduzindo para inglês cada campo citado nas regras de negócio.
Apesar de eu ter iniciado o desenvolvimento, minha ideia é atuar no projeto como um Domain Expert, te ajudando em tudo o necessário para entender o negócio e avançar no desenvolvimento.
Importante: Se você tem conhecimentos avançados em codificação mobile ou trabalha com alguém que possua esse conhecimento, preciso também de desenvolvedor mobile e deixei em anexo o descritivo da parte mobile do projeto.
O sistema precisa ser codificado com muita qualidade pois quero um sistema com excelente performance, fácil manutenção e escalabilidade.
Sobre o Projeto:
Se trata de um jogo inovador de palpites onde os jogadores palpitam em jogos reais e acumulam pontos. Os módulos do jogo são:
- Palpites: Módulo principal do jogo, onde os jogadores palpitarão nas partidas de futebol.
- Liga: Os pontos acumulados vão para as ligas e de acordo com a posição nos rankings, os jogadores poderão ser premiados.
Além disso, os jogadores terão a opção de criar ligas e evoluir de nível, para assim aumentar os benefícios.
- Loja: O jogador poderá adquirir o plano pago e comprar pacotes de moedas.
Sobre o Administrativo:
O Administrativo se trata do sistema web que será utilizado para gerenciar o jogo como um todo, desde ter informações dos jogadores, criar campeonatos, pacotes de moedas, etc.
Sobre o Front-end:
No Front-end, já tem as páginas 100% prontas em html, css e bootstrap, precisando apenas implementá-los no angular, react, etc, para desacoplar a camada de front-end do projeto do back-end (pois criei algumas implementações iniciais em razor).
No back-end, já foi criado a solution e foi aplicado alguns design patterns:
- A arquitetura foi implementada o padrão DDD, com as seguintes camadas:
- Application: Contém as Controllers e Views (a ideia seria tirar as views dessa camada e colocar em projeto separado em SPA)
- Domain: Contém as Models, DTOs, Enums, Profiles, Resources e Validators
- CrossCutting: Contém configurações usadas em todo o sistema
- Data: Contém os Repositórios, Mappings, Migrations e o Context
- Service: Contém as regras de negócio
- Foi usado o Repository Pattern para centralizar o CRUD
- Uso de arquivos Resources para centralizar as mensagens de erros, possibilitando a reutilização das mesmas
- Controller respeitando o Nível 2 de maturidade das APIs
- Já tem a configuração do Swagger pronta, na versão mais atual
- Foi usado o FluentValidation para validar as models
- Foi usado o Fluent API para o mapeamento das models
- Foi usado o Identity para gerenciar o login pelo administrativo
- Foi usado o jwt para mais segurança no login
- bd usado por enquanto é o mysql, mas aceito sugestões de mudanças, já que usando migrations fica muito mais fácil essa alteração
- versão do projeto iniciou-se em 3.1 mas foi convertido para o NET 5
Precisará implementar cache para reduzir requisições no DB e melhorar o desempenho no App. Ex: quando um jogador navegar nos campeonatos, usar cache para trazer os resultados da consulta em vez de requisição direto no BD.
Ao finalizar o desenvolvimento do sistema, precisará hospeda-lo, possibilitando o lançamento do produto.
Observações:
Eu criei algumas implementações iniciais para testar o padrão. A ideia seria continuar o desenvolvimento a partir do padrão criado.
As Regras de Negócio estão organizadas no Trello e será disponibilizado para facilitar o desenvolvimento.
Como o código será 100% em inglês (incluindo métodos e variáveis), deixei pronto em cada módulo no Trello, um anexo contendo um glossário traduzindo para inglês cada campo citado nas regras de negócio.
Apesar de eu ter iniciado o desenvolvimento, minha ideia é atuar no projeto como um Domain Expert, te ajudando em tudo o necessário para entender o negócio e avançar no desenvolvimento.
Importante: Se você tem conhecimentos avançados em codificação mobile ou trabalha com alguém que possua esse conhecimento, preciso também de desenvolvedor mobile e deixei em anexo o descritivo da parte mobile do projeto.