vccs
Vue 3용 차트 컴포넌트 모음, Recharts에서 포팅
버몬트 고용 구조·임금 수준·기업 수요·교육 경로·VSCS 프로그램 연계 및 지역별 차이
Vermont employment structure, wage quality, employer demand, education pathways, VSCS program alignment and regional variation.
데이터JavaScript · PythonGitHub @samtoriola온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Next.js dashboard covering all eight research questions from the Strada / VSCS
Vermont Labor Market Analysis scope of work.
Then open http://localhost:3000.
The app is entirely static — every figure is imported from JSON at build time, so
there are no environment variables, no service accounts and no runtime queries.
Or push to GitHub and import the repo at vercel.com/new. Framework preset is
detected automatically (Next.js); no build settings need changing.README 전문 보기 ↗Next.js dashboard covering all eight research questions from the Strada / VSCS Vermont Labor Market Analysis scope of work.
npm install
npm run dev
Then open http://localhost:3000.
The app is entirely static — every figure is imported from JSON at build time, so there are no environment variables, no service accounts and no runtime queries.
npx vercel
Or push to GitHub and import the repo at vercel.com/new. Framework preset is detected automatically (Next.js); no build settings need changing.
app/
layout.js fonts + metadata
page.js renders <Dashboard/>
globals.css design tokens, light + dark, all component styles
components/
Dashboard.js tab shell, living-wage state, methods footer
Tooltip.js shared hover/focus tooltip (React context)
charts.js RankedBars, BoxPlot, StackedRows, Dumbbell, TrendLine,
Scatter, GroupedBars, BoxLegend
ui.js Panel, Answer, Callout, QHead, Legend, Tiles, Table, LwPicker
views/ Overview + Q1…Q8, one file per research question
lib/
data.js imports the JSON, exports LC / PCT / DATA / SOW + helpers
format.js fmt, money, pct, niceMax, fmtVal
data/
cps.json CPS microdata aggregates, Vermont 2021–2025
lightcast.json occupation, industry, postings rollups
percentiles.json wage percentile distributions
sow.json Q5 opportunity index, Q6 VSCS alignment, Q7 regions
The JSON files are build outputs, not hand-edited. The pipeline lives in scripts/
and queries BigQuery (strada-data-lab-c9d1) plus the Lightcast CSV exports in
G:\My Drive\Vermont Labor Market Analysis:
| Script | Produces |
|---|---|
get_lw.py | vt_living_wage.csv — MIT benchmarks (committed; rarely re-run) |
cps_vt_extract.py → make_js.py | cps.json — CPS Vermont aggregates |
build.py | lightcast.json — occupation / industry / postings rollups |
build_pct.py | percentiles.json — wage percentile distributions |
build_sow.py | sow.json — opportunity index, VSCS alignment, regions |
mk_app_data.py | copies all four into data/ |
verify_app.py | structural check of the app (stands in for next build) |
See scripts/README.md for the exact run order, BigQuery auth
setup (including the --disable-quota-project flag you must use), the inputs each script
expects, and the analytical decisions baked into them — the openings divisor, the
living-wage default, the Q5 composite, and the Q6 allocation assumption.
Re-run them, then commit the refreshed JSON. Nothing in the app queries BigQuery directly.
2021 - 2025 Openings
divided by 4. If that window is meant inclusively as five years, every openings
number scales down by a fifth.The in-app methods footer carries the full set of caveats, including the CIP-to-SOC allocation assumption behind Q6 and the composite-index derivation behind Q5.