From 19bb3b7188fd6119710eda59e81ea97e34a55192 Mon Sep 17 00:00:00 2001 From: Ramon Dias Monteiro Silva <122894193+ramon541@users.noreply.github.com> Date: Tue, 23 Apr 2024 22:17:28 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20finaliza=C3=A7=C3=A3o=20dos=20cards=20d?= =?UTF-8?q?a=20tela=20Produ=C3=A7=C3=A3o=20Bibliogr=C3=A1fica=20por=20Camp?= =?UTF-8?q?us?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Mock - M\303\251dia Docente X Anos.json" | 80 +++--- .../Mock - M\303\251dia prof X Anos A1.json" | 0 src/db/Mock - Percent Docentes X Anos.json | 80 +++--- src/db/Mock - Qtd Docentes X Anos.json | 80 +++--- ...os (A1).json => Mock - Qtd X Anos A1.json} | 0 src/db/Mock - QtdxAnos.json | 80 +++--- src/db/index.js | 33 ++- src/pages/ProducaoBibliografica/Campus.jsx | 233 ++++++++++++++++-- src/styles/styled-components/index.jsx | 1 + 9 files changed, 409 insertions(+), 178 deletions(-) rename "src/db/Mock - M\303\251dia prof X Anos (A1) .json" => "src/db/Mock - M\303\251dia prof X Anos A1.json" (100%) rename src/db/{Mock - Qtd X Anos (A1).json => Mock - Qtd X Anos A1.json} (100%) diff --git "a/src/db/Mock - M\303\251dia Docente X Anos.json" "b/src/db/Mock - M\303\251dia Docente X Anos.json" index f31b29a..fb388cd 100644 --- "a/src/db/Mock - M\303\251dia Docente X Anos.json" +++ "b/src/db/Mock - M\303\251dia Docente X Anos.json" @@ -5,68 +5,68 @@ "y": "Média" }, "categorias": [ - "Iniciação Científica", - "TCC - Graduação", - "TCC - Especialização", - "Mestrado", - "Doutorado" + "Artigo Completo em Evento", + "Resumo em Evento", + "Artigo em Periódico", + "Capítulo de Livro", + "Livro" ], "dados": [ { "ano": 2017, - "Iniciação Científica": 0.5, - "TCC - Graduação": 0.8, - "TCC - Especialização": 0.3, - "Mestrado": 0.6, - "Doutorado": 0.9 + "Artigo Completo em Evento": 0.5, + "Resumo em Evento": 0.8, + "Artigo em Periódico": 0.3, + "Capítulo de Livro": 0.6, + "Livro": 0.9 }, { "ano": 2018, - "Iniciação Científica": 0.6, - "TCC - Graduação": 0.7, - "TCC - Especialização": 0.4, - "Mestrado": 0.7, - "Doutorado": 0.8 + "Artigo Completo em Evento": 0.6, + "Resumo em Evento": 0.7, + "Artigo em Periódico": 0.4, + "Capítulo de Livro": 0.7, + "Livro": 0.8 }, { "ano": 2019, - "Iniciação Científica": 0.7, - "TCC - Graduação": 0.75, - "TCC - Especialização": 0.45, - "Mestrado": 0.8, - "Doutorado": 0.7 + "Artigo Completo em Evento": 0.7, + "Resumo em Evento": 0.75, + "Artigo em Periódico": 0.45, + "Capítulo de Livro": 0.8, + "Livro": 0.7 }, { "ano": 2020, - "Iniciação Científica": 0.4, - "TCC - Graduação": 0.6, - "TCC - Especialização": 0.2, - "Mestrado": 0.5, - "Doutorado": 0.9 + "Artigo Completo em Evento": 0.4, + "Resumo em Evento": 0.6, + "Artigo em Periódico": 0.2, + "Capítulo de Livro": 0.5, + "Livro": 0.9 }, { "ano": 2021, - "Iniciação Científica": 0.7, - "TCC - Graduação": 0.8, - "TCC - Especialização": 0.4, - "Mestrado": 0.9, - "Doutorado": 0.6 + "Artigo Completo em Evento": 0.7, + "Resumo em Evento": 0.8, + "Artigo em Periódico": 0.4, + "Capítulo de Livro": 0.9, + "Livro": 0.6 }, { "ano": 2022, - "Iniciação Científica": 0.5, - "TCC - Graduação": 0.7, - "TCC - Especialização": 0.3, - "Mestrado": 0.8, - "Doutorado": 0.8 + "Artigo Completo em Evento": 0.5, + "Resumo em Evento": 0.7, + "Artigo em Periódico": 0.3, + "Capítulo de Livro": 0.8, + "Livro": 0.8 }, { "ano": 2023, - "Iniciação Científica": 0.6, - "TCC - Graduação": 0.7, - "TCC - Especialização": 0.2, - "Mestrado": 0.9, - "Doutorado": 0.7 + "Artigo Completo em Evento": 0.6, + "Resumo em Evento": 0.7, + "Artigo em Periódico": 0.2, + "Capítulo de Livro": 0.9, + "Livro": 0.7 } ] } diff --git "a/src/db/Mock - M\303\251dia prof X Anos (A1) .json" "b/src/db/Mock - M\303\251dia prof X Anos A1.json" similarity index 100% rename from "src/db/Mock - M\303\251dia prof X Anos (A1) .json" rename to "src/db/Mock - M\303\251dia prof X Anos A1.json" diff --git a/src/db/Mock - Percent Docentes X Anos.json b/src/db/Mock - Percent Docentes X Anos.json index 287c615..ae10be3 100644 --- a/src/db/Mock - Percent Docentes X Anos.json +++ b/src/db/Mock - Percent Docentes X Anos.json @@ -5,68 +5,68 @@ "y": "Percentual" }, "categorias": [ - "Iniciação Científica", - "TCC - Graduação", - "TCC - Especialização", - "Mestrado", - "Doutorado" + "Artigo Completo em Evento", + "Resumo em Evento", + "Artigo em Periódico", + "Capítulo de Livro", + "Livro" ], "dados": [ { "ano": 2017, - "Iniciação Científica": "16%", - "TCC - Graduação": "24%", - "TCC - Especialização": "8%", - "Mestrado": "12%", - "Doutorado": "20%" + "Artigo Completo em Evento": 16, + "Resumo em Evento": 24, + "Artigo em Periódico": 8, + "Capítulo de Livro": 12, + "Livro": 20 }, { "ano": 2018, - "Iniciação Científica": "18%", - "TCC - Graduação": "22%", - "TCC - Especialização": "10%", - "Mestrado": "14%", - "Doutorado": "18%" + "Artigo Completo em Evento": 18, + "Resumo em Evento": 22, + "Artigo em Periódico": 10, + "Capítulo de Livro": 14, + "Livro": 18 }, { "ano": 2019, - "Iniciação Científica": "20%", - "TCC - Graduação": "24%", - "TCC - Especialização": "12%", - "Mestrado": "16%", - "Doutorado": "16%" + "Artigo Completo em Evento": 20, + "Resumo em Evento": 24, + "Artigo em Periódico": 12, + "Capítulo de Livro": 16, + "Livro": 16 }, { "ano": 2020, - "Iniciação Científica": "14%", - "TCC - Graduação": "18%", - "TCC - Especialização": "6%", - "Mestrado": "10%", - "Doutorado": "16%" + "Artigo Completo em Evento": 14, + "Resumo em Evento": 18, + "Artigo em Periódico": 6, + "Capítulo de Livro": 10, + "Livro": 16 }, { "ano": 2021, - "Iniciação Científica": "18%", - "TCC - Graduação": "22%", - "TCC - Especialização": "8%", - "Mestrado": "12%", - "Doutorado": "20%" + "Artigo Completo em Evento": 18, + "Resumo em Evento": 22, + "Artigo em Periódico": 8, + "Capítulo de Livro": 12, + "Livro": 20 }, { "ano": 2022, - "Iniciação Científica": "12%", - "TCC - Graduação": "16%", - "TCC - Especialização": "6%", - "Mestrado": "14%", - "Doutorado": "16%" + "Artigo Completo em Evento": 12, + "Resumo em Evento": 16, + "Artigo em Periódico": 6, + "Capítulo de Livro": 14, + "Livro": 16 }, { "ano": 2023, - "Iniciação Científica": "16%", - "TCC - Graduação": "20%", - "TCC - Especialização": "8%", - "Mestrado": "12%", - "Doutorado": "18%" + "Artigo Completo em Evento": 16, + "Resumo em Evento": 20, + "Artigo em Periódico": 8, + "Capítulo de Livro": 12, + "Livro": 18 } ] } diff --git a/src/db/Mock - Qtd Docentes X Anos.json b/src/db/Mock - Qtd Docentes X Anos.json index a2803fd..7670f37 100644 --- a/src/db/Mock - Qtd Docentes X Anos.json +++ b/src/db/Mock - Qtd Docentes X Anos.json @@ -5,68 +5,68 @@ "y": "Quantidade" }, "categorias": [ - "Iniciação Científica", - "TCC - Graduação", - "TCC - Especialização", - "Mestrado", - "Doutorado" + "Artigo Completo em Evento", + "Resumo em Evento", + "Artigo em Periódico", + "Capítulo de Livro", + "Livro" ], "dados": [ { "ano": 2017, - "Iniciação Científica": 40, - "TCC - Graduação": 60, - "TCC - Especialização": 20, - "Mestrado": 30, - "Doutorado": 50 + "Artigo Completo em Evento": 40, + "Resumo em Evento": 60, + "Artigo em Periódico": 20, + "Capítulo de Livro": 30, + "Livro": 50 }, { "ano": 2018, - "Iniciação Científica": 45, - "TCC - Graduação": 55, - "TCC - Especialização": 25, - "Mestrado": 35, - "Doutorado": 45 + "Artigo Completo em Evento": 45, + "Resumo em Evento": 55, + "Artigo em Periódico": 25, + "Capítulo de Livro": 35, + "Livro": 45 }, { "ano": 2019, - "Iniciação Científica": 50, - "TCC - Graduação": 60, - "TCC - Especialização": 30, - "Mestrado": 40, - "Doutorado": 40 + "Artigo Completo em Evento": 50, + "Resumo em Evento": 60, + "Artigo em Periódico": 30, + "Capítulo de Livro": 40, + "Livro": 40 }, { "ano": 2020, - "Iniciação Científica": 35, - "TCC - Graduação": 45, - "TCC - Especialização": 15, - "Mestrado": 25, - "Doutorado": 40 + "Artigo Completo em Evento": 35, + "Resumo em Evento": 45, + "Artigo em Periódico": 15, + "Capítulo de Livro": 25, + "Livro": 40 }, { "ano": 2021, - "Iniciação Científica": 45, - "TCC - Graduação": 55, - "TCC - Especialização": 20, - "Mestrado": 30, - "Doutorado": 50 + "Artigo Completo em Evento": 45, + "Resumo em Evento": 55, + "Artigo em Periódico": 20, + "Capítulo de Livro": 30, + "Livro": 50 }, { "ano": 2022, - "Iniciação Científica": 30, - "TCC - Graduação": 40, - "TCC - Especialização": 15, - "Mestrado": 35, - "Doutorado": 40 + "Artigo Completo em Evento": 30, + "Resumo em Evento": 40, + "Artigo em Periódico": 15, + "Capítulo de Livro": 35, + "Livro": 40 }, { "ano": 2023, - "Iniciação Científica": 40, - "TCC - Graduação": 50, - "TCC - Especialização": 20, - "Mestrado": 30, - "Doutorado": 45 + "Artigo Completo em Evento": 40, + "Resumo em Evento": 50, + "Artigo em Periódico": 20, + "Capítulo de Livro": 30, + "Livro": 45 } ] } diff --git a/src/db/Mock - Qtd X Anos (A1).json b/src/db/Mock - Qtd X Anos A1.json similarity index 100% rename from src/db/Mock - Qtd X Anos (A1).json rename to src/db/Mock - Qtd X Anos A1.json diff --git a/src/db/Mock - QtdxAnos.json b/src/db/Mock - QtdxAnos.json index d24bc82..428f8b9 100644 --- a/src/db/Mock - QtdxAnos.json +++ b/src/db/Mock - QtdxAnos.json @@ -5,68 +5,68 @@ "y": "Quantidade" }, "categorias": [ - "Iniciação Científica", - "TCC - Graduação", - "TCC - Especialização", - "Mestrado", - "Doutorado" + "Artigo Completo em Evento", + "Resumo em Evento", + "Artigo em Periódico", + "Capítulo de Livro", + "Livro" ], "dados": [ { "ano": 2017, - "Iniciação Científica": 120, - "TCC - Graduação": 180, - "TCC - Especialização": 60, - "Mestrado": 90, - "Doutorado": 150 + "Artigo Completo em Evento": 120, + "Resumo em Evento": 180, + "Artigo em Periódico": 60, + "Capítulo de Livro": 90, + "Livro": 150 }, { "ano": 2018, - "Iniciação Científica": 135, - "TCC - Graduação": 165, - "TCC - Especialização": 80, - "Mestrado": 105, - "Doutorado": 120 + "Artigo Completo em Evento": 135, + "Resumo em Evento": 165, + "Artigo em Periódico": 80, + "Capítulo de Livro": 105, + "Livro": 120 }, { "ano": 2019, - "Iniciação Científica": 150, - "TCC - Graduação": 150, - "TCC - Especialização": 90, - "Mestrado": 120, - "Doutorado": 90 + "Artigo Completo em Evento": 150, + "Resumo em Evento": 150, + "Artigo em Periódico": 90, + "Capítulo de Livro": 120, + "Livro": 90 }, { "ano": 2020, - "Iniciação Científica": 100, - "TCC - Graduação": 120, - "TCC - Especialização": 40, - "Mestrado": 80, - "Doutorado": 160 + "Artigo Completo em Evento": 100, + "Resumo em Evento": 120, + "Artigo em Periódico": 40, + "Capítulo de Livro": 80, + "Livro": 160 }, { "ano": 2021, - "Iniciação Científica": 140, - "TCC - Graduação": 130, - "TCC - Especialização": 70, - "Mestrado": 110, - "Doutorado": 100 + "Artigo Completo em Evento": 140, + "Resumo em Evento": 130, + "Artigo em Periódico": 70, + "Capítulo de Livro": 110, + "Livro": 100 }, { "ano": 2022, - "Iniciação Científica": 80, - "TCC - Graduação": 110, - "TCC - Especialização": 50, - "Mestrado": 120, - "Doutorado": 140 + "Artigo Completo em Evento": 80, + "Resumo em Evento": 110, + "Artigo em Periódico": 50, + "Capítulo de Livro": 120, + "Livro": 140 }, { "ano": 2023, - "Iniciação Científica": 90, - "TCC - Graduação": 100, - "TCC - Especialização": 30, - "Mestrado": 130, - "Doutorado": 150 + "Artigo Completo em Evento": 90, + "Resumo em Evento": 100, + "Artigo em Periódico": 30, + "Capítulo de Livro": 130, + "Livro": 150 } ] } diff --git a/src/db/index.js b/src/db/index.js index 98d7609..f94d99d 100644 --- a/src/db/index.js +++ b/src/db/index.js @@ -1,12 +1,41 @@ import CityAndData from "./City and Data.json"; import MDocexAnos from "./Mock - Média Docente X Anos.json"; -import MProfxAnosA1 from "./Mock - Média prof X Anos (A1) .json"; import PDocexAnos from "./Mock - Percent Docentes X Anos.json"; import QtdDocexAnos from "./Mock - Qtd Docentes X Anos.json"; -import QtdxAnosA1 from "./Mock - Qtd X Anos (A1).json"; import QtdxAnos from "./Mock - QtdxAnos.json"; +import QtdxAnosA1 from "./Mock - Qtd X Anos A1.json"; +import MProfxAnosA1 from "./Mock - Média prof X Anos A1.json"; export function getCitiesAndData() { const CityData = [...CityAndData]; return { CityData }; } +export function getQtdxAnos() { + const QuantidadexAnos = QtdxAnos; + return { QuantidadexAnos }; +} + +export function getMediaDocxAnos() { + const MediaDocentesxAnos = MDocexAnos; + return { MediaDocentesxAnos }; +} + +export function getQtdDocentesxAnos() { + const QtdDocentesxAnos = QtdDocexAnos; + return { QtdDocentesxAnos }; +} + +export function getPercentDocentesxAnos() { + const PDocentesxAnos = PDocexAnos; + return { PDocentesxAnos }; +} + +export function getQtdxAnosA1() { + const QuantidadexAnosA1 = QtdxAnosA1; + return { QuantidadexAnosA1 }; +} + +export function getMediaProfxAnosA1() { + const MProfessorxAnosA1 = MProfxAnosA1; + return { MProfessorxAnosA1 }; +} diff --git a/src/pages/ProducaoBibliografica/Campus.jsx b/src/pages/ProducaoBibliografica/Campus.jsx index 6837a78..378c343 100644 --- a/src/pages/ProducaoBibliografica/Campus.jsx +++ b/src/pages/ProducaoBibliografica/Campus.jsx @@ -8,20 +8,32 @@ import { import Card from "../../components/Card"; import { FormControl, InputLabel, MenuItem, Select } from "@mui/material"; import { ExpandMore } from "@mui/icons-material"; -import { getCitiesAndData } from "../../db"; +import { + getCitiesAndData, + getQtdxAnos, + getMediaDocxAnos, + getQtdDocentesxAnos, + getPercentDocentesxAnos, + getQtdxAnosA1, + getMediaProfxAnosA1, +} from "../../db"; import Modal from "../../components/Modal"; +import { Chart } from "primereact/chart"; export default function Campus() { const { CityData } = getCitiesAndData(); + const { QuantidadexAnos } = getQtdxAnos(); + const { MediaDocentesxAnos } = getMediaDocxAnos(); + const { QtdDocentesxAnos } = getQtdDocentesxAnos(); + const { PDocentesxAnos } = getPercentDocentesxAnos(); + const { QuantidadexAnosA1 } = getQtdxAnosA1(); + const { MProfessorxAnosA1 } = getMediaProfxAnosA1(); const [campus, setCampus] = useState(CityData[0].cidade.nome); const [data, setData] = useState(CityData[0]); const [modals, setModals] = useState({ openModal1: false, openModal2: false, openModal3: false, - openModal4: false, - openModal5: false, - openModal6: false, }); //======================================================= @@ -40,6 +52,116 @@ export default function Campus() { }); } + //======================================================= + const stackedOptionsUpdated = { + tooltips: { + mode: "index", + intersect: false, + }, + responsive: true, + maintainAspectRatio: false, + scales: { + x: { + stacked: true, + }, + y: { + stacked: true, + }, + }, + }; + + //======================================================= + function renderChart(data) { + const newData = { + labels: data.dados.map((dado) => { + return dado.ano; + }), + datasets: data.categorias.map((categ) => { + return { + type: "bar", + label: categ, + barWidth: "1rem", + data: data.dados.map((dado) => { + return dado[categ]; + }), + }; + }), + }; + return ( + + ); + } + + //======================================================= + const text1 = ( +
+

+ Objetivo: Este indicador visa diagnosticar a producao + cientifica do docente. Os tipos de producao a serem consideradas sao: + artigo completo em evento; Resumo em evento; artigo em periodico; + capitulo de livro e livro. +

+

+ Fonte dos dados: Docentes: Portal da Transparência do + Governo Federal com atualizacao anual. Producao: Plataforma Lattes +

+ + Dados extraídos da Plataforma Lattes em 28/12/2023 + + + Os estratos do Qualis Periódicos são do Quadriênio 2017-2020 + +
+ ); + + //======================================================= + const text2 = ( +
+

+ Objetivo: Este indicador visa diagnosticar a quantidade + de docentes que possuem alguma publicacao em periodicos, eventos, etc. +

+

+ Fonte dos dados: + Docentes: Portal da Transparência do Governo Federal com atualizacao + anual. Producao: Plataforma Lattes e Periodicos Qualis CAPES: +

+ + Dados extraídos da Plataforma Lattes em 28/12/2023 + + + Os estratos do Qualis Periódicos são do Quadriênio 2017-2020 + +
+ ); + + //======================================================= + const text3 = ( +
+

