Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/b0nam/league-live
League-live gera imagens contendo as informações de jogo a partir de um username do League Of Legends. - Segunda prova prática para a disciplina de Desafio Profissional V do 5º semestre do curso de graduação de Engenharia de Software da Unicesumar.
https://github.com/b0nam/league-live
league-of-legends lol nestjs riot-games riot-games-api
Last synced: 11 days ago
JSON representation
League-live gera imagens contendo as informações de jogo a partir de um username do League Of Legends. - Segunda prova prática para a disciplina de Desafio Profissional V do 5º semestre do curso de graduação de Engenharia de Software da Unicesumar.
- Host: GitHub
- URL: https://github.com/b0nam/league-live
- Owner: B0nam
- Created: 2024-06-19T22:26:23.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-28T16:02:00.000Z (7 months ago)
- Last Synced: 2024-06-28T23:47:05.679Z (7 months ago)
- Topics: league-of-legends, lol, nestjs, riot-games, riot-games-api
- Language: TypeScript
- Homepage:
- Size: 377 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
`[Observação] A Chave de utilização da API da Riotgames deve ser atualizada a cada 24h, caso a aplicação não esteja funcionando adequadamente, é muito provavel que a chave utilizada tenha expirado. Neste caso, enviar mensagem para o Whatsapp do Kauan Muriel ou Daniel Bonam`
`[Observação] Você pode utilizar a sua própria chave de desenvolver riot games, solicite em: https://developer.riotgames.com/ e atualiza o parâmetro RIOT_KEY no arquivo .env na pasta raiz do projeto.`
# league-live
Segunda prova prática para a disciplina de Desafio Profissional V do 5º semestre do curso de graduação de Engenharia de Software da Unicesumar.
Desenvolvido por **Kauan Muriel Rossi (2214501-2)**, **Daniel Bonam Rissardi (22013838-2)** e **Bruno Batista Carrião Moreno (24284115-2)**
## Sumário
- Visão geral
- Tecnologias utilizadas
- Funcionalidades
- Testes## Visão Geral
League-live consiste em uma aplicação, que gera imagens contendo as informações de jogo do jogador de League of Legends. Por meio do usuário e tag do jogador é gerado uma imagem com as informações do mesmo, a qual pode ser compartilhada com os amigos.
![sant_loud](https://github.com/B0nam/league-live/assets/85623265/0f814e89-58a2-4eb1-b10b-1e800a4fa8f4)
### A imagem pode ser gerada por meio de http//localhost:3000/league-stats/export/(nome do jogador)/(tag)
As informações exibidas são:
- Imagem do banner (Gerada por meio do campeão mais jogado)
- 3 Campeões mais jogados e seus pontos
- Vitórioas
- Derrotas
- KD
- Rank e Tier`[Observação] Caso o jogador não tenha completado a MD10 da season, não é posivel mostrar as informações de Vitória, Derrota, KD e Rank.`
## Tecnologias utilizadas
- [Typescript](https://www.typescriptlang.org/)
- [NestJs](https://nestjs.com/)
- [TypeORM](https://typeorm.io/)
- [Artillery](https://www.artillery.io/)
- [JWT](https://jwt.io/)
- [Postgresql](https://www.postgresql.org/)
- [Docker](https://www.docker.com/)
- [Docker-compose](https://docs.docker.com/compose/)
- [Jest](https://jestjs.io/pt-BR/)
- [Swagger](https://swagger.io/)## Funcionalidades
Abaixo as funcionalidades desenvolvidas.
- Autenticação
- O sistema conta com uma autenticação, onde para realizar ações relevantes na aplicação é necessário que o usuário esteja tenha criado uma conta válida e esteja logado ao sistema.
- league-data
- League-data é o wrapper da api da riot games o qual organiza as informções utilizadas pelo sistema.
- league-stats
- League-stats é responsável por gerar a pagina html que contem ás informações do usuário e posteriormente gera a imagem.
- Leaderboard
- Mostra os 200 melhores jogadores de acordo com os pontos.## Testes de carga
Foram realizados os testes de carga da aplicação utilizando Artillery. O relatório pode ser acessado [aqui.](https://github.com/B0nam/league-live/blob/main/reports/artillery-report.txt)## Swagger
As rotas foram descritas por meio do Swagger e podem ser acessadas por meio de https://localhost:3000/docs. Além disso, as requisições foram exportadas em um arquivo .json e pode ser acessado [aqui.](https://github.com/B0nam/league-live/blob/main/reports/requests.json)## Escopo do projeto - Solicitação do professor.
## Avaliação - RequisitosUtilizando a API que escolheu, desenvolva uma aplicação utilizando Nest JS com as seguintes funcionalidades:
- Crie uma entidade e uma rota para "baixar" pelo menos 50 items para sua base dados da API escolhida pelo time
`[FEITO] A partir da requisição GET para a rota /league-stats/leaderboard são buscados os dados da entidade player, que são armazenados no banco de dados (200 players são armazenados).`
- Crie todas as operações de CRUD para a entidade anterior, para que os dados sejam cadastrados, atualizados, listados e removidos via métodos HTTP.
`[FEITO] Todas as operações de CRUD para a entidade player foram criadas. Elas podem ser acessada por meio da rota /player.`
- Crie uma entidade de usuário, e crie um sistema de cadastro e autenticação via JWT (crie todos os métodos de CRUD para o usuário, a senha do usuário deve ser criptografada)
`[FEITO] A entidade user foi criada e o sistema de autenticação foi implementado utilizando JWT e a biblioteca bcrypt para criptografar as senhas.`
- Adicione um Auth Guard para as rotas da entidade principal da sua aplicação, somente usuários autenticados poderão chamar essas rotas
`[FEITO] Foi adicionado o Auth Guard para todas as rotas que necessitam de autenticação.`
- Crie uma entidade para logar o tempo de resposta das rotas de sua API. - - Registre pelo menos o nome da rota chamada, o método utilizado e quanto tempo demorou para a solicitação terminar.
`[FEITO] A entidade RequestLog armazena os principais dados de todas as requests enviadas ao sistema.`
- Adicione Exceções a todos os métodos de sua controller, sendo que pelo menos uma delas deve ser de uma classe personalizada.
`[FEITO] Todos os metodos de todas as controllers possuem um tratamento de exceções.`
- Adicione validações de dados via class-validator
`[FEITO] É realizado a validação de dados via class-validator por meio de DTO's que estabelecem os parâmetros esperados.`
- Crie um arquivo docker compose para sua aplicação, onde pelo menos o banco de dados seja levantado para utilizar a aplicação
`[FEITO] O arquivo docker-compose foi criado e pode ser executado por meio do comando docker compose up.`
- Realize os testes de integração e também faça o teste de carga e salve o relatório
`[FEITO] Os testes foram realizados e salvos em: https://github.com/B0nam/league-live/blob/main/reports/`
- Exporte as requisições da sua aplicação para um arquivo .json e anexe a sua entrega
`[FEITO] As requisições foram exportadas em um arquivo .json e salvas em: https://github.com/B0nam/league-live/blob/main/reports/`