๐บ๐ธ English โข ๐จ๐ณ ไธญๆ
๐ Kaito Data Renderer is a specialized data visualization platform for displaying Kaito Pre-TGE hot token mention rankings. Using modern web technology stack, the platform provides intuitive tables and charts to real-time display token social media mentions and ranking trend changes across different time periods, helping users quickly understand market hotspots and token popularity dynamics.
- ๐ Real-time Leaderboard - Display token mention rankings across different time periods
- ๐ Multi-temporal Dimensions - Support data viewing for 24h, 48h, 7d, 30d, 3m, 6m, 12m
- ๐ Smart Search - Support quick search by token name or symbol with real-time filtering
- ๐ Trend Analysis - Display token mention trends and percentage changes
- ๐ฑ Responsive Design - Perfect adaptation for desktop and mobile devices
- ๐จ Interactive Sorting - Click table headers to sort by different fields
- ๐ Stacked Area Chart - Use ECharts to display time-series changes of token mentions
- ๐ฏ Configurable Display - Support showing top 10/15/20/25/50 tokens or all tokens
- ๐ Time Range Selection - Support data display for recent 7/14/30/60/90 days or all time
- ๐จ Interactive Charts - Support zoom, pan, legend interaction and other functions
- ๐ State Reset - One-click reset chart view state
- ๐ Data Statistics - Display data range, days, token count and other statistics
- ๐ JSON Data Source - Structured token mention data with historical data backtracking
- ๐ Smart Caching - Browser local cache to improve data loading speed
- ๐พ Dynamic Loading - Load data on demand for different time periods, reducing bandwidth consumption
- ๐ Real-time Filtering - Client-side data filtering and search with fast response
- ๐ก๏ธ Data Validation - Complete data type checking and exception handling
- ๐ Dark Mode - Support light/dark theme switching
- ๐ฑ Mobile First - Responsive design with perfect mobile device support
- โก Performance Optimization - Virtual scrolling, lazy loading and other performance optimizations
- ๐ Smart Notifications - Friendly operation feedback and status prompts
- ๐ฏ Accessibility - Follow WCAG accessibility design standards
- ๐ Bilingual Support - Complete Chinese and English internationalization
- ๐ Smart Language Detection - Auto-detect browser language and save user preference to localStorage
- โก Seamless Switching - Dynamic language switching without page refresh
- ๐ Full Coverage - All interface texts including tables, charts, notifications are internationalized
- ๐ Date Localization - Automatic date format adjustment based on language
- ๐ป Node.js 18+ (recommended 20+)
- ๐ฆ pnpm 8+ (recommended) or npm/yarn
# ๐ฅ Clone project
git clone https://github.com/fanyilun0/kaito-data-renderer.git
cd kaito-data-renderer
# ๐ฆ Install dependencies
pnpm install
# ๐ Start development server (http://localhost:3333)
pnpm dev
# ๐ Open in browser
open http://localhost:3333# ๐๏ธ Build for production
pnpm build
# ๐ Preview build
pnpm preview
# ๐ Deploy to Vercel (requires Vercel CLI)
vercel deploy# ๐งช Run unit tests
pnpm test
# ๐ Code linting
pnpm lint
# ๐ง TypeScript type check
pnpm typecheck
# ๐ฆ Dependency update check
pnpm uppublic/data/
โโโ kaito_data_20250418_24h.json # 24h data
โโโ kaito_data_20250418_48h.json # 48h data
โโโ kaito_data_20250418_7d.json # 7d data
โโโ kaito_data_20250418_30d.json # 30d data
โโโ kaito_data_20250418_3m.json # 3m data
โโโ kaito_data_20250418_6m.json # 6m data
โโโ kaito_data_20250418_12m.json # 12m data
โโโ ... # Other date data
interface TickerItem {
ticker_id: string // Unique identifier
ticker: string // Token symbol (e.g., "BTC", "ETH")
fullname: string // Token full name (e.g., "Bitcoin", "Ethereum")
logo?: string // Token icon URL
rank: number // Current ranking
// Mention percentages for different time periods
last_24h_mindshare: number
last_48h_mindshare: number
last_7d_mindshare: number
last_30d_mindshare: number
last_3m_mindshare: number
last_6m_mindshare: number
last_12m_mindshare: number
// Change ratios for different time periods
change_24h_ratio: number
change_48h_ratio: number
change_7d_ratio: number
change_30d_ratio: number
change_3m_ratio: number
change_6m_ratio: number
change_12m_ratio: number
}{
"resultWithTicker": [
{
"ticker_id": "bitcoin",
"ticker": "BTC",
"fullname": "Bitcoin",
"logo": "https://example.com/btc-logo.png",
"rank": 1,
"last_24h_mindshare": 25.5,
"change_24h_ratio": 1.2
// ... other fields
}
// ... more token data
]
}- Smart Search Box - Real-time search for token names and symbols
- Date Selector - Select data for specific dates
- Time Period Switch - Dynamically switch between different time dimensions
- Ranking Display - Clear numerical ranking identification
- Token Information - Symbol, full name and icon display
- Mention Data - Current time period mention percentage
- Trend Indicators - Color-coded rise/fall change rates
- Interactive Sorting - Click table headers to sort by different fields
- Responsive Layout - Adaptive to desktop and mobile devices
- Loading Animation - Elegant data loading states
- Error Handling - Friendly error message prompts
- Performance Optimization - Virtual scrolling for large data sets
- Token Count Selection - Top 10/15/20/25/50 or all tokens
- Time Range Selection - Recent 7/14/30/60/90 days or all time
- Chart Type - Stacked area chart clearly showing trend changes
- Zoom & Pan - Mouse or touch operations for chart interaction
- Legend Control - Click legend to show/hide specific tokens
- State Reset - One-click reset chart to initial state
- Responsive Chart - Adaptive to different screen sizes
- Data Range Display - Current displayed date range
- Day Count - Actual included data days
- Token Count - Currently displayed token count
- Total Data - Available historical data total
- AppLayout - Unified page layout container
- AppHeader - Page title and navigation
- AppSelect - Unified style selector
- TickerTableHeader - Table header component
- TickerTableRow - Table row component
- LanguageSwitch - Language switching component
- โ Support Chinese (zh) and English (en) languages
- โ Language preference auto-saved to localStorage
- โ Auto-detect browser language for default language
- โ Dynamic language switching without page refresh
- โ Full interface text internationalization
- โ Date format adjustment based on language
src/i18n/
โโโ index.ts # i18n configuration and utility functions
โโโ locales/
โ โโโ en.json # English translations
โ โโโ zh.json # Chinese translations
Click the language selector in the page header navigation to switch languages:
- ไธญๆ (Chinese)
- English
- Add English translation in
locales/en.json - Add corresponding Chinese translation in
locales/zh.json - Use
t('key')function in components
Example:
<script setup>
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
</script>
<template>
<div>{{ t('table.title') }}</div>
<div>{{ t('notification.loadSuccess', { count: 5 }) }}</div>
</template>-
Connect Repository
# Connect GitHub repository to Vercel vercel --prod -
Automatic Deployment
- Push to
mainbranch triggers automatic deployment - Support preview deployments and production deployments
- Built-in CDN and edge function optimization
- Push to
-
Analytics Configuration
- Enable Web Analytics in Vercel console
- App integrated with
@vercel/analytics/vuecomponent - Automatically collect visit statistics and performance data
# Netlify deployment
npm run build
# Upload dist folder to Netlify
# GitHub Pages deployment
npm run build
# Configure GitHub Actions for automatic deployment
# Self-hosted server
npm run build
# Deploy dist folder to web server# Python data processing script
python src/data_process.py
# Generated file format
kaito_data_{YYYYMMDD}_{duration}.json- Daily Updates - Generate new data files daily
- Multi-period Coverage - Cover all time dimensions from 24 hours to annual
- Historical Data Retention - Complete preservation of historical data for trend analysis
kaito-data-renderer/
โโโ public/
โ โโโ data/ # Static data files
โ โ โโโ favicon.svg # Website icon
โโโ src/
โ โโโ components/ # Reusable components
โ โ โโโ AppHeader.vue # Page header
โ โ โโโ AppLayout.vue # Layout container
โ โ โโโ AppSelect.vue # Selector component
โ โ โโโ LanguageSwitch.vue # Language switcher
โ โ โโโ TickerTableHeader.vue # Table header
โ โ โโโ TickerTableRow.vue # Table row
โ โโโ composables/ # Composable functions
โ โ โโโ chartConfig.ts # Chart configuration
โ โ โโโ dark.ts # Dark mode
โ โ โโโ index.ts # Unified export
โ โ โโโ kaitoDataProcessor.ts # Data processing
โ โโโ i18n/ # Internationalization
โ โ โโโ index.ts # i18n configuration
โ โ โโโ locales/ # Translation files
โ โ โโโ en.json # English translations
โ โ โโโ zh.json # Chinese translations
โ โโโ pages/ # Page components
โ โ โโโ index.vue # Table view
โ โ โโโ chart-stack.vue # Chart view
โ โโโ styles/
โ โ โโโ main.css # Global styles
โ โโโ App.vue # Root component
โ โโโ main.ts # Application entry
โโโ test/ # Test files
โโโ README.md # Project documentation
๐ This project is licensed under the MIT License
Welcome to submit Issues and Pull Requests!
- Fork the project
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Create Pull Request
- Use TypeScript for type-safe development
- Follow ESLint code standards
- Write unit tests to cover new features
- Update relevant documentation
- ๐ Thanks to Anthony Fu for providing the Vitesse template
- ๐ Thanks to Kaito for data support
โญ If this project helps you, please give it a star!