patriciadania / SAP009-data-lovers

Segundo projeto realizado para o Bootcamp da Laboratória. O objetivo consiste em uma aplicação responsiva com informações sobre o jogo League of Legends, com opções de ordenação e filtragem dos campeões.

Home Page:https://sap-009-data-lovers.vercel.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Data Lovers - League Of Legends


Data Lovers - League Of Legends foi o segundo projeto desenvolvido no bootcamp da Laboratória, tem como objetivo ajudar jogadores e novos jogadores a conhecerem melhor os campeões presentes em Summoner's Rift apresentando informações como tipo e nível de ataque, defesa, magia e dificuldade de cada campeão, bem como, disponibiliza um filtro de pesquisa através do nome do campeão.

💻 Para acessar a página web clique aqui

Desenvolvido por

Patricia Adania
Linkedin | Github

Thainara Tabile
Linkedin | Github

Ariane Vieira
Linkedin | Github

Índice

1. Resumo do projeto

Neste projeto, contruimos uma página web para visualizar um conjunto (set) de dados que se adeque às necessidades de seu usuário.

Temos uma página web que permite visualizar dados, filtrá-los, ordená-los e fazer algum cálculo agregado. Por cálculo agregado nos referimos aos diversos cálculos que podem ser feitos com os dados para mostrar a informação mais relevante para os usuários (médias, valores máximos e mínimos, etc).

Tudo isso utilizando HTML semântico, CSS responsivo e JavaScript puro.

2. Etapas iniciais para o desenvolvimento da interface

Pesquisa com usuários

Foram realizadas pesquisas com jogadores de LOL, utilizando as mesmas perguntas expostas no readme da Laboratória. Que foram:

Quem são os usuários principais do produto? Usuários que pretendem começar a jogar e não possuem informações sobre as regas e personagens, também usuários jogadores do LOL e que desejam informações sobre os campeões, para que possam escolher melhor com qual deles jogar. ‌

Quais são os objetivos dos usuários com relação ao produto? Apresentar informações sobre as características dos campeões, que podem ser filtrados por tipo (lutador, assassino, mago, atirador e suporte), fornecer a classificação de acordo com o nível de ataque/defesa/magia/dificuldade, por grupo ou todos (de acordo com o interesse do usuário). ‌

Quais são os dados mais relevantes que querem ver na interface e por quê? Filtragem por tipo de campeão e classificação do poder. Para que o usuário conheça os personagens e possa escolher de acordo com sua preferência.

Quando utilizam ou utilizariam o produto? Antes de iniciar sua partida no jogo.

Protótipo

Desenvolvemos o protótipo de baixa fidelidade para telas de computadores e tablets utilizando as ferramentas do Canva.

image

Para o protótipo para telas de celulares, utilizamos as ferramentas do Figma.

image

A estilização da página buscou semalhança com a interface do jogo, com objetivo de proporcionar ao usuário a sensação de já estar imerso ao mundo LOL. Sendo assim, a paleta de cores utilizada foi extraída do ícone do jogo.

image

3. Considerações técnicas

A lógica do projeto foi implementada somente em JavaScript (ES6), HTML e CSS. Estas funções são [puras], assim, através de funções puras e independentes do DOM que foram usadas a partir do arquivo src/main.js, ao carregar a página e a cada vez que o usuário interage com a interface (cliques, seleções, filtros, ordenação, etc).

Implementação da interface de usuário (HTML/CSS/JS)

A implementação contém:

  1. Exibição dos dados em interface em cards;
  2. Permite ao usuário interagir com a interface para obter as informações que necessita, através de filtros de buscas por nome ou tipo do campeão, bem como por classificação dos poderes.
  3. É responsiva, ou seja, deve ser visualizada sem problemas a partir de diversos tamanhos de tela: celulares, tablets, notebooks, etc.

src/main.js

