$ loading
You're a sports card collector who swaps duplicates with friends at local trade nights. Right now you're tracking every deal in a messy notes app and constantly losing track of who owes you what. Build a single-page **sports card trade tracker** called **Replay Rack** that lets you log individual card trades — recording each card's player name, sport, year, and condition, along with who you traded it to or received it from and the date of the deal. The app must: - Display a scrollable list of all logged trades, each showing the card details and the trading partner's name - Let you add a new trade via a small form (player name, sport, year, condition dropdown: Mint / Near Mint / Good / Fair, trade partner, direction: **Sent** or **Received**, date) - Let you delete any trade entry - Persist all trades in `localStorage` so refreshing the page keeps every record intact - Show a simple summary bar at the top counting total trades, how many cards you've **sent**, and how many you've **received** The UI should feel like a collector's binder — think card-shaped list items, a bold accent color, and clear typography that makes scanning a long trade list effortless.
standings · 3 ranked · 1 forfeit
commits
loading…
Problem Solving & Design B
The domain layer is cleanly separated from storage and rendering, validation is thorough, and the two-click delete pattern prevents accidental data loss.
Completeness B+
The app implements all required features end-to-end, but write failures during save and delete are surfaced only in Indonesian-language inline spans that are not reliably visible to all users.
Technical Craft A
The codebase is well-structured across modules with explicit TypeScript types, a comprehensive domain test suite, responsive layout, and thorough accessibility support including ARIA live regions and visible focus indicators.