Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Frontend - Open LLM Leaderboard π
React interface for exploring and comparing open-source language models.
π Architecture
flowchart TD
Client(["User Browser"]) --> Components["React Components"]
subgraph Frontend
Components --> Context["Context Layer<br>β’ LeaderboardContext<br>β’ Global State"]
API["API Layer<br>β’ /api/leaderboard/formatted<br>β’ TanStack Query"] --> |Data Feed| Context
Context --> Hooks["Hooks Layer<br>β’ Data Processing<br>β’ Filtering<br>β’ Caching"]
Hooks --> Features["Features<br>β’ Table Management<br>β’ Search & Filters<br>β’ Display Options"]
Features --> Cache["Cache Layer<br>β’ LocalStorage<br>β’ URL State"]
end
API --> Backend["Backend Server"]
style Backend fill:#f96,stroke:#333,stroke-width:2px
β¨ Core Features
- π Search & Filters: Real-time filtering, regex search, advanced filters
- π Data Visualization: Interactive table, customizable columns, sorting
- π State Management: URL sync, client-side caching (5min TTL)
- π± Responsive Design: Mobile-friendly, dark/light themes
π Tech Stack
- React 18 + Material-UI
- TanStack Query & Table
- React Router v6
π Project Structure
src/
βββ pages/
β βββ LeaderboardPage/
β βββ components/ # UI Components
β βββ context/ # Global State
β βββ hooks/ # Data Processing
βββ components/ # Shared Components
βββ utils/ # Helper Functions
π Development
# Install dependencies
npm install
# Start development server
npm start
# Production build
npm run build
π§ Environment Variables
# API Configuration
REACT_APP_API_URL=http://localhost:8000
REACT_APP_CACHE_DURATION=300000 # 5 minutes
π Data Flow
- API fetches leaderboard data from backend
- Context stores and manages global state
- Hooks handle data processing and filtering
- Components render based on processed data
- Cache maintains user preferences and URL state