From 2511f460df615a9aa37a1a5aa985659aea7c3eba Mon Sep 17 00:00:00 2001 From: pdts20 <pdts20@inf.ufpr.br> Date: Wed, 5 May 2021 11:30:40 -0300 Subject: [PATCH] Add english pages --- .eslintcache | 2 +- home.txt | 66 ---------- public/favicon.ico | Bin 3870 -> 0 bytes public/index.html | 4 +- public/logo192.png | Bin 5347 -> 0 bytes public/logo512.png | Bin 9664 -> 0 bytes public/manifest.json | 19 +-- src/App.jsx | 1 + src/components/footer/footer.jsx | 28 ++--- src/pages/docsPage.jsx | 35 ++++++ src/pages/homePage.jsx | 199 +++++++++++++++++++++++++++-- src/pages/homePage_en.jsx | 209 +++++++++++++++++++++++++++++++ src/pages/installPage.jsx | 4 +- 13 files changed, 449 insertions(+), 118 deletions(-) delete mode 100644 home.txt delete mode 100644 public/favicon.ico delete mode 100644 public/logo192.png delete mode 100644 public/logo512.png create mode 100644 src/pages/homePage_en.jsx diff --git a/.eslintcache b/.eslintcache index b23a707..7ad9e01 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 4ae8cfb..0000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 ZtMWJ#1p_C<F-T5Hu2|;y@Dg%;1puB)gNgtE diff --git a/public/index.html b/public/index.html index aa069f2..52cbf64 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 GIT binary patch literal 0 HcmV?d00001 literal 5347 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 diff --git a/public/logo512.png b/public/logo512.png deleted file mode 100644 index a4e47a6545bc15971f8f63fba70e4013df88a664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9664 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 Q-2sVvy85}Sb4q9e0RM_kJ^%m! diff --git a/public/manifest.json b/public/manifest.json index 080d6c7..d0e4d58 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 daaceb2..3766311 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 48d1d2b..7b2edde 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 7446505..3cee709 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 054d9c0..25f6398 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 0000000..5e0c244 --- /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 b179736..5364d47 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> -- GitLab