+ Objetivo: Este indicador visa diagnosticar a producao + cientifica do docente apenas em periodicos. As quantidades sao separadas + pelos estratos dos periodicos. +

+

+ Fonte dos dados: + Docentes: Portal da Transparência do Governo Federal com atualizacao + anual. Producao: Plataforma Lattes e Periodicos Qualis CAPES: +

+ + Dados extraídos da Plataforma Lattes em 28/12/2023 + + + Os estratos do Qualis Periódicos são do Quadriênio 2017-2020 + +
+ ); + //======================================================= function renderModals() { return ( @@ -47,17 +169,25 @@ export default function Campus() { toggleModal("openModal1")} - name="Sobre Atualização dos Dados" + name="Sobre Produção Bibliográfica" > -

Oi 1

+

{text1}

toggleModal("openModal2")} - name="Sobre Atualização dos Dados" + name="Sobre Docentes com Produção Bibliográfica" > -

Oi 2

+

{text2}

+
+ + toggleModal("openModal3")} + name="Sobre Produção em Periódicos" + > +

{text3}

); @@ -151,19 +281,40 @@ export default function Campus() { gap: "2rem", }} > + {/* --------------- Card 1 --------------- */} toggleModal("openModal1")} > - Oi 1 +
+

+ Quantidade x Anos +

