diff --git a/.eslintcache b/.eslintcache index b23a70755594103b11fe273a8169159fca80054b..7ad9e012dcae77f2cc38e5f750dcaa3fdec7b5d4 100644 --- a/.eslintcache +++ b/.eslintcache @@ -1 +1 @@ -[{"/home/pedro/biod-ui-react/src/index.jsx":"1","/home/pedro/biod-ui-react/src/App.jsx":"2","/home/pedro/biod-ui-react/src/routes.jsx":"3","/home/pedro/biod-ui-react/src/pages/homePage.jsx":"4","/home/pedro/biod-ui-react/src/components/footer/footer.jsx":"5","/home/pedro/biod-ui-react/src/components/header/header.jsx":"6","/home/pedro/biod-ui-react/src/pages/aboutPage.jsx":"7","/home/pedro/biod-ui-react/src/pages/docsPage.jsx":"8","/home/pedro/biod-ui-react/src/pages/installPage.jsx":"9","/home/pedro/biod-ui-react/src/pages/tutorialPage.jsx":"10","/home/pedro/biod-ui-react/src/chatbot/chatPage.jsx":"11","/home/pedro/biod-ui-react/src/chatbot/MessageParser.js":"12","/home/pedro/biod-ui-react/src/chatbot/ActionProvider.jsx":"13","/home/pedro/biod-ui-react/src/chatbot/config.js":"14","/home/pedro/biod-ui-react/src/chatbot/LearningOptions.jsx":"15","/home/pedro/biod-ui-react/src/chatbot/LinkList.jsx":"16","/home/pedro/biod-ui-react/src/chatbot/BaseList.jsx":"17"},{"size":225,"mtime":1612875575239,"results":"18","hashOfConfig":"19"},{"size":269,"mtime":1612875575143,"results":"20","hashOfConfig":"19"},{"size":1104,"mtime":1619531270471,"results":"21","hashOfConfig":"19"},{"size":835,"mtime":1619533579786,"results":"22","hashOfConfig":"19"},{"size":1628,"mtime":1619533496552,"results":"23","hashOfConfig":"19"},{"size":1859,"mtime":1619536369291,"results":"24","hashOfConfig":"19"},{"size":8090,"mtime":1619536055044,"results":"25","hashOfConfig":"19"},{"size":5640,"mtime":1619535754299,"results":"26","hashOfConfig":"19"},{"size":4680,"mtime":1619536120939,"results":"27","hashOfConfig":"19"},{"size":6543,"mtime":1619536158367,"results":"28","hashOfConfig":"19"},{"size":755,"mtime":1612880871673,"results":"29","hashOfConfig":"19"},{"size":403,"mtime":1612962707731,"results":"30","hashOfConfig":"19"},{"size":1046,"mtime":1612962697711,"results":"31","hashOfConfig":"19"},{"size":751,"mtime":1612963214062,"results":"32","hashOfConfig":"19"},{"size":1292,"mtime":1612961889899,"results":"33","hashOfConfig":"19"},{"size":919,"mtime":1612961370694,"results":"34","hashOfConfig":"19"},{"size":1301,"mtime":1612963427902,"results":"35","hashOfConfig":"19"},{"filePath":"36","messages":"37","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},"qwbqjt",{"filePath":"39","messages":"40","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"41","usedDeprecatedRules":"38"},{"filePath":"42","messages":"43","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"44","messages":"45","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"46","messages":"47","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"48","messages":"49","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"50","messages":"51","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"52","messages":"53","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"54","messages":"55","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"56","messages":"57","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"58","messages":"59","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"60","messages":"61","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"66","messages":"67","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},{"filePath":"68","messages":"69","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"70","messages":"71","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"38"},"/home/pedro/biod-ui-react/src/index.jsx",[],["72","73"],"/home/pedro/biod-ui-react/src/App.jsx",["74","75"],"import React, { Component } from 'react';\nimport Routes from './routes';\nimport { BrowserRouter as Router } from \"react-router-dom\";\nimport './global.css';\n\nfunction App() {\n return (\n <div className=\"App\">\n <Routes />\n </div>\n );\n}\n\nexport default App;\n\n","/home/pedro/biod-ui-react/src/routes.jsx",[],"/home/pedro/biod-ui-react/src/pages/homePage.jsx",[],"/home/pedro/biod-ui-react/src/components/footer/footer.jsx",["76","77"],"/home/pedro/biod-ui-react/src/components/header/header.jsx",[],"/home/pedro/biod-ui-react/src/pages/aboutPage.jsx",[],"/home/pedro/biod-ui-react/src/pages/docsPage.jsx",[],"/home/pedro/biod-ui-react/src/pages/installPage.jsx",[],"/home/pedro/biod-ui-react/src/pages/tutorialPage.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/chatPage.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/MessageParser.js",[],"/home/pedro/biod-ui-react/src/chatbot/ActionProvider.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/config.js",[],"/home/pedro/biod-ui-react/src/chatbot/LearningOptions.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/LinkList.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/BaseList.jsx",[],{"ruleId":"78","replacedBy":"79"},{"ruleId":"80","replacedBy":"81"},{"ruleId":"82","severity":1,"message":"83","line":1,"column":17,"nodeType":"84","messageId":"85","endLine":1,"endColumn":26},{"ruleId":"82","severity":1,"message":"86","line":3,"column":27,"nodeType":"84","messageId":"85","endLine":3,"endColumn":33},{"ruleId":"82","severity":1,"message":"87","line":32,"column":10,"nodeType":"84","messageId":"85","endLine":32,"endColumn":19},{"ruleId":"88","severity":1,"message":"89","line":54,"column":7,"nodeType":"90","endLine":54,"endColumn":49},"no-native-reassign",["91"],"no-negated-in-lhs",["92"],"no-unused-vars","'Component' is defined but never used.","Identifier","unusedVar","'Router' is defined but never used.","'Copyright' is defined but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","no-global-assign","no-unsafe-negation"] \ No newline at end of file +[{"/home/pedro/biod-ui-react/src/index.jsx":"1","/home/pedro/biod-ui-react/src/App.jsx":"2","/home/pedro/biod-ui-react/src/routes.jsx":"3","/home/pedro/biod-ui-react/src/pages/homePage.jsx":"4","/home/pedro/biod-ui-react/src/components/footer/footer.jsx":"5","/home/pedro/biod-ui-react/src/components/header/header.jsx":"6","/home/pedro/biod-ui-react/src/pages/aboutPage.jsx":"7","/home/pedro/biod-ui-react/src/pages/docsPage.jsx":"8","/home/pedro/biod-ui-react/src/pages/installPage.jsx":"9","/home/pedro/biod-ui-react/src/pages/tutorialPage.jsx":"10","/home/pedro/biod-ui-react/src/chatbot/chatPage.jsx":"11","/home/pedro/biod-ui-react/src/chatbot/MessageParser.js":"12","/home/pedro/biod-ui-react/src/chatbot/ActionProvider.jsx":"13","/home/pedro/biod-ui-react/src/chatbot/config.js":"14","/home/pedro/biod-ui-react/src/chatbot/LearningOptions.jsx":"15","/home/pedro/biod-ui-react/src/chatbot/LinkList.jsx":"16","/home/pedro/biod-ui-react/src/chatbot/BaseList.jsx":"17"},{"size":225,"mtime":1612875575239,"results":"18","hashOfConfig":"19"},{"size":307,"mtime":1619703424469,"results":"20","hashOfConfig":"19"},{"size":1104,"mtime":1619531270471,"results":"21","hashOfConfig":"19"},{"size":9109,"mtime":1620224555732,"results":"22","hashOfConfig":"19"},{"size":1371,"mtime":1619705377703,"results":"23","hashOfConfig":"19"},{"size":1859,"mtime":1619536369291,"results":"24","hashOfConfig":"19"},{"size":8090,"mtime":1619536055044,"results":"25","hashOfConfig":"19"},{"size":8004,"mtime":1620224564892,"results":"26","hashOfConfig":"19"},{"size":4759,"mtime":1620220964847,"results":"27","hashOfConfig":"19"},{"size":6543,"mtime":1619536158367,"results":"28","hashOfConfig":"19"},{"size":755,"mtime":1612880871673,"results":"29","hashOfConfig":"19"},{"size":403,"mtime":1612962707731,"results":"30","hashOfConfig":"19"},{"size":1046,"mtime":1612962697711,"results":"31","hashOfConfig":"19"},{"size":751,"mtime":1612963214062,"results":"32","hashOfConfig":"19"},{"size":1292,"mtime":1612961889899,"results":"33","hashOfConfig":"19"},{"size":919,"mtime":1612961370694,"results":"34","hashOfConfig":"19"},{"size":1301,"mtime":1612963427902,"results":"35","hashOfConfig":"19"},{"filePath":"36","messages":"37","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"qwbqjt",{"filePath":"38","messages":"39","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"40","messages":"41","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"42","messages":"43","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"44","messages":"45","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"46","messages":"47","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"48","messages":"49","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"50","messages":"51","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"52","messages":"53","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"54","messages":"55","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"56","messages":"57","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"58","messages":"59","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"60","messages":"61","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"62","messages":"63","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"64","messages":"65","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"66","messages":"67","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"68","messages":"69","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/home/pedro/biod-ui-react/src/index.jsx",[],"/home/pedro/biod-ui-react/src/App.jsx",["70","71"],"/home/pedro/biod-ui-react/src/routes.jsx",[],"/home/pedro/biod-ui-react/src/pages/homePage.jsx",[],"/home/pedro/biod-ui-react/src/components/footer/footer.jsx",["72","73","74","75"],"/home/pedro/biod-ui-react/src/components/header/header.jsx",[],"/home/pedro/biod-ui-react/src/pages/aboutPage.jsx",[],"/home/pedro/biod-ui-react/src/pages/docsPage.jsx",[],"/home/pedro/biod-ui-react/src/pages/installPage.jsx",[],"/home/pedro/biod-ui-react/src/pages/tutorialPage.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/chatPage.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/MessageParser.js",[],"/home/pedro/biod-ui-react/src/chatbot/ActionProvider.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/config.js",[],"/home/pedro/biod-ui-react/src/chatbot/LearningOptions.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/LinkList.jsx",[],"/home/pedro/biod-ui-react/src/chatbot/BaseList.jsx",[],{"ruleId":"76","severity":1,"message":"77","line":1,"column":17,"nodeType":"78","messageId":"79","endLine":1,"endColumn":26},{"ruleId":"76","severity":1,"message":"80","line":3,"column":27,"nodeType":"78","messageId":"79","endLine":3,"endColumn":33},{"ruleId":"76","severity":1,"message":"81","line":4,"column":8,"nodeType":"78","messageId":"79","endLine":4,"endColumn":18},{"ruleId":"76","severity":1,"message":"82","line":7,"column":8,"nodeType":"78","messageId":"79","endLine":7,"endColumn":17},{"ruleId":"76","severity":1,"message":"83","line":8,"column":8,"nodeType":"78","messageId":"79","endLine":8,"endColumn":12},{"ruleId":"84","severity":1,"message":"85","line":49,"column":7,"nodeType":"86","endLine":49,"endColumn":49},"no-unused-vars","'Component' is defined but never used.","Identifier","unusedVar","'Router' is defined but never used.","'Typography' is defined but never used.","'Container' is defined but never used.","'Link' is defined but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement"] \ No newline at end of file diff --git a/home.txt b/home.txt deleted file mode 100644 index 4ae8cfb6ec3f0d1dbb357a90dcae689afdccdc0d..0000000000000000000000000000000000000000 --- a/home.txt +++ /dev/null @@ -1,66 +0,0 @@ - - - - <Typography variant="body1" gutterBottom align="justify" paragraph> - <ul> - <li> - <Link href="https://biod.c3sl.ufpr.br/api/v1/" onClick={preventDefault}> - https://biod.c3sl.ufpr.br/api/v1/ - </Link> - </li> - </ul> - </Typography> - - <Typography variant="h6" component="h5" gutterBottom> Tags </Typography> - - <Typography variant="body1" gutterBottom align="justify" paragraph> - <ul> - <li>tags</li> - </ul> - - Uma tag representa a classificação dos dados contidos no repositório por conteúdo, facilitando assim o acesso ao banco de dados. Esta rota permite ao usuário listar todas as tags disponíveis no repositório e suas descrições, tendo atualmente 29 tags. Também é permitido especificar o parâmetro format, que retorna o conteúdo no formato desejado pelo usuário. - Métricas - - <ul> - <li>Métricas</li> - </ul> - - Uma métrica representa uma estatística que pode ser consultada para gerar relatórios a partir dos dados, ou seja, é o tipo de agregação que será requerida na consulta ao repositório. Esta rota permite ao usuário listar todas as métricas disponíveis no repositório e suas descrições, sendo permitido também a especificação dos parâmetros format e tags para refinar o resultado retornado. Atualmente estão disponíveis 685 métricas, que podem ser de cinco tipos: contagem (COUNT), máximo (MAX), mínimo (MIN), soma (SUM) e média (AVG). - Dimensões - - <ul> - <li>Dimensões</li> - </ul> - - Uma dimensão permite que os dados sejam agregados por uma ou mais colunas, ou seja, define a granularidade requerida na consulta ao repositório. Esta rota permite ao usuário listar todas as dimensões disponíveis no repositório e suas descrições, sendo permitido também a especificação dos parâmetros format e tags para refinar o resultados retornado. Atualmente, estão disponíveis 903 dimensões. - Consulta - - <ul> - <li>Data</li> - </ul> - - Esta é a rota principal da API, onde de fato será realizado a consulta ao banco de dados. Sendo assim, o usuário pode consultá-la para obter relatórios de dados, especificando os atributos desejados através das métricas e dimensões. Você também pode fornecer parâmetros de consulta adicionais para refinar o resultado retornado, como sort (ordenação) e filters (filtros), além do format e tags. - </Typography> - - <Typography variant="h6" component="h5" gutterBottom> Parâmetros </Typography> - - <Typography variant="body1" gutterBottom align="justify" paragraph> - - <ul> - <li><b>dimensions</b> : granularidade</li> - - <li><b>metrics</b> : agregações (COUNT, MAX, MIN, SUM e AVG)</li> - - <li><b>filters</b> : filtros restritivos para a consulta (AND = ; e OR = ,)</li> - - <li><b>tags</b> : classificação do conteúdo</li> - - <li><b>format</b> : formato da resposta (json, csv, ssv, tsv)</li> - - <li><b>sort</b> : ordenação da resposta</li> - </ul> - </Typography> - </div> - </ThemeProvider> - ) -} diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 Binary files a/public/favicon.ico and /dev/null differ diff --git a/public/index.html b/public/index.html index aa069f27cbd9d53394428171c3989fd03db73c76..52cbf64fb956679a6758e5fb6a6aabb28c04284c 100644 --- a/public/index.html +++ b/public/index.html @@ -2,7 +2,7 @@ <html lang="en"> <head> <meta charset="utf-8" /> - <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> + <link rel="icon" href="%PUBLIC_URL%/a.png" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="theme-color" content="#000000" /> <meta @@ -24,7 +24,7 @@ work correctly both with client-side routing and a non-root public URL. Learn how to configure a non-root public URL by running `npm run build`. --> - <title>React App</title> + <title>Bem vindo ao biod</title> </head> <body> <noscript>You need to enable JavaScript to run this app.</noscript> diff --git a/public/logo192.png b/public/logo192.png deleted file mode 100644 index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..0000000000000000000000000000000000000000 Binary files a/public/logo192.png and /dev/null differ diff --git a/public/logo512.png b/public/logo512.png deleted file mode 100644 index a4e47a6545bc15971f8f63fba70e4013df88a664..0000000000000000000000000000000000000000 Binary files a/public/logo512.png and /dev/null differ diff --git a/public/manifest.json b/public/manifest.json index 080d6c77ac21bb2ef88a6992b2b73ad93daaca92..d0e4d5879a9ce71c00a599e66fe6c961b44d80f2 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,23 +1,6 @@ { - "short_name": "React App", + "short_name": "Bem vindo ao biod", "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "64x64 32x32 24x24 16x16", - "type": "image/x-icon" - }, - { - "src": "logo192.png", - "type": "image/png", - "sizes": "192x192" - }, - { - "src": "logo512.png", - "type": "image/png", - "sizes": "512x512" - } - ], "start_url": ".", "display": "standalone", "theme_color": "#000000", diff --git a/src/App.jsx b/src/App.jsx index daaceb205e092033f17138a520c29537bf3bd095..376631178be25776086b921db5215ce6a56e6333 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -6,6 +6,7 @@ import './global.css'; function App() { return ( <div className="App"> + <head>Bem vindo ao biod!</head> <Routes /> </div> ); diff --git a/src/components/footer/footer.jsx b/src/components/footer/footer.jsx index 48d1d2b20d1697b9884f03479bd95c0946ca2481..7b2edde37825513735e871d2cd6870b81d4d6eea 100644 --- a/src/components/footer/footer.jsx +++ b/src/components/footer/footer.jsx @@ -29,32 +29,28 @@ const useStyles = makeStyles(theme => ({ }, })); -function Copyright() { - return ( - <Typography variant="body2" color="textSecondary"> - {'Copyright © '} - <Link color="inherit" href="https://material-ui.com/"> - Your Website - </Link>{' '} - {new Date().getFullYear()} - {'.'} - </Typography> - ); -} function C3Image() { const classes = useStyles(); return( -<Grid item xs={12} sm={12} className={classes.item}> - +<Grid + container + spacing={0} + direction="column" + alignItems="center" + justify="center" +> + + <Grid item xs={3}> <a href="https://www.c3sl.ufpr.br/" title="Ir para a página inicial do C3SL" className={classes.link}> <img src={Logo} className={classes.img} /> </a> + </Grid> - </Grid> +</Grid> ) } @@ -67,9 +63,7 @@ function Footer() { <div className={classes.root}> <CssBaseline /> <footer className={classes.footer}> - <Container maxWidth="xs"> <C3Image /> - </Container> </footer> </div> ); diff --git a/src/pages/docsPage.jsx b/src/pages/docsPage.jsx index 7446505f15bb39688948fd1cbd92e495c2ea5f75..3cee709b4d692f1b0cdd919ae53227373a2ddf82 100644 --- a/src/pages/docsPage.jsx +++ b/src/pages/docsPage.jsx @@ -148,6 +148,41 @@ export default function DocsPage(){ <li><b>sort</b> : ordenação da resposta</li> </ul> </Typography> + + <Typography variant="h6" component="h5" gutterBottom>Como executar uma consulta no BIOD:</Typography> + <Typography variant="body1" gutterBottom align="justify" paragraph> + Suponha que queremos fazer a seguinte pergunta + analítica: + Gostaria de saber por região do Brasil, o número de + pontos de internet monitorados + (<Link href="https://simmctic.c3sl.ufpr.br/"> + SIMMCTIC</Link>), média do PIB, soma da + população, número de instituições de ensino superior e + escolas, filtrados pelos pontos de internet ativos, + censo do IBGE de 2014 e 2017, censo da instituição + de 2017 e censo da escola de 2017, ordenados pelo + PIB levantado pelo IBGE nos anos referidos. + + Ainda é possível combinar filtros com operadores + lógicos <em>AND</em>, ';', observe o separador de + filtros na URL abaixo. E ou <em>OR</em>, ',', deste modo é + possível construir filtros mais precisos. + Clique ou Copie e cole a seguinte URL em seu + navegador + <Link href="https://biod.c3sl.ufpr.br/api/v1/data?metrics=met:count:ponto:id,met:avg:ibge:pib,met:sum:ibge:populacao,met:count:es:instituicao:id,met:count:escola:id&dimensions=dim:regiao:nome&filters=dim:ponto:ativo==t;dim:ibge:censo:ano==2014;dim:es:instituicao:censo:ano==2017;dim:escola:censo:ano==2017&sort=met:avg:ibge:pib"> link para query </Link> + + A reposta será no formato JSON, conforme mostra a figura abaixo. Para retornar em CSV, basta incluir um parâmetro no final da URL: '&format=csv' + + + Explore os dados, através da lista de métricas e + dimensões, descritas na seção <Link href="#met_dim">Convenção</Link> + </Typography> + + <Typography variant="h6" component="h5" gutterBottom>Integração com o Google Sheets:</Typography> + <Typography variant="body1" gutterBottom align="justify" paragraph> + Os dados do BIOD podem ser acessados diretamente em uma planilha do Google, através de criação de uma função de usuário. + Um tutorial para criação e chamada desta função está <Link href="integration_gs_pt.html">disponível neste link</Link>. + </Typography> </div> </Container> </ThemeProvider> diff --git a/src/pages/homePage.jsx b/src/pages/homePage.jsx index 054d9c093d730bf2bf8e9c040f94eb5cdefc1a0a..25f63984a10b78a85e8cf57d0ebc78de5afbe0c0 100644 --- a/src/pages/homePage.jsx +++ b/src/pages/homePage.jsx @@ -1,16 +1,34 @@ -import React from 'react'; -import CssBaseline from '@material-ui/core/CssBaseline'; -import Typography from '@material-ui/core/Typography'; -import { makeStyles } from '@material-ui/core/styles'; +import React from "react"; +import { makeStyles, ThemeProvider } from '@material-ui/core/styles'; +import { createMuiTheme } from '@material-ui/core/styles'; import Container from '@material-ui/core/Container'; - +import Typography from '@material-ui/core/Typography'; +import CssBaseline from '@material-ui/core/CssBaseline'; +import Link from '@material-ui/core/Link'; +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import Paper from '@material-ui/core/Paper'; const useStyles = makeStyles((theme) => ({ root: { display: 'flex', flexDirection: 'column', - minHeight: '86vh', + minHeight: '100vh', + + '@media (min-width:540px)': { + width: '38em', + }, + + '@media (min-width:820px)': { + width: '70em', + }, + }, + main: { marginTop: theme.spacing(8), marginBottom: theme.spacing(2), @@ -18,17 +36,174 @@ const useStyles = makeStyles((theme) => ({ })); +const tema = createMuiTheme({ + overrides: { + MuiTypography: { + gutterBottom: { + marginBottom: '0.4em', + }, + + paragraph:{ + marginBottom: '2em' + } + }, + }, +}); + +tema.typography.h4 = { + fontSize: '2.2rem', + '@media (min-width:600px)': { + fontSize: '2.6rem', + }, + [tema.breakpoints.up('md')]: { + fontSize: '3.4rem', + }, +}; +tema.typography.h6 = { + fontSize: '1.6rem', + '@media (min-width:600px)': { + fontSize: '2rem', + }, + [tema.breakpoints.up('md')]: { + fontSize: '2.4rem', + }, +}; + +tema.typography.body1 = { + fontSize: '1rem', + '@media (min-width:600px)': { + fontSize: '1.2rem', + }, + [tema.breakpoints.up('md')]: { + fontSize: '1.5rem', + }, +}; export default function StickyFooter() { const classes = useStyles(); - return ( + return( + <ThemeProvider theme={tema}> + <CssBaseline /> + <Container component="main" className={classes.main} maxWidth="md"> <div className={classes.root}> - <CssBaseline /> - <Container component="main" className={classes.main} maxWidth="sm"> - <Typography variant="h2" component="h1" gutterBottom> - Bem vindo ao BIOD! + <Typography variant="h4" component="h3" gutterBottom>Blended Integrated Open Data: integração de dados abertos públicos</Typography> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + Acessar dados abertos, pode ser uma tarefa complexa, principalmente pela necessidade de encontar os dados e realizar cruzamentos entre divesas fontes. + Isto pode ocorrer devido a quantidade de dados disponível em uma base de dados aberta. No caso de poucos + dados, pode-se tornar inviável uma análise satisfatória, por outro lado muitos dados pode se tornar muito arduo relacioná-los, + principalmente se estes forem de fontes diferentes. Dados abertos geralmente são disponibilizados por instituições governamentais, + com uma grande massa de dados. Por exemplo, <Link href="http://dados.gov.br" > Portal Brasileiro de Dados Abertos </Link> ou <Link href="http://inep.gov.br/microdados"> Portal do INEP com microdados educacionais </Link>, que + disponibilizam dados permitindo a criação de indicadores importantes. Entretanto, o cruzamento de diferentes + bases de dados é uma tarefa complexa, difı́cil de ser implementada, pois é necessário realizar um processo de integração e + manutenção ao longo do tempo. Desta forma, esses dados abertos acabam sendo sub-utilizados. + </Typography> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + Utilizando o framework <Link href="https://gitlab.c3sl.ufpr.br/c3sl/blendb" > blenDB </Link> , nasceu o BIOD (Blended Integrated Open Data) + viabiliza a consulta de dados abertos de forma eficiente. O projeto Blended Integrated Open Data foi criado + pelo grupo <Link href="https://www.c3sl.ufpr.br">C3SL</Link> [Direne et al. 2016] da <Link href="http://www.ufpr.br">Universidade Federal do Paraná</Link>, para aumentar a utilização + de grande massa de dados abertos. Para atingir esse objetivo, o projeto criou um repositório composto de diversas bases de dados abertas distintas + e utilizou o BlenDb para acessar essas bases de dados de maneira unificada e transparente. + </Typography> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + O repositório de dados apresentado nesta página é composto pelas seguintes bases de dados abertas e integradas, com suas respectivas tabelas: + Laboratório de Dados Educacionais (LDE) geral + <ul> + <li>cidade</li> + <li>estado</li> + <li>familias_cadunico</li> + <li>ibge_pib</li> + <li>pessoas_cadunico</li> + <li>pnad</li> + <li>regiao</li> + </ul> + Laboratório de Dados Educations (LDE) de ensino superior + <ul> + <li>aluno_ens_superior</li> + <li>curso_ens_superior</li> + <li>docente_ens_superior</li> + <li>fies</li> + <li>ies_ens_superior</li> + <li>localoferta_ens_superior</li> + <li>ocde_ens_superior</li> + <li>prouni</li> + </ul> + + Laboratório de Dados Educations (LDE) de ensino básico + <ul> + <li>aluno</li> + <li>formação superior</li> + <li>escola</li> + <li>professor</li> + <li>turma</li> + <li>instituição_superior</li> + </ul> </Typography> + + <Typography variant="h6" component="h5" gutterBottom>Convenções do repositório BIOD.</Typography> + <Typography variant="body1" gutterBottom align="justify" paragraph> + É possível realizar consultas analíticas sobre as bases de dados, sendo que estas consultas poderã ser formadas por métricas, dimensões e filtros. + Caso queirar baixar a lista + de <Link href="http://biod.c3sl.ufpr.br/api/v1/metrics?format=csv">métricas</Link> + (perguntas analíticas, no formato csv), receberá o o resultado no formato abaixo: + </Typography> + + <TableContainer component={Paper}> + <Table className={classes.table} size="small" aria-label="a dense table"> + <TableHead> + <TableRow> + <TableCell>Nome</TableCell> + <TableCell align="right">Agregação</TableCell> + <TableCell align="right">Tipo de dados</TableCell> + <TableCell align="right">Descrição(g)</TableCell> + </TableRow> + </TableHead> + <TableBody> + <TableCell component="th" scope="row"> + met:count:cidade:id + </TableCell> + <TableCell align="right">count</TableCell> + <TableCell align="right">integer</TableCell> + <TableCell align="right">Quantidade</TableCell> + </TableBody> + + <TableBody> + <TableCell component="th" scope="row"> + met:avg:docente:idade + </TableCell> + <TableCell align="right">avg</TableCell> + <TableCell align="right">float</TableCell> + <TableCell align="right">Média da idade dos docentes</TableCell> + </TableBody> + </Table> + </TableContainer> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + Observe que o nome <em>met:</em> identifica a + representação do dado, neste caso métrica, <em>count:</em> + é o tipo de agregação, isto é, conta as cidades e por fim a tabela e atributo + respectivos <em>cidade:id</em>. Note que na segunda + linha <em>avg</em> significa média. A ferramenta apresenta + um atributo com esta convenção para as agregações <em>SUM, + AVG, MAX, MIN, COUNT</em>. + No caso de dimensões o prefixo é <em>dim:</em>. Note que esta é uma convenção de chamada da API, sendo que outras instâncias do BlenDb poderiam usar terminologia diferente. + + <ul id="met_dim"> + <li><Link href="http://biod.c3sl.ufpr.br/api/v1/metrics?format=csv">Clique + aqui</Link> e faça o download das métricas no formato + CSV. Ou acesse online (JSON) <Link href="https://biod.c3sl.ufpr.br/api/v1/metrics"> + aqui</Link>.</li> + <li><Link href="http://biod.c3sl.ufpr.br/api/v1/dimensions?format=csv"> + Clique aqui</Link> e faça o download das dimensões no formato + CSV. Ou acesse + online (JSON) <Link href="https://biod.c3sl.ufpr.br/api/v1/dimensions"> + aqui</Link>.</li> + </ul> + </Typography> + </div> </Container> - </div> + </ThemeProvider> ); } \ No newline at end of file diff --git a/src/pages/homePage_en.jsx b/src/pages/homePage_en.jsx new file mode 100644 index 0000000000000000000000000000000000000000..5e0c24420fe2b9cacb7b26657d26b5f396694e1b --- /dev/null +++ b/src/pages/homePage_en.jsx @@ -0,0 +1,209 @@ +import React from "react"; +import { makeStyles, ThemeProvider } from '@material-ui/core/styles'; +import { createMuiTheme } from '@material-ui/core/styles'; +import Container from '@material-ui/core/Container'; +import Typography from '@material-ui/core/Typography'; +import CssBaseline from '@material-ui/core/CssBaseline'; +import Link from '@material-ui/core/Link'; +import Table from '@material-ui/core/Table'; +import TableBody from '@material-ui/core/TableBody'; +import TableCell from '@material-ui/core/TableCell'; +import TableContainer from '@material-ui/core/TableContainer'; +import TableHead from '@material-ui/core/TableHead'; +import TableRow from '@material-ui/core/TableRow'; +import Paper from '@material-ui/core/Paper'; + +const useStyles = makeStyles((theme) => ({ + root: { + display: 'flex', + flexDirection: 'column', + minHeight: '100vh', + + '@media (min-width:540px)': { + width: '38em', + }, + + '@media (min-width:820px)': { + width: '70em', + }, + + }, + + main: { + marginTop: theme.spacing(8), + marginBottom: theme.spacing(2), + }, + +})); + +const tema = createMuiTheme({ + overrides: { + MuiTypography: { + gutterBottom: { + marginBottom: '0.4em', + }, + + paragraph:{ + marginBottom: '2em' + } + }, + }, +}); + +tema.typography.h4 = { + fontSize: '2.2rem', + '@media (min-width:600px)': { + fontSize: '2.6rem', + }, + [tema.breakpoints.up('md')]: { + fontSize: '3.4rem', + }, +}; +tema.typography.h6 = { + fontSize: '1.6rem', + '@media (min-width:600px)': { + fontSize: '2rem', + }, + [tema.breakpoints.up('md')]: { + fontSize: '2.4rem', + }, +}; + +tema.typography.body1 = { + fontSize: '1rem', + '@media (min-width:600px)': { + fontSize: '1.2rem', + }, + [tema.breakpoints.up('md')]: { + fontSize: '1.5rem', + }, +}; +export default function StickyFooter() { + const classes = useStyles(); + + return( + <ThemeProvider theme={tema}> + <CssBaseline /> + <Container component="main" className={classes.main} maxWidth="md"> + <div className={classes.root}> + <Typography variant="h4" component="h3" gutterBottom>Blended Integrated Open Data: integração de dados abertos públicos</Typography> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + Accessing open data can be a complex task, mainly because of the need to find the data and cross-reference it between several sources. + This can occur due to the amount of data available in an open database. In the case of few + data, it may become unfeasible to perform a satisfactory analysis, on the other hand many data can become very arduous to relate them, especially if they are from different sources, + especially if they are from different sources. Open data is usually made available by governmental institutions, + with a large mass of data. For example, <Link href="http://dados.gov.br" > Brazilian Open Data Portal </Link> or <Link href="http://inep.gov.br/microdados"> INEP's portal with educational microdata </Link>, that + make data available allowing the creation of important indicators. However, the cross-referencing of different + databases is a complex task, difficult to implement, because it is necessary to perform a process of integration and + maintenance over time. Thus, these open data end up being underutilized. + </Typography> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + Using the framework <Link href="https://gitlab.c3sl.ufpr.br/c3sl/blendb" > blenDB </Link> , was born BIOD (Blended Integrated Open Data) + makes it possible to query open data in an efficient way. The Blended Integrated Open Data project was created + by the group <Link href="https://www.c3sl.ufpr.br">C3SL</Link> [Direne et al. 2016] of <Link href="http://www.ufpr.br">Universidade Federal do Paraná</Link>, to increase the use + of large masses of open data. To achieve this goal, the project created a repository composed of several distinct open databases + and used BlenDb to access these databases in a unified and transparent manner. + </Typography> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + O repositório de dados apresentado nesta página é composto pelas seguintes bases de dados abertas e integradas, com suas respectivas tabelas: + Laboratório de Dados Educacionais (LDE) geral + <ul> + <li>cidade</li> + <li>estado</li> + <li>familias_cadunico</li> + <li>ibge_pib</li> + <li>pessoas_cadunico</li> + <li>pnad</li> + <li>regiao</li> + </ul> + Laboratório de Dados Educations (LDE) de ensino superior + <ul> + <li>aluno_ens_superior</li> + <li>curso_ens_superior</li> + <li>docente_ens_superior</li> + <li>fies</li> + <li>ies_ens_superior</li> + <li>localoferta_ens_superior</li> + <li>ocde_ens_superior</li> + <li>prouni</li> + </ul> + + Laboratório de Dados Educations (LDE) de ensino básico + <ul> + <li>aluno</li> + <li>formação superior</li> + <li>escola</li> + <li>professor</li> + <li>turma</li> + <li>instituição_superior</li> + </ul> + </Typography> + + <Typography variant="h6" component="h5" gutterBottom>Convenções do repositório BIOD.</Typography> + <Typography variant="body1" gutterBottom align="justify" paragraph> + É possível realizar consultas analíticas sobre as bases de dados, sendo que estas consultas poderã ser formadas por métricas, dimensões e filtros. + Caso queirar baixar a lista + de <Link href="http://biod.c3sl.ufpr.br/api/v1/metrics?format=csv">métricas</Link> + (perguntas analíticas, no formato csv), receberá o o resultado no formato abaixo: + </Typography> + + <TableContainer component={Paper}> + <Table className={classes.table} size="small" aria-label="a dense table"> + <TableHead> + <TableRow> + <TableCell>Nome</TableCell> + <TableCell align="right">Agregação</TableCell> + <TableCell align="right">Tipo de dados</TableCell> + <TableCell align="right">Descrição(g)</TableCell> + </TableRow> + </TableHead> + <TableBody> + <TableCell component="th" scope="row"> + met:count:cidade:id + </TableCell> + <TableCell align="right">count</TableCell> + <TableCell align="right">integer</TableCell> + <TableCell align="right">Quantidade</TableCell> + </TableBody> + + <TableBody> + <TableCell component="th" scope="row"> + met:avg:docente:idade + </TableCell> + <TableCell align="right">avg</TableCell> + <TableCell align="right">float</TableCell> + <TableCell align="right">Média da idade dos docentes</TableCell> + </TableBody> + </Table> + </TableContainer> + + <Typography variant="body1" gutterBottom align="justify" paragraph> + Observe que o nome <em>met:</em> identifica a + representação do dado, neste caso métrica, <em>count:</em> + é o tipo de agregação, isto é, conta as cidades e por fim a tabela e atributo + respectivos <em>cidade:id</em>. Note que na segunda + linha <em>avg</em> significa média. A ferramenta apresenta + um atributo com esta convenção para as agregações <em>SUM, + AVG, MAX, MIN, COUNT</em>. + No caso de dimensões o prefixo é <em>dim:</em>. Note que esta é uma convenção de chamada da API, sendo que outras instâncias do BlenDb poderiam usar terminologia diferente. + + <ul id="met_dim"> + <li><Link href="http://biod.c3sl.ufpr.br/api/v1/metrics?format=csv">Clique + aqui</Link> e faça o download das métricas no formato + CSV. Ou acesse online (JSON) <Link href="https://biod.c3sl.ufpr.br/api/v1/metrics"> + aqui</Link>.</li> + <li><Link href="http://biod.c3sl.ufpr.br/api/v1/dimensions?format=csv"> + Clique aqui</Link> e faça o download das dimensões no formato + CSV. Ou acesse + online (JSON) <Link href="https://biod.c3sl.ufpr.br/api/v1/dimensions"> + aqui</Link>.</li> + </ul> + </Typography> + </div> + </Container> + </ThemeProvider> + ); +} \ No newline at end of file diff --git a/src/pages/installPage.jsx b/src/pages/installPage.jsx index b179736a7c8edc6ef687683d6c4e741a2aeb3715..5364d47e4b1d2fc0305ac65e128d385019818a94 100644 --- a/src/pages/installPage.jsx +++ b/src/pages/installPage.jsx @@ -123,7 +123,7 @@ export default function InstallPage(){ <Typography variant="body1" gutterBottom align="justify" paragraph> Para criar o repositório de armazenamento e versionamento da criação do banco de dados da base de dados integrados, basta utilizar a ferramenta que faz a inicialização do banco de dados, que está disponível através da URL: <ul> - <li>https://gitlab.c3sl.ufpr.br/simmctic/biod/biod-database</li> + <li><Link href="https://gitlab.c3sl.ufpr.br/simmctic/biod/biod-database" onClick={preventDefault}> https://gitlab.c3sl.ufpr.br/simmctic/biod/biod-database </Link></li> </ul> A ferramenta cria o esquema básico através do diretório create e carrega os dados iniciais pelo diretório load. @@ -133,7 +133,7 @@ export default function InstallPage(){ Para mais informações de configurações basta acessar a URL: <ul> <li> - <Link href="https://gitlab.c3sl.ufpr.br/simmctic/biod" onClick={preventDefault}> + <Link href="https://gitlab.c3sl.ufpr.br/simmctic/biod" > https://gitlab.c3sl.ufpr.br/simmctic/biod </Link> </li>