Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| # Frontend - Open LLM Leaderboard π | |
| React interface for exploring and comparing open-source language models. | |
| ## π Architecture | |
| ```mermaid | |
| 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 | |
| ```bash | |
| # Install dependencies | |
| npm install | |
| # Start development server | |
| npm start | |
| # Production build | |
| npm run build | |
| ``` | |
| ## π§ Environment Variables | |
| ```env | |
| # API Configuration | |
| REACT_APP_API_URL=http://localhost:8000 | |
| REACT_APP_CACHE_DURATION=300000 # 5 minutes | |
| ``` | |
| ## π Data Flow | |
| 1. API fetches leaderboard data from backend | |
| 2. Context stores and manages global state | |
| 3. Hooks handle data processing and filtering | |
| 4. Components render based on processed data | |
| 5. Cache maintains user preferences and URL state | |