+

+ Clique no tipo de produção para inserir ou + remover a seleção: +

+
+
{renderChart(QuantidadexAnos)}
+ + {/* --------------- Card 2 --------------- */} toggleModal("openModal1")} > - Oi 2 +
+

+ Média por docente x Anos +

+

+ Clique no tipo de produção para inserir ou + remover a seleção: +

+
+ {renderChart(MediaDocentesxAnos)}
+ {/* --------------- Card 3 --------------- */} toggleModal("openModal2")} > - Oi 3 +
+

+ Quantidade de docentes com no mínimo uma (1) produção + bibliográfica. +

+

+ Quantidade de Docentes x Anos +

+

+ Clique no tipo de produção para inserir ou + remover a seleção: +

+
+ {renderChart(QtdDocentesxAnos)}
+ + {/* --------------- Card 4 --------------- */} toggleModal("openModal2")} > - Oi 4 +
+

+ Percentual de docentes em relação ao campus com no mínimo uma + (1) produção bibliográfica. +

+

+ Percentual de Docentes x Anos +

+

+ Clique no tipo de produção para inserir ou + remover a seleção: +

+
+ {renderChart(PDocentesxAnos)}
+ {/* --------------- Card 5 --------------- */} toggleModal("openModal2")} + openInfo={() => toggleModal("openModal3")} > - Oi 5 +
+

+ Quantidade x Anos +

+

+ Clique no Estrato para inserir ou remover a + seleção: +

+
+ {renderChart(QuantidadexAnosA1)}
+ + {/* --------------- Card 6 --------------- */} toggleModal("openModal2")} + openInfo={() => toggleModal("openModal3")} > - Oi 6 +
+

+ Média por professor x Anos +

+

+ Clique no Estrato para inserir ou remover a + seleção: +

+
+ {renderChart(MProfessorxAnosA1)}
diff --git a/src/styles/styled-components/index.jsx b/src/styles/styled-components/index.jsx index ab5e6e7..835401d 100644 --- a/src/styles/styled-components/index.jsx +++ b/src/styles/styled-components/index.jsx @@ -115,6 +115,7 @@ export const CardContainer = styled.div` export const CentralContainer = styled.div` width: 100%; + flex-direction: column; display: flex; justify-content: center; justify-content: ${(props) =>