Browse Source

workingTable

andrea.nieves7 1 year ago
parent
commit
ee90543623
10 changed files with 254 additions and 31 deletions
  1. BIN
      .httr-oauth
  2. 61
    5
      Datos.js
  3. 9
    0
      api/index.html
  4. 38
    0
      api/plumber.R
  5. 41
    0
      id_rsa
  6. 1
    0
      id_rsa.pub
  7. 44
    0
      package-lock.json
  8. 2
    0
      package.json
  9. 38
    0
      plumber.R
  10. 20
    26
      yarn.lock

BIN
.httr-oauth View File


+ 61
- 5
Datos.js View File

@@ -1,8 +1,14 @@
1 1
 import React, {useState} from 'react';
2 2
 import { View, Text, Pressable, StyleSheet, Alert} from 'react-native';
3 3
 import DropDownPicker from 'react-native-dropdown-picker';
4
+import { Table, TableWrapper, Row, Rows, Col, Cols, Cell } from 'react-native-table-component';
5
+import { parse } from 'json2csv'
4 6
 //import {styles} from "./styles"
5 7
   
8
+  
9
+var allData
10
+var allTitle
11
+  
6 12
 const styles = StyleSheet.create({
7 13
 	
8 14
 	buttons: {
@@ -103,6 +109,12 @@ const styles = StyleSheet.create({
103 109
 	  letterSpacing: 0.25,
104 110
 	  color: 'white',
105 111
 	},
112
+	tablecontainer: { flex: 1, padding: 16, paddingTop: 30, backgroundColor: '#fff' },
113
+	head: {  height: 40,  backgroundColor: '#f1f8ff'  },
114
+	wrapper: { flexDirection: 'row' },
115
+	title: { flex: 1, backgroundColor: '#f6f8fa' },
116
+	row: {  height: 28  },
117
+	tabletext: { textAlign: 'center' }
106 118
   });  
107 119
 var table = ""
108 120
 var pueblo = ""
@@ -282,7 +294,7 @@ function loadDoc(query) {
282 294
 		
283 295
 function fetchData() {
284 296
             
285
-        var query = "http://127.0.0.1:5378/table?table=" + table + "&municipality=" + pueblo 
297
+        var query = "https://api.census.gov/data/2020/acs/acs5/profile?get=group" + "(" + table + ")&for=county:" + pueblo + "&in=state:72"
286 298
         if(pueblo && table)
287 299
         {loadDoc(query)}
288 300
 
@@ -293,14 +305,57 @@ function fetchData() {
293 305
 
294 306
 
295 307
 
308
+function DataTable() {
309
+    let tableHead = ['Variable', 'Estimate', 'MoE']
310
+    let tableTitle = allTitle
311
+    let tableData = allData
312
+    return (
313
+      <View style={styles.tablecontainer}>
314
+        <Table borderStyle={{borderWidth: 1}}>
315
+          <Row data={tableHead} flexArr={[1, 2, 1, 1]} style={styles.head} textStyle={styles.tabletext}/>
316
+          <TableWrapper style={styles.wrapper}>
317
+            <Col data={tableTitle} style={styles.title} heightArr={[28,28]} textStyle={styles.tabletext}/>
318
+            <Rows data={tableData} flexArr={[2, 1, 1]} style={styles.row} textStyle={styles.tabletext}/>
319
+          </TableWrapper>
320
+        </Table>
321
+      </View>
322
+    )
323
+}
324
+
296 325
 //organize data make it pretty
297 326
 //add loading thing while this organizes all the data !!!
298 327
 
299 328
 function organize(){
300 329
 	
301
-	console.log(information)
302
-	
303 330
 	let bigData = JSON.parse(information)
331
+	bigData = parse(bigData)
332
+	var variables = []
333
+	var estimates = []
334
+	var moe = []
335
+	
336
+	let divData = bigData.split(",")
337
+	let num = Math.floor(divData.length/3) + 1
338
+	for(let i = num; i < Math.floor(divData.length/3*2); i++){
339
+		variables.push(divData[i])
340
+		estimates.push(divData[i+num])
341
+		moe.push(divData[i+num*1.5])
342
+		
343
+	}
344
+	
345
+	//console.log(variables)
346
+	//console.log(estimates)
347
+	//console.log(moe)
348
+	let tableContents = []
349
+	for(let i = 0; i < estimates.length; i++)
350
+	{
351
+		tableContents.push([estimates[i],moe[i]])
352
+	}
353
+	
354
+	allTitle = variables
355
+	allData = tableContents
356
+	
357
+	information = <DataTable />
358
+	
304 359
 	
305 360
 	/*
306 361
 	var stringDiv = JSON.stringify(information)
@@ -334,6 +389,9 @@ function organize(){
334 389
 	
335 390
 }
336 391
 
392
+
393
+
394
+
337 395
 function json_2_csv(information){
338 396
 
339 397
 	const csv = parse(obj);
@@ -366,9 +424,7 @@ class DataButton extends React.Component{
366 424
 	//the reason you need to press the button twice is bc the http request doesnt finish in time
367 425
 	//for information to be updated before its rerendered
368 426
 	componentDidUpdate(){
369
-		console.log(this.state)
370 427
 		if(this.state.current == 1){
371
-			console.log("updating")
372 428
 			this.setState({current: 0})
373 429
 		}
374 430
 	}

+ 9
- 0
api/index.html View File

@@ -0,0 +1,9 @@
1
+<!DOCTYPE html>
2
+<html>
3
+<body>
4
+
5
+<h1>My First Heading</h1>
6
+<p>My first paragraph.</p>
7
+
8
+</body>
9
+</html>

+ 38
- 0
api/plumber.R View File

@@ -0,0 +1,38 @@
1
+library(tidycensus)
2
+library(tidyverse)
3
+library(plumber)
4
+
5
+
6
+#* Call table
7
+#* @get /table
8
+#* @serializer json
9
+callData = function(table,municipality) {
10
+  
11
+  census_api_key("7a853acf81fd5758228680556ac831138c40b83e")
12
+  #year is between 2000 and 2020
13
+  #table is dp02pr, dp03, dp04, dp05
14
+  
15
+  #load variables
16
+  variables = load_variables(2020,"acs5/profile")
17
+  #load variable vectors
18
+  codes = variables$name
19
+  codesBool = startsWith(codes,table)
20
+  
21
+  codes = codes[codesBool]
22
+  labels = variables$label[codesBool]
23
+  
24
+  #pull table
25
+  bigTable = get_acs(geography = "county",
26
+                 state = "PR",
27
+                 year = 2020,
28
+                 county = municipality,
29
+                 survey = "acs5",
30
+                 variables = codes)
31
+  
32
+  bigTable$Label = labels
33
+  bigTable = bigTable[c("Label","estimate","moe")]
34
+  return(bigTable)
35
+}
36
+
37
+
38
+

+ 41
- 0
id_rsa View File

@@ -0,0 +1,41 @@
1
+-----BEGIN OPENSSH PRIVATE KEY-----
2
+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
38
+-----END OPENSSH PRIVATE KEY-----
39
+
40
+
41
+

+ 1
- 0
id_rsa.pub View File

@@ -0,0 +1 @@
1
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDEKx8a8DstRdYp9g76DnDzGn0MHD+dXSV91GVOYsFzbff36bEEE++SAw4Duem10cfxpab8HUMBmYyjCa4BnyUf+jyrJGVUmAtSkGqBZ1XlnyBAnXMXu7V4Bc2rbbo5Tb87Wa33/ZAg32XzP8WHJQNgBNab8Od7UetOI1237or7edz8nu419nc9fpt9mkTshdMefgFq01yQnoH9GGllMCnvULi77oyLP+PI7INKZuPDXMxliwgSBuMv5T822tWjwHXmPl0dgxonBBICFARq6xiYCTnSPbZzaVonmI2QbEcnwhtzYKzapdKOpSRzjyfqgln+kmmKJwWQQ2YxbI/M75iKc3PKzNGBM6/zATWbFikEtTa4/Zoj/MNkSQUg7lN8tmwb7uJdaQZHYvEw/lUcefkmsI/iXcB9GnJr0hLyaR3J/5NrLtiLS1/9W4QgFmtoXoyyABCk5BFTzQx6WTJ75PUGI5UK0lO/8pt8FwwcmPTzRcZOKenGB/apQ8JhVg3eq70= kashi@DESKTOP-480VGCQ

+ 44
- 0
package-lock.json View File

@@ -16,11 +16,13 @@
16 16
         "expo-splash-screen": "~0.17.5",
17 17
         "expo-status-bar": "~1.4.2",
18 18
         "json2csv": "^5.0.7",
19
+        "prop-types": "^15.8.1",
19 20
         "react": "18.1.0",
20 21
         "react-dom": "18.1.0",
21 22
         "react-native": "0.70.5",
22 23
         "react-native-dropdown-picker": "^5.4.3",
23 24
         "react-native-element-dropdown": "^2.5.0",
25
+        "react-native-table-component": "^1.2.2",
24 26
         "react-native-web": "~0.18.9"
25 27
       },
26 28
       "devDependencies": {
@@ -14830,6 +14832,21 @@
14830 14832
         "node": ">= 6"
14831 14833
       }
14832 14834
     },
14835
+    "node_modules/prop-types": {
14836
+      "version": "15.8.1",
14837
+      "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
14838
+      "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
14839
+      "dependencies": {
14840
+        "loose-envify": "^1.4.0",
14841
+        "object-assign": "^4.1.1",
14842
+        "react-is": "^16.13.1"
14843
+      }
14844
+    },
14845
+    "node_modules/prop-types/node_modules/react-is": {
14846
+      "version": "16.13.1",
14847
+      "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
14848
+      "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
14849
+    },
14833 14850
     "node_modules/proxy-addr": {
14834 14851
       "version": "2.0.7",
14835 14852
       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -15482,6 +15499,11 @@
15482 15499
       "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A==",
15483 15500
       "license": "MIT"
15484 15501
     },
15502
+    "node_modules/react-native-table-component": {
15503
+      "version": "1.2.2",
15504
+      "resolved": "https://registry.npmjs.org/react-native-table-component/-/react-native-table-component-1.2.2.tgz",
15505
+      "integrity": "sha512-7bbsi5431iWcjj3toASh8lFHGi6AG/+MTd4M7GuksXKxx/CFs/Qwv1Ys7D2wgyuYKe3hxWNfSVrteFj0tOYXYw=="
15506
+    },
15485 15507
     "node_modules/react-native-web": {
15486 15508
       "version": "0.18.10",
15487 15509
       "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.18.10.tgz",
@@ -31366,6 +31388,23 @@
31366 31388
         "sisteransi": "^1.0.5"
31367 31389
       }
31368 31390
     },
31391
+    "prop-types": {
31392
+      "version": "15.8.1",
31393
+      "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
31394
+      "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
31395
+      "requires": {
31396
+        "loose-envify": "^1.4.0",
31397
+        "object-assign": "^4.1.1",
31398
+        "react-is": "^16.13.1"
31399
+      },
31400
+      "dependencies": {
31401
+        "react-is": {
31402
+          "version": "16.13.1",
31403
+          "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
31404
+          "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
31405
+        }
31406
+      }
31407
+    },
31369 31408
     "proxy-addr": {
31370 31409
       "version": "2.0.7",
31371 31410
       "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -31873,6 +31912,11 @@
31873 31912
       "resolved": "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz",
31874 31913
       "integrity": "sha512-oOanj84fJEXUg9FoEAQomA8ISG+DVIrTZ3qF7m69VQUJyOGYyDZmPqKcjvRku4KXlEH6hWO9i4ACLzNBh8gC0A=="
31875 31914
     },
31915
+    "react-native-table-component": {
31916
+      "version": "1.2.2",
31917
+      "resolved": "https://registry.npmjs.org/react-native-table-component/-/react-native-table-component-1.2.2.tgz",
31918
+      "integrity": "sha512-7bbsi5431iWcjj3toASh8lFHGi6AG/+MTd4M7GuksXKxx/CFs/Qwv1Ys7D2wgyuYKe3hxWNfSVrteFj0tOYXYw=="
31919
+    },
31876 31920
     "react-native-web": {
31877 31921
       "version": "0.18.10",
31878 31922
       "resolved": "https://registry.npmjs.org/react-native-web/-/react-native-web-0.18.10.tgz",

+ 2
- 0
package.json View File

@@ -17,11 +17,13 @@
17 17
     "expo-splash-screen": "~0.17.5",
18 18
     "expo-status-bar": "~1.4.2",
19 19
     "json2csv": "^5.0.7",
20
+    "prop-types": "^15.8.1",
20 21
     "react": "18.1.0",
21 22
     "react-dom": "18.1.0",
22 23
     "react-native": "0.70.5",
23 24
     "react-native-dropdown-picker": "^5.4.3",
24 25
     "react-native-element-dropdown": "^2.5.0",
26
+    "react-native-table-component": "^1.2.2",
25 27
     "react-native-web": "~0.18.9"
26 28
   },
27 29
   "devDependencies": {

+ 38
- 0
plumber.R View File

@@ -0,0 +1,38 @@
1
+library(tidycensus)
2
+library(tidyverse)
3
+library(plumber)
4
+
5
+
6
+#* Call table
7
+#* @get /table
8
+#* @serializer json
9
+callData = function(table,municipality) {
10
+  
11
+  census_api_key("7a853acf81fd5758228680556ac831138c40b83e")
12
+  #year is between 2000 and 2020
13
+  #table is dp02pr, dp03, dp04, dp05
14
+  
15
+  #load variables
16
+  variables = load_variables(2020,"acs5/profile")
17
+  #load variable vectors
18
+  codes = variables$name
19
+  codesBool = startsWith(codes,table)
20
+  
21
+  codes = codes[codesBool]
22
+  labels = variables$label[codesBool]
23
+  
24
+  #pull table
25
+  bigTable = get_acs(geography = "county",
26
+                 state = "PR",
27
+                 year = 2020,
28
+                 county = municipality,
29
+                 survey = "acs5",
30
+                 variables = codes)
31
+  
32
+  bigTable$Label = labels
33
+  bigTable = bigTable[c("Label","estimate","moe")]
34
+  return(bigTable)
35
+}
36
+
37
+
38
+

+ 20
- 26
yarn.lock View File

@@ -2799,13 +2799,6 @@
2799 2799
   "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
2800 2800
   "version" "2.2.0"
2801 2801
 
2802
-"bindings@^1.5.0":
2803
-  "integrity" "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="
2804
-  "resolved" "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
2805
-  "version" "1.5.0"
2806
-  dependencies:
2807
-    "file-uri-to-path" "1.0.0"
2808
-
2809 2802
 "bl@^4.1.0":
2810 2803
   "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w=="
2811 2804
   "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz"
@@ -5401,19 +5394,6 @@
5401 5394
   "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
5402 5395
   "version" "1.0.0"
5403 5396
 
5404
-"fsevents@^1.2.7":
5405
-  "integrity" "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw=="
5406
-  "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz"
5407
-  "version" "1.2.13"
5408
-  dependencies:
5409
-    "bindings" "^1.5.0"
5410
-    "nan" "^2.12.1"
5411
-
5412
-"fsevents@^2.1.2", "fsevents@~2.3.2":
5413
-  "integrity" "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA=="
5414
-  "resolved" "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
5415
-  "version" "2.3.2"
5416
-
5417 5397
 "function-bind@^1.1.1":
5418 5398
   "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
5419 5399
   "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
@@ -6964,7 +6944,7 @@
6964 6944
   "resolved" "https://registry.npmjs.org/long/-/long-4.0.0.tgz"
6965 6945
   "version" "4.0.0"
6966 6946
 
6967
-"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.3.1":
6947
+"loose-envify@^1.0.0", "loose-envify@^1.1.0", "loose-envify@^1.3.1", "loose-envify@^1.4.0":
6968 6948
   "integrity" "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q=="
6969 6949
   "resolved" "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
6970 6950
   "version" "1.4.0"
@@ -7663,11 +7643,6 @@
7663 7643
     "object-assign" "^4.0.1"
7664 7644
     "thenify-all" "^1.0.0"
7665 7645
 
7666
-"nan@^2.12.1":
7667
-  "integrity" "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ=="
7668
-  "resolved" "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz"
7669
-  "version" "2.17.0"
7670
-
7671 7646
 "nanomatch@^1.2.9":
7672 7647
   "integrity" "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA=="
7673 7648
   "resolved" "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"
@@ -8836,6 +8811,15 @@
8836 8811
     "kleur" "^3.0.3"
8837 8812
     "sisteransi" "^1.0.5"
8838 8813
 
8814
+"prop-types@^15.8.1":
8815
+  "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
8816
+  "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
8817
+  "version" "15.8.1"
8818
+  dependencies:
8819
+    "loose-envify" "^1.4.0"
8820
+    "object-assign" "^4.1.1"
8821
+    "react-is" "^16.13.1"
8822
+
8839 8823
 "proxy-addr@~2.0.7":
8840 8824
   "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg=="
8841 8825
   "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz"
@@ -9061,6 +9045,11 @@
9061 9045
   "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz"
9062 9046
   "version" "18.2.0"
9063 9047
 
9048
+"react-is@^16.13.1":
9049
+  "integrity" "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
9050
+  "resolved" "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
9051
+  "version" "16.13.1"
9052
+
9064 9053
 "react-is@^17.0.1":
9065 9054
   "integrity" "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w=="
9066 9055
   "resolved" "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz"
@@ -9091,6 +9080,11 @@
9091 9080
   "resolved" "https://registry.npmjs.org/react-native-gradle-plugin/-/react-native-gradle-plugin-0.70.3.tgz"
9092 9081
   "version" "0.70.3"
9093 9082
 
9083
+"react-native-table-component@^1.2.2":
9084
+  "integrity" "sha512-7bbsi5431iWcjj3toASh8lFHGi6AG/+MTd4M7GuksXKxx/CFs/Qwv1Ys7D2wgyuYKe3hxWNfSVrteFj0tOYXYw=="
9085
+  "resolved" "https://registry.npmjs.org/react-native-table-component/-/react-native-table-component-1.2.2.tgz"
9086
+  "version" "1.2.2"
9087
+
9094 9088
 "react-native-web@~0.18.9":
9095 9089
   "integrity" "sha512-YV2gtZa1n7ulTGp+HcxH+KsAtaDPBI/dKd9oOQS31zyFHURjObLUVkKnGjkmlYAUReWfvmlU64GzyNwoZF9/tA=="
9096 9090
   "resolved" "https://registry.npmjs.org/react-native-web/-/react-native-web-0.18.10.tgz"