vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A Node.js web application that displays real-time commodity trading data for Star Citizen, sourced from the UEX Corp API. • 📊 Real-time commodity prices from UEX Corp API • 🔄 Auto-refresh data every minute (configurable) • 💰 Profit calculations for all trading routes • 🗺️ System/terminal mapping with location codes • 📱 Touch Portal interface for custom SCU capacities • 🎨 Dark theme optimized for readability • 📝 Comprehensive logging with Winston • 🛡️ Robust error handling with retry logic • ⚡ Production-ready code with tests • Node.js 20+ (tested with v20.19.2) • npmREADME 전문 보기 ↗
A Node.js web application that displays real-time commodity trading data for Star Citizen, sourced from the UEX Corp API.
git clone https://github.com/dodoslavn/StarCitizen_Trading.git
cd StarCitizen_Trading/StarCitizen_Trading
npm install
cp config.json.example config.json
Edit config.json with your settings (see Configuration section)
Start the server:
npm start
The server will be available at http://localhost:3000 (or your configured port).
Edit config.json to customize the application:
{
"http_server": {
"ip_listen": "127.0.0.1",
"port_listen": "3000"
},
"api": {
"base_url": "https://api.uexcorp.space/2.0",
"endpoints": {
"prices_all": "/commodities_prices_all",
"solar_systems_all": "/star_systems",
"terminals_all": "/terminals"
},
"timeout": 10000,
"retries": 3
},
"cache": {
"refresh_interval_minutes": 1
},
"logging": {
"level": "info",
"file": "trading.log",
"console": true
}
}
| Option | Description | Default |
|---|---|---|
http_server.ip_listen | IP address to bind to | 127.0.0.1 |
http_server.port_listen | Port number | 3000 |
api.timeout | API request timeout (ms) | 10000 |
api.retries | Number of retry attempts | 3 |
cache.refresh_interval_minutes | Data refresh frequency | 1 |
cache.stale_after_minutes | Age (minutes) after which a terminal's price data is grayed out as outdated | 1440 |
cache.very_stale_after_minutes | Age (minutes) after which a terminal's price data is grayed out further as very outdated | 4320 |
logging.level | Log level (error/warn/info/debug) | info |
logging.file | Log file path | trading.log |
logging.console | Enable console logging | true |
Navigate to http://localhost:3000 to see:
/): All commodities with buy/sell prices and profit calculations/about): Information about the website/touchportal/[scu]/[system]): Optimized for specific cargo capacities/refresh): Manually trigger data refresh| Endpoint | Description |
|---|---|
/ | Main trading data page |
/about | About page |
/default.css | Stylesheet |
/favicon.ico | Favicon |
/refresh | Trigger manual data refresh |
/touchportal/[scu] | Touch portal for specific SCU |
/touchportal/[scu]/[system] | Touch portal filtered by system |
npm test
npm run lint # Check for issues
npm run lint:fix # Auto-fix issues
npm run dev
The commodity table shows an estimated (or, once scanned, confirmed) max SCU capacity per terminal. Confirmed values come from a separate one-shot script that scans UEX's price history:
npm run scan-inventory
It writes max_inventory.json, which the server reads on startup. This is
run daily by the Scan max inventory GitHub Action (see
.github/workflows/scan-max-inventory.yml), which commits the updated file
back to master and thereby triggers a redeploy. The script always does a
full pass (~2-3 minutes) and exits non-zero if too many per-pair fetches
fail during the run, so an incomplete file never gets committed.
StarCitizen_Trading/
├── server.js # Main server entry point
├── scan-max-inventory.js # Standalone max-inventory history scan (see above)
├── config.js # Shared config.json loader
├── functions.js # Core business logic and HTTP handlers
├── html.js # HTML generation and rendering
├── dataCache.js # Data caching management
├── logger.js # Winston logger configuration
├── favicon.js # Base64 encoded favicon
├── config.json # Configuration (create from .example)
├── config.json.example # Example configuration
├── max_inventory.json # Output of scan-max-inventory.js
├── package.json # Dependencies and scripts
├── .eslintrc.json # ESLint configuration
└── tests/ # Unit tests
├── dataCache.test.js
└── html.test.js
Manages in-memory caching of:
Core business logic:
Rendering engine for:
This version includes major refactoring and production-ready improvements:
All trading data is sourced from the UEX Corp API, a community-driven Star Citizen resource.
See LICENSE for details.