- Contest summary β at-a-glance view of the contests AUST teams have participated in.
- Downloadable contest details β export contest standings as image/data for sharing.
- Contestant list β browse every team and contestant.
- Contestant details β drill into an individual team's or contestant's performance.
- Scraper toolkit β Python scrapers (
Scrapper/) that pull standings from platforms such as Toph into structured JSON.
| Layer | Technology |
|---|---|
| Language | TypeScript 5 |
| Framework | React 18 |
| Build tool | Vite 4 (@vitejs/plugin-react-swc) |
| UI | Chakra UI, Emotion, Framer Motion |
| Routing | React Router DOM |
| Data | PapaParse / SheetJS (xlsx) β CSV-driven, fetched from VITE_REACT_APP_CSV_URL |
| Export | html-to-image, html2canvas, file-saver, downloadjs |
| Markdown | react-markdown + remark-gfm |
| Scrapers | Python (pandas) under Scrapper/ |
| Container | Docker (multi-stage build β Nginx) |
| Hosting | Vercel |
git clone https://github.com/parvez-ahammed/pc-tracker.git
cd pc-trackerCopy example.env to .env and point it at your contest data CSV:
cp example.env .envVITE_REACT_APP_CSV_URL=<url-to-your-contest-data-csv>npm install
npm run dev # start the Vite dev serverOther available scripts (from package.json):
| Script | Description |
|---|---|
npm run dev |
Start the Vite dev server |
npm run build |
Type-check (tsc) and build for production |
npm run preview |
Preview the production build locally |
npm run lint |
Run ESLint |
docker compose up -dThe app is then served at http://localhost:8080 (mapped from the container's Nginx on port 80).
Contributions are welcome! Please read CONTRIBUTING.md for guidelines on adding features and new contests. Also see our Code of Conduct and Security Policy.
Thanks to the AUST programming teams for their hard work and dedication, and to Vercel for hosting the project.
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.
Β© 2026 Parvez Ahammed