Utilizamos src/main.js para inserir todos os códigos relacionados a exibição dos dados na tela, utilizando a estrutura condicional switch para tradução de palavras da API, templade string e o método map() para obter dados da API. Com isto nos referimos basicamente à interação com o DOM. Operações como criação de nós, registro de manejadores de eventos

Para carregar a fonte de dados da API:

import lolData from "./data/lol/lol.js"

Assim, criamos a variável lolData disponível em src/main.js.

Para carregar os filtros:

import { buscaTag, buscaNome, ordenarCampeoes, calculoAgragado } from "./data.js"

src/data.js

O coração deste projeto é a manipulação de dados através de arrays e objetos.

Utilizamos este arquivo para armazenar toda a funcionalidade que corresponda a obter, processar e manipular dados (suas funções):

  • function buscaTag: esta função recebe os dados e nos retorna os campeões filtrados por tipo (assassinos, lutadores, magos, atiradores, suportes, tanques ou todos eles), no processamento dos dados utilizamos o método filter.

  • function buscaNome: esta função retorna ao usuário o nome do campeão digitado, com auxilio do método filter.

  • function ordenarCampeoes: responsável por ordenar os campeões de acordo com nível de ataque, defesa, magia e dificuldade, que podem ser ordenados de forma crescente ou descrecente Para esta função utilizamos o método sort.

  • function calculoAgragado: realiza o cálculo percentual do tipo de campeão selecionado pelo usuário (assassinos, lutadores, magos, atiradores, suportes)

src/data

A API do projeto foi extraída desta pasta, onde estão os dados de diferentes fontes. Utilizamos o arquivo com a extensão .js.

Testes unitários

Os teste unitários das funções implementadas no arquivo /test/data.spec.js, cobriram 100% dos statements, functions e lines e branches.

Ferramentas

Organização do trabalho

Para a organização do projeto utilizamos o Trello para a construção de um roadmap, fracionando cada etapa, definindo metas e prioridades.

No planejamento de sprint foram definidas as metas a serem atingidas para a próxima sprint, enquanto na daily eram definidas as prioridades das tarefas para o dia.

4. Responsividade

A interface foi produzida de modo responsivo, durante todo o processo de criação foi constantemente testada para diversos tamanhos de telas através do console do Google Chrome, nestes testes, a página pode ser visualizada sem problemas.

image image image

image image

Teste de Usabilidade

O teste de usabilidade foi aplicado com diferentes usuários, e com base nos Feedbacks, notou-se que:

  • a página web opera perfeitamente em notebooks/desktop;
  • a utlização por android também não apresentou nenhuma intercorrência, os testes foram feitos em diferentes modelos de aparelhos celulares.
WhatsApp.Video.2023-02-25.at.20.10.43.mp4

Captura de Tela 2023-02-27 às 10 56 26 Captura de Tela 2023-02-27 às 10 57 18 Captura de Tela 2023-02-27 às 10 56 56

  • a utilização por iOS funciona em partes, não apresenta erros na utilização dos filtros, classificação, busca por nome, calculo agregado e exibição da parte da frente dos cards.

image

A falha é localizada no conteúdo posterior dos cards, onde é exibida apenas uma parte das informações, que logo desaparece.

WhatsApp.Video.2023-02-27.at.11.10.21.mp4

image

Na tentativa de solucionar a falha, incluímos o motor de renderização webkit no css. Nos testes realizados console e no emulatos em telas de iOS a aplicação funciona perfeitamente, entretanto, nos testes realizados pelos usuários, persiste a falha no conteúdo posterior dos cards.

About

Segundo projeto realizado para o Bootcamp da Laboratória. O objetivo consiste em uma aplicação responsiva com informações sobre o jogo League of Legends, com opções de ordenação e filtragem dos campeões.

https://sap-009-data-lovers.vercel.app/


Languages

Language:JavaScript 95.5%Language:CSS 2.8%Language:HTML 1.7%