An interactive website where users can create and save their own algorithm tier lists, while displaying global average rankings from all submissions.
- Interactive Drag & Drop: Organize algorithms into S-E tiers using intuitive drag-and-drop
- Local Storage: Save your rankings locally in your browser
- Global Rankings: Submit and view aggregated rankings from all users
- Responsive Design: Works on desktop and mobile devices
- Extensible: Easy to add new algorithms by updating JSON and adding images
- Hosted on GitHub Pages
- Drag-and-drop tier list interface using @hello-pangea/dnd
- Algorithm data loaded from
public/data/algorithms.json - Markdown descriptions rendered from
public/descriptions/files
- Serverless API for submitting and aggregating rankings
- KV storage for global ranking data
- CORS configured for GitHub Pages domain
- Rate limiting and validation
cd frontend
npm install
npm run devcd worker
npm install
npm run devAutomatically deployed to GitHub Pages via GitHub Actions when pushing to main branch.
- Install Wrangler CLI:
npm install -g wrangler - Create KV namespace:
wrangler kv:namespace create TIER_LIST_KV - Update
wrangler.tomlwith your KV namespace ID - Deploy:
cd worker && wrangler deploy - Update the API URL in the frontend TierList component
- Add image to
frontend/public/images/algorithm-name.svg - Add description to
frontend/public/descriptions/algorithm-name.md - Update
frontend/public/data/algorithms.jsonwith new entry - Update the valid algorithms list in
worker/src/index.js
├── frontend/ # React frontend
│ ├── public/
│ │ ├── data/
│ │ │ └── algorithms.json
│ │ ├── descriptions/ # Markdown descriptions
│ │ └── images/ # Algorithm images
│ └── src/
│ └── components/
├── worker/ # Cloudflare Worker API
│ └── src/
│ └── index.js
└── .github/
└── workflows/
└── deploy.yml # GitHub Pages deployment
- Quicksort
- Merge Sort
- Heapsort
- Bubble Sort
- Dijkstra's Algorithm
- A* Search
- Breadth-First Search
- Depth-First Search