-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
osama bin junaid
committed
Nov 17, 2022
0 parents
commit 28d7a89
Showing
23 changed files
with
2,830 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. | ||
|
||
# dependencies | ||
/node_modules | ||
/.pnp | ||
.pnp.js | ||
|
||
# testing | ||
/coverage | ||
|
||
# next.js | ||
/.next/ | ||
/out/ | ||
|
||
# production | ||
/build | ||
|
||
# misc | ||
.DS_Store | ||
*.pem | ||
|
||
# debug | ||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
.pnpm-debug.log* | ||
|
||
# local env files | ||
.env*.local | ||
|
||
# vercel | ||
.vercel | ||
|
||
# typescript | ||
*.tsbuildinfo | ||
next-env.d.ts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
TODO: | ||
|
||
- Deployment tutorial will go here |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import Image from 'next/image' | ||
|
||
type NavBarProps = { | ||
filterFunc: any | ||
} | ||
|
||
export default function NavBar(props: NavBarProps) { | ||
return ( | ||
<> | ||
<p className='text-right text-xs'>with 💗 from <a href="https://linkedin.com/in/ibnjunaid">@ibnjunaid</a></p> | ||
<div className="navbar bg-base-100 "> | ||
<div className="flex-1"> | ||
<Image src="/GDSC.png" width={400} height={50} | ||
alt="Shoes" className="rounded-xl bg-green-200 p-2" | ||
/> | ||
</div> | ||
<div className="flex-1"> | ||
<h1>GCCP Leader Board</h1> | ||
</div> | ||
<div className="flex-none gap-2"> | ||
<div className="form-control"> | ||
<input type="text" placeholder="Search" className="input input-bordered" | ||
onChange={props.filterFunc} /> | ||
</div> | ||
</div> | ||
</div> | ||
</> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
import * as react from 'react' | ||
import { useState } from 'react'; | ||
|
||
type TableProp = { | ||
headers: string[]; | ||
data: string[][] | ||
} | ||
|
||
export default function Table(props: TableProp) { | ||
return ( | ||
|
||
<> | ||
<div className="overflow-x-auto"> | ||
<table className="table w-full"> | ||
{/* <!-- head --> */} | ||
<thead> | ||
<tr> | ||
<th>Serial</th> | ||
{ | ||
props.headers.map((header, index) => <th key={index}>{header}</th>) | ||
} | ||
</tr> | ||
</thead> | ||
<tbody> | ||
{ | ||
props.data.map((entry, i) => { | ||
return <tr key={i}> | ||
<th>{i}</th> | ||
{ | ||
entry.map((val, j) => <th key={j}>{val}</th>) | ||
} | ||
</tr> | ||
}) | ||
} | ||
</tbody> | ||
</table> | ||
</div> | ||
</> | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
/** @type {import('next').NextConfig} */ | ||
const nextConfig = { | ||
reactStrictMode: true, | ||
swcMinify: true, | ||
} | ||
|
||
module.exports = nextConfig |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
{ | ||
"name": "gccp", | ||
"version": "0.1.0", | ||
"private": true, | ||
"scripts": { | ||
"dev": "next dev", | ||
"build": "next build", | ||
"start": "next start", | ||
"lint": "next lint" | ||
}, | ||
"dependencies": { | ||
"@types/node": "18.11.9", | ||
"@types/react": "18.0.25", | ||
"@types/react-dom": "18.0.9", | ||
"colors": "^1.4.0", | ||
"daisyui": "^2.40.1", | ||
"eslint": "8.27.0", | ||
"eslint-config-next": "13.0.3", | ||
"google-auth-library": "^8.7.0", | ||
"googleapis": "^109.0.1", | ||
"next": "13.0.3", | ||
"react": "18.2.0", | ||
"react-dom": "18.2.0", | ||
"typescript": "4.8.4" | ||
}, | ||
"devDependencies": { | ||
"autoprefixer": "^10.4.13", | ||
"postcss": "^8.4.19", | ||
"tailwindcss": "^3.2.4" | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import '../styles/globals.css' | ||
import type { AppProps } from 'next/app' | ||
|
||
export default function App({ Component, pageProps }: AppProps) { | ||
return <Component {...pageProps} /> | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction | ||
import type { NextApiRequest, NextApiResponse } from 'next' | ||
import { getSheetId } from '../../utils/db'; | ||
import { getDataFromSheet, getSheetTitles } from '../../utils/sheets' | ||
import { filterSensitiveData } from '../../utils/utils' | ||
|
||
type Data = { | ||
headers: string[]; | ||
data: any[][]; | ||
} | ||
|
||
export default async function handler( req: NextApiRequest, res: NextApiResponse<Data> ) { | ||
const sheetId = getSheetId() | ||
const sheetTitles = await getSheetTitles(sheetId) | ||
const latestTableTitle = sheetTitles.at(-1) | ||
if(latestTableTitle){ | ||
const data = await getDataFromSheet(sheetId, latestTableTitle) | ||
const filteredData = filterSensitiveData(data); | ||
res.json(filteredData) | ||
} | ||
else { | ||
res.status(500).send({data:[], headers:[]}) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
import { useState } from 'react' | ||
import NavBar from '../components/navbar.component' | ||
import Table from '../components/table.components' | ||
|
||
export default function Home({participantsData}: any) { | ||
|
||
const [data, setData] = useState(participantsData.data) | ||
|
||
function handleFilter(event: React.ChangeEvent<HTMLInputElement>) { | ||
|
||
if(event.target.value){ | ||
const filtered_data = data.filter( | ||
(entry: any) => entry.some( | ||
(e:string) => e.toLowerCase().includes(event.target.value.toLowerCase()) | ||
) | ||
) | ||
setData(filtered_data) | ||
} else { | ||
setData(participantsData.data) | ||
} | ||
} | ||
|
||
return ( | ||
<> | ||
<NavBar filterFunc = {handleFilter} /> | ||
<Table headers={participantsData.headers} data={data}/> | ||
</> | ||
) | ||
} | ||
|
||
|
||
export async function getStaticProps(){ | ||
// Fetch data from external API | ||
const res = await fetch(`https://gccp.vercel.app/api/hello`) | ||
const data = await res.json() | ||
return { props: { participantsData: data }, revalidate: 518400 } | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
module.exports = { | ||
plugins: { | ||
tailwindcss: {}, | ||
autoprefixer: {}, | ||
}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
// <key will got here> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
.container { | ||
padding: 0 2rem; | ||
} | ||
|
||
.main { | ||
min-height: 100vh; | ||
padding: 4rem 0; | ||
flex: 1; | ||
display: flex; | ||
flex-direction: column; | ||
justify-content: center; | ||
align-items: center; | ||
} | ||
|
||
.footer { | ||
display: flex; | ||
flex: 1; | ||
padding: 2rem 0; | ||
border-top: 1px solid #eaeaea; | ||
justify-content: center; | ||
align-items: center; | ||
} | ||
|
||
.footer a { | ||
display: flex; | ||
justify-content: center; | ||
align-items: center; | ||
flex-grow: 1; | ||
} | ||
|
||
.title a { | ||
color: #0070f3; | ||
text-decoration: none; | ||
} | ||
|
||
.title a:hover, | ||
.title a:focus, | ||
.title a:active { | ||
text-decoration: underline; | ||
} | ||
|
||
.title { | ||
margin: 0; | ||
line-height: 1.15; | ||
font-size: 4rem; | ||
} | ||
|
||
.title, | ||
.description { | ||
text-align: center; | ||
} | ||
|
||
.description { | ||
margin: 4rem 0; | ||
line-height: 1.5; | ||
font-size: 1.5rem; | ||
} | ||
|
||
.code { | ||
background: #fafafa; | ||
border-radius: 5px; | ||
padding: 0.75rem; | ||
font-size: 1.1rem; | ||
font-family: Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, | ||
Bitstream Vera Sans Mono, Courier New, monospace; | ||
} | ||
|
||
.grid { | ||
display: flex; | ||
align-items: center; | ||
justify-content: center; | ||
flex-wrap: wrap; | ||
max-width: 800px; | ||
} | ||
|
||
.card { | ||
margin: 1rem; | ||
padding: 1.5rem; | ||
text-align: left; | ||
color: inherit; | ||
text-decoration: none; | ||
border: 1px solid #eaeaea; | ||
border-radius: 10px; | ||
transition: color 0.15s ease, border-color 0.15s ease; | ||
max-width: 300px; | ||
} | ||
|
||
.card:hover, | ||
.card:focus, | ||
.card:active { | ||
color: #0070f3; | ||
border-color: #0070f3; | ||
} | ||
|
||
.card h2 { | ||
margin: 0 0 1rem 0; | ||
font-size: 1.5rem; | ||
} | ||
|
||
.card p { | ||
margin: 0; | ||
font-size: 1.25rem; | ||
line-height: 1.5; | ||
} | ||
|
||
.logo { | ||
height: 1em; | ||
margin-left: 0.5rem; | ||
} | ||
|
||
@media (max-width: 600px) { | ||
.grid { | ||
width: 100%; | ||
flex-direction: column; | ||
} | ||
} | ||
|
||
@media (prefers-color-scheme: dark) { | ||
.card, | ||
.footer { | ||
border-color: #222; | ||
} | ||
.code { | ||
background: #111; | ||
} | ||
.logo img { | ||
filter: invert(1); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
@tailwind base; | ||
@tailwind components; | ||
@tailwind utilities; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
/** @type {import('tailwindcss').Config} */ | ||
module.exports = { | ||
content: [ | ||
"./app/**/*.{js,ts,jsx,tsx}", | ||
"./pages/**/*.{js,ts,jsx,tsx}", | ||
"./components/**/*.{js,ts,jsx,tsx}", | ||
], | ||
theme: { | ||
extend: {}, | ||
}, | ||
plugins: [require("daisyui")], | ||
} |
Oops, something went wrong.