É muito comum na área administrativa dos sistemas Web a visualização de gráficos por muitos conhecidos como dashboard, Dashboards são painéis visuais que mostram um conjunto de informações, com métricas eindicadores importantes para o alcanc...
É muito comum na área administrativa dos sistemas Web a visualização de gráficos por muitos conhecidos como dashboard, Dashboards são painéis visuais que mostram um conjunto de informações, com métricas eindicadores importantes para o alcance de resultados traçados previamente. O objetivo de um dashboard é o monitoramento de resultados de um determinado negócio por meio de diferentes fontes de dados, que podem ser analisadas por profissionais do setor de TI ou de gestão empresarial, para saber mais acesse o link | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hoje vamos desenvolver uma Minimal API em .Net 6 que irá retornar os dados para a geração de nossos gráficos e na aplicação React iremos consumir esta API, simples assim. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bora para o código, primeiro vamos criar nossa API, abra o Visual Studio e clique em criar novo projeto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Escolha o projeto ASP.NET Core Web API | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Informe o nome do Projeto e o local e clique em próximo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Na tela a seguir não é necessário fazer alterações, clique em criar | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Projeto criado | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Apague as classes WeatherForecastController e WeatherForecast | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos criar nossos endpoints que irão retornar os valores para a geração dos gráficos | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Primeiro vamos criar a pasta ViewModels que irá conter as classes referente aos nossos gráficos, clique com o botão direito na pasta Controllers, Add e New Folder | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Crie a pasta ViewModels | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
O primeiro gráfico que iremos mostrar será referente a quantidade de usuários cadatrados no sistema por mês, vamos criar uma classe GetChartUserRegisterbyMonthResponse dentro da pasta ViewModels | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Insira as propriedades na classe | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora vamos criar nosso endpoint que irá retornar estes dados, crie uma API Controller | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Selecione a API Controller - Empty e clique em Add | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
De o nome ChartsController | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos criar o Endpoint que irá listar a quantidade de usuários cadastrados por mês informando a quantidade de bikers, empresas e a quantidade total para a geração do gráfico de barras | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Implemente o Código abaixo na classe Charts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos cria o endpoint com a quantidade e porcentagem de empresas por categoria, primeiro vamos criar a nossa ViewModel como abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
E agora vamos implementar nosso endpoint como no código abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Rode sua api e faça as chamadas aos EndPoints para saber se esta tudo funcionando conforme o planejado | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Swagger Aberto | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Quantidade de Usuários | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Porcentagem por Categoria | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Api criada pode deixar a mesma rodando, vamos para a contrução do nosso projeto React que ira consumir estes endpoint e gerar os gráficos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Abra o seu terminal e para a criação do projeto use create-react-app react-google-charts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Projeto sendo criado ao final irá aparecer a tela abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Acesse a pasta do projeto e rode para saber se esta tudo ok | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
cd react-google-charts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
yarn start | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pare a aplicação(ctrl + c), abra o Visual Studio Code(code .) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Solução aberta no vs code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para facilitar a visualização iremos utilizar o bootstrap, para isto vamos incluir o link do mesmo em nosso arquivo index.html que fica na pasta public | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Inclua a linha abaixo como na imagem | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para a criação dos gráficos precisamos instala o pacote react-google-charts, como vamos fazer requisições a um serviço externo, no caso a nossa API, instale a biblioteca react-loading vá ao terminal do visual studio code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
- yarn add react-google-charts | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
- yarn add react-loading | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
-yarn add react-loading | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bora implementar nosso código | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
No arquivo App.js implemente o código abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Em nossa tela web deve ficar como a imagem abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
O Primeiro gráfico que iremos criar será um gráfico do tipo Bar, ele irá mostrar a quantidade de usuários cadastrados no mês, a quantidade de novos bikers e empresa cadastrados. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Crie uma pasta components dentro da pasta src e crie o seu componente BarChartChartUserRegisterbyMonth.jsx | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Implemente o código abaixo para a geração do gráfico | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Altere o seu arquivo App.js para o código abaixo, agora será mostrado o gráfico porém os dados são estáticos, iremos consumir a nossa API para mostrar os dados | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora sua página web deve estar com algo parecido com a imagem abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos consumir nossa API | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Altere o seu Componente para o código abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Agora abra o seu Bowser, F12 para aparecer as ferramentas do desenvolvedor e va em console, visualize o retorno da API | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para apresentarmos em nosso gráfico primeiro precisamos ajustar os dados para o formato que o react-google-charts entenda, nosso componente consome a API que retorna os dados e tratamos os mesmos para geração do nosso gráfico | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos criar nosso segundo gráfico do tipo Linha. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bora para o código. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Crie um outro arquivo na pasta components com o nome LineChartChartUserRegisterbyMonth.jsx | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
E implemente o código abaixo, note que alteramos somente o tipo de gráfico, agora ao invés de ser Bar é Line, nenhuma outra alteração foi necessária | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Seu página web deve estar como a image | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos criar agora nosso terceiro gráfico que será um PieChart que irá chamar nosso outro endpoint que irá trazer as categorias e a quantidade e porcentagem de cada no sistema para apresentarmos no gráfico | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para isto crie um arquivo na pasta Components com o nome PieChartCountPercentageCatgories.jsx | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Implemente o código abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Chame o componente no arquivo App.js como abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sua página web deve estar como a imagem abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
E por último e não menos importante vamos criar um gráfico de quantidade por categoria do tipo Coluna. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para isto crie um arquivo na pasta Components com o nome ColumnChartCountPercentageCatgories.jsx | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Implemente o código abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Faça a chamada do seu componente no arquivo App.js | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sua página web deve estar como a imagem abaixo | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Espero que tenha gostado | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Para receber mais conteúdo inscreva-se no canal e siga nas redes sociais | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vamos que vamos |