From f6744a5a3c416f3cfc7c59e7904fd5e4ba9eed0e Mon Sep 17 00:00:00 2001 From: AdityaT26 Date: Wed, 11 Oct 2023 21:03:03 +0530 Subject: [PATCH] csv added --- package-lock.json | 6 ++ package.json | 1 + src/components/Leaderboard/Leaderboard.js | 85 +++++++++++++++++------ src/components/Leaderboard/data.csv | 7 ++ src/components/Sidebar/Sidebar.js | 3 - src/components/data/data.csv | 7 ++ 6 files changed, 86 insertions(+), 23 deletions(-) create mode 100644 src/components/Leaderboard/data.csv create mode 100644 src/components/data/data.csv diff --git a/package-lock.json b/package-lock.json index f29fb3f..4a3af6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.5.0", + "papaparse": "^5.4.1", "react": "^18.2.0", "react-chartjs-2": "^4.3.1", "react-dom": "^18.2.0", @@ -13417,6 +13418,11 @@ "node": ">=6" } }, + "node_modules/papaparse": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz", + "integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw==" + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", diff --git a/package.json b/package.json index e9af2b6..df8ad98 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "axios": "^1.5.0", + "papaparse": "^5.4.1", "react": "^18.2.0", "react-chartjs-2": "^4.3.1", "react-dom": "^18.2.0", diff --git a/src/components/Leaderboard/Leaderboard.js b/src/components/Leaderboard/Leaderboard.js index f8ad20a..60560f3 100644 --- a/src/components/Leaderboard/Leaderboard.js +++ b/src/components/Leaderboard/Leaderboard.js @@ -1,4 +1,5 @@ import * as React from 'react'; +import Papa from 'papaparse'; import { useState, useRef } from 'react'; import { styled } from '@mui/material/styles'; import Table from '@mui/material/Table'; @@ -9,9 +10,7 @@ import TableHead from '@mui/material/TableHead'; import TableRow from '@mui/material/TableRow'; import Paper from '@mui/material/Paper'; import SearchBar from '../Searchbar'; -import { leaderboard } from '../../data'; - -const sortedLeaderboard = [...leaderboard].sort((a, b) => a.rank - b.rank); +import datacsv from './data.csv' const StyledTableCell = styled(TableCell)(({ theme }) => ({ [`&.${tableCellClasses.head}`]: { @@ -34,14 +33,56 @@ const StyledTableRow = styled(TableRow)(({ theme }) => ({ })); let prevsearch = "" +let firstRender = true export default function CustomizedTables() { + + const [data, setData] = useState([]); + const [colArr, setColumn] = useState([]); + const [values, setValues] = useState([]); + + if(firstRender){ + + fetch(datacsv) + .then( res => res.text() ) + .then( csv => { + const colArr = []; + const valArr = []; + + Papa.parse(csv,{ + header: true, + skipEmptyLines: true, + complete: function(result){ + console.log("HERE") + console.log(csv) + + result.data.map((d)=>{ + colArr.push(Object.keys(d)); + valArr.push(Object.values(d)); + }); + setData(result.data); + setColumn(colArr[0]); + setValues(valArr); + } + }) + }) + firstRender = false + + } + + console.log(values); + + const sortedLeaderboard = [...values].sort((a, b) => a[11] - b[11]); + + console.log('Leaderboard \n', sortedLeaderboard) + const [searched, setSearched] = useState(""); const [rows, setRows] = useState(sortedLeaderboard); + if(prevsearch!=searched){ const filteredRows = sortedLeaderboard.filter((row) => { - return row.name.toLowerCase().includes(searched.toLowerCase()); + return row[0].toLowerCase().includes(searched.toLowerCase()); }); prevsearch = searched; setRows(filteredRows); @@ -56,6 +97,10 @@ export default function CustomizedTables() { setSearched(value); }; + // Student Name, Student Email, Institution, Enrolment Date & Time, Enrolment Status, Google Cloud Skills Boost Profile URL, # of Courses Completed, # of Skill Badges Completed, # of GenAI Game Completed, Total Completions of both Pathways, Redemption Status, Rank + // 0 1 1 3 4 5 6 7 8 9 10 11 + // colArr + return ( <> @@ -63,27 +108,27 @@ export default function CustomizedTables() { - Rank - Name - # of Courses Completed - # of Skill Badges Completed - # of GenAI Game Completed - Total Completions of both Pathways - Redemption Status + {colArr[11]} + {colArr[0]} + {colArr[6]} + {colArr[7]} + {colArr[8]} + {colArr[9]} + {colArr[10]} {rows.map((row) => ( - + - {row.rank} - - {row.name} - {row.courseC} - {row.SkillBadges} - {row.GenAI} - {row.TotalC} - {row.Redemption} + {row[11]} + + {row[0]} + {row[6]} + {row[7]} + {row[8]} + {row[9]} + {row[10]} ))} diff --git a/src/components/Leaderboard/data.csv b/src/components/Leaderboard/data.csv new file mode 100644 index 0000000..c8851eb --- /dev/null +++ b/src/components/Leaderboard/data.csv @@ -0,0 +1,7 @@ +Student Name,Student Email,Institution,Enrolment Date & Time,Enrolment Status,Google Cloud Skills Boost Profile URL,# of Courses Completed,# of Skill Badges Completed,# of GenAI Game Completed,Total Completions of both Pathways,Redemption Status,Rank +Patel Rhut Dipakbhai,rdpatel261203@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:54:29 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/eb10b87b-00d7-46c2-9b4d-956f4f393a40,0,0,1,No,Yes,3 +Aman Mishra,aman7904mishra@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:57:12 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/c9450abc-603e-4289-9634-de8329049987,0,0,0,No,Yes,2 +Pranjal Bhardwaj,pranjalpers@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:58:31 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/2736094b-7fe5-4433-8ba9-9d322c383eeb,0,0,0,No,No,6 +Kushagra Srivastava,kushagra1794@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:59:05 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/30571307-7074-4584-9aaf-4a6192655d97,0,0,0,No,No,4 +Panuganti Neha,munniprincess27@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 21:02:07 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/ef42d386-8087-4363-b6ea-873a13ba733a,0,0,0,No,Yes,1 +Vishal Singh,vishal17935@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 21:03:50 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/1f1da344-857d-4702-b6b6-bed266977ec3,0,0,0,No,No,5 diff --git a/src/components/Sidebar/Sidebar.js b/src/components/Sidebar/Sidebar.js index 5ee444c..4f36c13 100644 --- a/src/components/Sidebar/Sidebar.js +++ b/src/components/Sidebar/Sidebar.js @@ -1,13 +1,10 @@ import List from '@mui/material/List'; import Drawer from '@mui/material/Drawer'; - import Divider from '@mui/material/Divider'; import ListItem from '@mui/material/ListItem'; import ListItemButton from '@mui/material/ListItemButton'; -import List from '@mui/material/List'; import ListItemIcon from '@mui/material/ListItemIcon'; import ListItemText from '@mui/material/ListItemText'; -import Drawer from '@mui/material/Drawer'; import InsertChartIcon from '@mui/icons-material/InsertChart'; import QuestionAnswerIcon from '@mui/icons-material/QuestionAnswer'; import QuizIcon from '@mui/icons-material/Quiz'; diff --git a/src/components/data/data.csv b/src/components/data/data.csv new file mode 100644 index 0000000..33d946d --- /dev/null +++ b/src/components/data/data.csv @@ -0,0 +1,7 @@ +Student Name,Student Email,Institution,Enrolment Date & Time,Enrolment Status,Google Cloud Skills Boost Profile URL,# of Courses Completed,# of Skill Badges Completed,# of GenAI Game Completed,Total Completions of both Pathways,Redemption Status +Patel Rhut Dipakbhai,rdpatel261203@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:54:29 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/eb10b87b-00d7-46c2-9b4d-956f4f393a40,0,0,1,No,Yes +Aman Mishra,aman7904mishra@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:57:12 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/c9450abc-603e-4289-9634-de8329049987,0,0,0,No,Yes +Pranjal Bhardwaj,pranjalpers@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:58:31 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/2736094b-7fe5-4433-8ba9-9d322c383eeb,0,0,0,No,No +Kushagra Srivastava,kushagra1794@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 20:59:05 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/30571307-7074-4584-9aaf-4a6192655d97,0,0,0,No,No +Panuganti Neha,munniprincess27@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 21:02:07 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/ef42d386-8087-4363-b6ea-873a13ba733a,0,0,0,No,Yes +Vishal Singh,vishal17935@gmail.com,Indian Institute of Technology (IIT) - Kanpur,Tue Sep 26 2023 21:03:50 GMT+0530 (GMT+05:30),All Good,https://www.cloudskillsboost.google/public_profiles/1f1da344-857d-4702-b6b6-bed266977ec3,0,0,0,No,No \ No newline at end of file