Build a Real-time Stock Tracker
60 min read
WebSocketREST APIDebouncingRate LimitingExponential BackoffVanilla JS
Your Assignment: Real-time Stock/Crypto Tracker
Build a vanilla JavaScript application that displays real-time stock or cryptocurrency prices using a public WebSocket or REST API.
Requirements
- Real-time Data: Connect to a public API (CoinGecko, Alpha Vantage, or similar) to fetch live price data.
- Search with Debouncing: Implement a search bar where users can filter stocks/coins. Every keystroke must NOT trigger an API call — implement debouncing.
- Rate Limiting Handling: What happens when the API blocks you? Implement retry logic with exponential backoff.
- No Frameworks: Vanilla JS only. No React, Vue, or Angular.
- Performance: Use DocumentFragment for DOM updates. Implement virtual scrolling if displaying 100+ items.
Evaluation Criteria
- Proper error handling (network failures, API errors)
- Debounce implementation (not from a library)
- Clean separation of concerns (API layer, DOM layer, State layer)
- Rate limit handling with exponential backoff