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 dev
cd worker
npm install
npm run dev
Automatically 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.toml
with 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.json
with 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