College Pilot
대학 후보 목록을 한 곳으로 좁혀 가는 데이터 기반 PWA입니다. 캠퍼스마다 방문 가이드가 붙고, 학자금 지원 계산기는 까다로운 경우(부모가 이혼한 경우의 소득 산정 등)까지 처리하며, 나란히 놓인 비교표가 숫자를 한자리에 모아 줍니다. 결정 보드는 캠퍼스 투어 당일에 매긴 점수를 순위가 매겨진 최종 후보로 정리해 줍니다.
내부 구조
프로젝트 README(영어).
A data-driven PWA for narrowing a college list to one: a full campus-visit guide per school, a financial-aid estimator with divorced-parent handling, a side-by-side comparison table, and a Decision Board that turns tour-day ratings into a ranked shortlist.
Live site: https://pfeilbr.github.io/college-pilot/
Schools covered
- University of Delaware (Newark, DE)
- Penn State — University Park (State College, PA)
- University of Pittsburgh (Pittsburgh, PA)
- Rutgers University–New Brunswick (New Brunswick, NJ)
- Ohio State University (Columbus, OH)
- Michigan State University (East Lansing, MI)
- Indiana University Bloomington (Bloomington, IN)
- University of South Carolina (Columbia, SC)
- UMass Amherst (Amherst, MA)
- Fordham University (New York, NY)
- Northeastern University (Boston, MA)
- Tufts University (Medford/Somerville, MA)
- Boston University (Boston, MA)
The five Big Ten / SEC business flagships (Rutgers, Ohio State, Michigan State, Indiana, South Carolina) were added as “likely” peers to the two the student favors — Penn State and Pitt — and are surfaced in a Recommended matches section on the hub.
Features
- 🏠 Hub with school cards + a 13-metric comparison table
- ⭐ Decision Board — per-school verdicts (shortlist/undecided/pass), 8-category star ratings, and visit notes, saved in localStorage and ranked on the hub
- 💰 Aid Estimator — income brackets × FAFSA-only vs CSS-both-parents rules, net-price planning ranges sorted cheapest-first, PA grant portability notes
- 📊 Per-school guides with identical sections for apples-to-apples comparison
- 💼 Business-program deep-dives with hiring rates and salaries
- 🗣️ Real student sentiment from archived Reddit threads, clearly labeled
- 📱 Responsive PWA: home-screen install, offline support, in-app update button
Architecture (data-driven by design)
index.html hub (Decision Board, Aid Estimator, cards, compare)
school.html empty shell — renders any school from its data file
app.js renderer + shared UI (drawer, ratings, spy, tooltips)
styles.css the whole design system (per-school color via --sc)
data/<id>.js one authored guide per school ← add schools here
data/generated/ machine-fetched official stats ← refresh via script
scripts/ deterministic data fetchers (no LLM needed)
Each data/<id>.js registers window.SCHOOLS['<id>'] with: identity/colors,
hero stats, hub-card fields, contact links, and a sections array of
{id, nav, kicker, title, lead, html} — the renderer builds the page and
navigation from whatever sections exist, so schools can differ freely.
Adding a school
- Add its IPEDS UnitID to
scripts/fetch_school_data.py(find IDs at nces.ed.gov/collegenavigator) and run the script — official stats land indata/generated/scorecard.jsondeterministically, no AI tokens needed. - Copy an existing
data/*.jsas a template; fill in the editorial sections using the generated stats + the school’s official pages. - Add the id to
window.SCHOOL_ORDER(indata/delaware.js), add a<script>tag in both HTML files andsw.js’s asset list, and add a row to the Aid EstimatorDATAarray inindex.html.
Refreshing stats (deterministic, free)
python3 scripts/fetch_school_data.py # DEMO_KEY, rate-limited
API_KEY=... python3 scripts/fetch_school_data.py # free key from api.data.gov
Pulls acceptance rate, SAT bands, enrollment, demographics, tuition, net price by income bracket, debt, graduation/retention, and 10-year earnings from the U.S. Dept. of Education College Scorecard API for every school in the list.
Feature roadmap (researched against Niche, BigFuture, Scoir, Corsava, CollegeVine, Naviance)
- Weighted scoring matrix with sliders (re-rank live as priorities change)
- Corsava-style preference card sort (Must Have / Nice / Don’t Care / No Way) that seeds the matrix weights
- Reach/target/safety badges + Naviance-style scattergram from stored GPA/SAT vs. each school’s middle-50%
- Head-to-head elimination rounds with recorded “why” lines
- Visit-day journal with photos; student vs. parent dual gut-scores
- Deadline countdown board; printable decision report export
Run locally
python3 -m http.server 8000
# open http://localhost:8000
Data compiled July 2026 from public sources (Common Data Sets, official admissions/aid pages, College Scorecard, U.S. News, Niche, Pullpush Reddit archive). Verify current figures with official sources before decisions.