Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
bc71a7f
feat: migrate from Create React App to Vite and update to latest depe…
Oct 6, 2025
338974c
fix: downgrade styled-components to v5 for @primer/react compatibility
Oct 6, 2025
3dc2001
chore: update pnpm-lock.yaml
Oct 6, 2025
b164268
feat: add Pending PRs section (fixes #18)
Oct 6, 2025
01ba835
fix: update @primer components for v37 compatibility
Oct 6, 2025
097850c
fix: use MarkGithubIcon directly without wrapper component
Oct 6, 2025
24e5634
fix: resolve all TypeScript and compatibility errors
Oct 6, 2025
f844598
fix: resolve final TypeScript build errors
Oct 6, 2025
e3428ed
fix: migrate to ESLint v9 flat config and resolve all lint errors
Oct 6, 2025
e1ceedd
fix: use GitHub API directly for pending PRs
Oct 6, 2025
9dedb23
feat: fetch pending PRs from all sliit-foss repositories
Oct 6, 2025
9bf6cec
feat: exclude dependabot PRs from pending list
Oct 6, 2025
a8061b3
feat: modernize Pending PRs UI with card-based layout
Oct 6, 2025
23faa8f
fix: integrate theme system for header, footer, and PR section
Oct 6, 2025
43c86ec
chore: remove deprecated .eslintignore file
Oct 6, 2025
bee00f9
fix: make header/navbar background theme-aware
Oct 6, 2025
a84d7c2
feat: implement working pagination and improve points chip
Oct 6, 2025
2ca6167
fix: maintain consistent table height with 10 rows always
Oct 6, 2025
2e3acab
fix: use same structure for empty rows to prevent table size changes
Oct 6, 2025
bedcf11
fix: set fixed column widths to prevent layout shifts
Oct 6, 2025
1410953
feat: UI revamp with modern components and smooth animations
Oct 6, 2025
b14ea66
fix: resolve build errors from CI/CD
Oct 6, 2025
50d94e4
fix: update pnpm-lock.yaml for web-vitals dependency
Oct 6, 2025
049f0b3
fix: make husky postinstall non-fatal in CI environments
Oct 6, 2025
8291ce3
fix: improve CI workflow with proper pnpm setup and caching
Oct 6, 2025
0be18e2
fix: skip husky installation in CI environment
Oct 6, 2025
ed04d9a
fix: use pnpm v9 in CI to match lockfile format
Oct 6, 2025
814d587
feat: add PR preview deployment workflow
Oct 6, 2025
b837b9d
fix: update PR preview base path and URL for custom domain
Oct 6, 2025
3a788b7
fix: ensure all build assets are deployed to gh-pages
Oct 6, 2025
e2f3e41
fix: switch to JamesIves/github-pages-deploy-action for reliable asse…
Oct 6, 2025
cd69210
fix: switch from HashRouter to BrowserRouter for PR preview compatibi…
icy-r Oct 6, 2025
61bf8e1
fix: add GitHub Pages SPA support for BrowserRouter in subdirectory
icy-r Oct 6, 2025
dcf3279
fix: add SPA redirect script to root index.html for Vite build
icy-r Oct 6, 2025
52b39f8
fix: disable PR preview deployment due to custom domain limitations
icy-r Oct 6, 2025
72f5dc9
chore: remove PR preview workflow
icy-r Oct 6, 2025
4732bf2
refactor: comment out Community Stats and fix avatar display
icy-r Oct 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .eslintignore

This file was deleted.

19 changes: 12 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,23 @@ jobs:
node-version: [18.x]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}

- name: Install pnpm
run: npm i -g pnpm
cache: 'pnpm'

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: pnpm install --frozen-lockfile --ignore-scripts

- name: Build
run: CI=false pnpm build --if-present
run: pnpm build
env:
CI: false
74 changes: 74 additions & 0 deletions dist/assets/HeroVector-ESs-Sz5j.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions dist/assets/index-BIPY0Dyl.css

Large diffs are not rendered by default.

798 changes: 798 additions & 0 deletions dist/assets/index-CZn2naZv.js

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dist/assets/index-CZn2naZv.js.map

Large diffs are not rendered by default.

Binary file added dist/assets/loader-CBPwYg4k.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dist/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added dist/favicon.ico
Binary file not shown.
36 changes: 36 additions & 0 deletions dist/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="/favicon.ico?v=2" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="The following leaderboard shows the top github contributors of SLIIT FOSS. You can join this leaderboard by sending a Pull Request to any repository within SLIIT FOSS GitHub Organization. Scores will automatically updates when merging a Pull request."
/>
<meta content="SLIIT FOSS Community" name="author"/>
<meta content="sliit, sliit foss, foss, sliit foss community, github campus expert" name="keywords"/>

<meta content="SLIIT FOSS Leaderboard | The following leaderboard shows the top GitHub contributors of SLIIT FOSS" property="og:title"/>
<meta content="website" property="og:type"/>
<meta content="http://www.leaderboard.sliitfoss.com/" property="og:url"/>
<meta content="/banner.png" property="og:image"/>
<meta content="image/jpeg" property="og:image:type"/>
<meta content="400" property="og:image:width"/>
<meta content="300" property="og:image:height"/>

<link rel="apple-touch-icon" href="/banner.png" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
<link href="https://unpkg.com/@primer/css/dist/primer.css" rel="stylesheet" />
<link rel="manifest" href="/manifest.json" />
<title>SLIIT FOSS Leaderboard | The following leaderboard shows the top GitHub contributors of SLIIT FOSS</title>
<script type="module" crossorigin src="/assets/index-CZn2naZv.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-BIPY0Dyl.css">
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>
Expand Down
20 changes: 20 additions & 0 deletions dist/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"short_name": "SLIIT FOSS",
"name": "SLIIT FOSS GitHub Leaderboard",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "banner.png",
"type": "image/png",
"sizes": "400x300"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
3 changes: 3 additions & 0 deletions dist/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
30 changes: 30 additions & 0 deletions eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import js from '@eslint/js';
import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import tseslint from 'typescript-eslint';

export default tseslint.config(
{ ignores: ['dist', 'node_modules', 'build', 'coverage'] },
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': [
'warn',
{ allowConstantExport: true },
],
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-unused-vars': 'warn',
},
},
);
56 changes: 56 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="/favicon.ico?v=2" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="The following leaderboard shows the top github contributors of SLIIT FOSS. You can join this leaderboard by sending a Pull Request to any repository within SLIIT FOSS GitHub Organization. Scores will automatically updates when merging a Pull request."
/>
<meta content="SLIIT FOSS Community" name="author"/>
<meta content="sliit, sliit foss, foss, sliit foss community, github campus expert" name="keywords"/>

<meta content="SLIIT FOSS Leaderboard | The following leaderboard shows the top GitHub contributors of SLIIT FOSS" property="og:title"/>
<meta content="website" property="og:type"/>
<meta content="http://www.leaderboard.sliitfoss.com/" property="og:url"/>
<meta content="/banner.png" property="og:image"/>
<meta content="image/jpeg" property="og:image:type"/>
<meta content="400" property="og:image:width"/>
<meta content="300" property="og:image:height"/>

<link rel="apple-touch-icon" href="/banner.png" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
<link href="https://unpkg.com/@primer/css/dist/primer.css" rel="stylesheet" />
<link rel="manifest" href="/manifest.json" />
<title>SLIIT FOSS Leaderboard | The following leaderboard shows the top GitHub contributors of SLIIT FOSS</title>

<!-- Start Single Page Apps for GitHub Pages -->
<script type="text/javascript">
// Single Page Apps for GitHub Pages
// https://github.com/rafgraph/spa-github-pages
// This script checks to see if a redirect is present in the query string,
// converts it back into the correct url and adds it to the
// browser's history using window.history.replaceState(...),
// which won't cause the browser to attempt to load the new url.
(function(l) {
if (l.search[1] === '/' ) {
var decoded = l.search.slice(1).split('&').map(function(s) {
return s.replace(/~and~/g, '&')
}).join('?');
window.history.replaceState(null, null,
l.pathname.slice(0, -1) + decoded + l.hash
);
}
}(window.location))
</script>
<!-- End Single Page Apps for GitHub Pages -->
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>
104 changes: 50 additions & 54 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,61 @@
"name": "leaderboard",
"version": "0.1.0",
"private": true,
"type": "module",
"homepage": "https://leaderboard.sliitfoss.org",
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"postinstall": "husky"
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview",
"lint": "eslint .",
"prepare": "husky || true"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "1.2.34",
"@fortawesome/free-brands-svg-icons": "5.15.2",
"@fortawesome/react-fontawesome": "0.1.14",
"@primer/components": "23.0.2",
"@primer/octicons-react": "11.2.0",
"axios": "0.21.1",
"history": "4.0.0",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-query": "3.7.1",
"react-router-dom": "5.2.0",
"react-scripts": "5.0.1",
"react-toggle": "4.1.1",
"styled-components": "5.2.1",
"typescript": "4.1.3",
"use-local-storage-state": "8.0.2",
"web-vitals": "0.2.4"
"@fortawesome/fontawesome-svg-core": "^6.7.1",
"@fortawesome/free-brands-svg-icons": "^6.7.1",
"@fortawesome/react-fontawesome": "^0.2.2",
"@primer/octicons-react": "^19.12.0",
"@primer/react": "^37.31.0",
"@radix-ui/react-tooltip": "^1.0.7",
"@radix-ui/react-dropdown-menu": "^2.0.6",
"@radix-ui/react-tabs": "^1.0.4",
"@tanstack/react-query": "^5.90.2",
"axios": "^1.7.9",
"clsx": "^2.1.0",
"date-fns": "^3.3.1",
"framer-motion": "^11.0.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-hot-toast": "^2.4.1",
"react-intersection-observer": "^9.10.3",
"react-router-dom": "^6.28.0",
"react-toggle": "^4.1.3",
"recharts": "^2.15.0",
"styled-components": "^5.3.11",
"use-local-storage-state": "^19.5.0",
"web-vitals": "^3.5.2"
},
"devDependencies": {
"@types/history": "4.7.11",
"@types/node": "12.19.15",
"@types/react": "16.14.2",
"@types/react-dom": "16.9.10",
"@types/react-router-dom": "5.1.7",
"@types/react-toggle": "4.0.2",
"@types/styled-components": "5.1.26",
"eslint": "7.18.0",
"husky": "9.1.4",
"lint-staged": "10.5.3",
"prettier": "2.2.1",
"react-dark-mode-toggle": "0.0.10",
"sass": "1.32.5"
"@eslint/js": "^9.37.0",
"@types/node": "^22.10.2",
"@types/react": "^18.3.18",
"@types/react-dom": "^18.3.5",
"@types/react-toggle": "^4.0.5",
"@types/styled-components": "^5.1.34",
"@typescript-eslint/eslint-plugin": "^8.18.1",
"@typescript-eslint/parser": "^8.18.1",
"@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.17.0",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.23",
"globals": "^16.4.0",
"husky": "^9.1.7",
"lint-staged": "^15.2.11",
"prettier": "^3.4.2",
"sass": "^1.83.0",
"typescript": "^5.7.2",
"typescript-eslint": "^8.45.0",
"vite": "^6.0.3"
},
"husky": {
"hooks": {
Expand All @@ -54,23 +68,5 @@
"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [
"prettier --write"
]
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}
}
Loading