尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
Wisconsin Eats: free iPhone & iPad guide to Wisconsin restaurants, fish fries, supper clubs and custard
翻譯準備中
正在載入完整 README。
檢視完整 README ↗Two things built from one pipeline:
docs/, live at https://wisconsin.eatsranked.com. See "The app" below.site/index.html (its JSON is git-ignored because it carries Google 2021-derived ratings; rebuild it with the pipeline). It reads site/wisconsin.json (every place, columnar), then lazily loads site/wi_shapes.json (state and county outlines, the first time the Map opens) and site/wi_detail.json (honors text, license numbers and inspection breakdowns, in idle time or when a drawer opens).Built separately from chi-eats/ (the Chicago/Illinois version), reusing its structure, UX and rules. Nothing here reads chi-eats at run time: data/chain_auv.json is a copy of its chain sales list, and the sales model's exponent (0.764) is the one fit on Chicago's published sales.
| Path | What |
|---|---|
project.yml | XcodeGen spec: app WisconsinEats (bundle com.wisconsineats.ios, iOS 18, iPhone + iPad), tests WisconsinEatsTests |
WisconsinEats/ | SwiftUI app. Guides (Friday Fish Fry, Supper Clubs, Frozen Custard, Wisconsin Icons, Oldest Places, Dane County Inspections, Near Me, All), search by name/town/street/dish, filters, a clustered map, saved places, About with sources and licenses. iPhone: tabs; iPad: split view |
WisconsinEats/Resources/places.json | The whole data set, bundled (about 3.8 MB), copied from data/app/places.json |
WisconsinEatsTests/ | Search, guides, sorting, filters, saved places, inspection and match-rate copy, the bundled file |
docs/explore/ | The web app: search all restaurants, the same guides and filters, a map and place details (scripts/explore.js) |
docs/ | The website (https://wisconsin.eatsranked.com/, GitHub Pages; hub: eatsranked.com): landing page, three statewide guides, 13 city pages, privacy, terms, 404, sitemap. Generated by scripts/make-site.py |
playbook/ | Strategy, naming, App Store listing (ASO), App Store Connect, site and email runbook, sources, launch checklist |
scripts/ | make-brand.swift (icon, og.png, favicons), make-site.py (the website), capture-screenshots.sh (App Store shots) |
What the app does not contain: any Google-derived data (ratings, reviews, price levels, review mentions). Each place opens Apple Maps' own place card (mapItemDetailSheet) for live ratings, hours and photos. There is no backend, no account, no analytics and no ads. Location only sorts lists on the device. Core Spotlight indexes the hand-checked places.
brew install xcodegen
xcodegen generate && open WisconsinEats.xcodeproj
cd pipeline && WI_APP=1 ../.venv/bin/python wisconsin.py && cd .. && cp data/app/places.json WisconsinEats/Resources/ # refresh the data
.venv/bin/python scripts/make-site.py # refresh the website
What's in a guide:
data/curated.json or data/research/app/*.json with a 2025–2026 source: its own site or menu, a dated news story or its Travel Wisconsin listing. Records hold facts only: the fish, days, sides, founding year and a one-line note in our words.data/wi/calibration_app.json). Meta listings with confidence of 0.95 or more matched a licensed business 79% of the time in Milwaukee and 75% in Dane County. Listings from 0.90 to 0.95 matched 38% and 48%. BrightQuery and lower-confidence Meta listings matched 22–31%, so they are dropped.python3 -m venv .venv && .venv/bin/pip install pandas pyarrow rapidfuzz requests shapely duckdb playwright
.venv/bin/python pipeline/fetch_overture.py # Overture places + state/county outlines (lakes cut out) -> data/wi (about a minute)
.venv/bin/python pipeline/fetch_extras.py # Milwaukee/Dane outlines for calibration, Dane County address points
curl -o data/meta-Wisconsin.json.gz https://mcauleylab.ucsd.edu/public_datasets/gdrive/googlelocal/meta-Wisconsin.json.gz
curl -o data/review-Wisconsin.json.gz https://mcauleylab.ucsd.edu/public_datasets/gdrive/googlelocal/review-Wisconsin.json.gz # 780 MB
bash data/raw/official/_scripts/download_all.sh # Milwaukee licenses, Madison & Dane County establishments/inspections/violations
cd pipeline
../.venv/bin/python reviews.py # fish fry / curds / custard / supper club mentions in 10.2M reviews -> data/wi/review_signals.parquet
../.venv/bin/python listings.py # clean Overture listings, match Google 2021 -> data/wi/stage1.pkl
../.venv/bin/python calibrate.py # match rates against the official lists -> data/wi/calibration.json
../.venv/bin/python wisconsin.py # keep rule, license lists, dedupe, brands, tags, honors, inspections, estimates -> site/*.json
fetch_extras.py writes data/wi/addresses_dane.parquet (Overture address points, used to place Dane County license records, which have no coordinates) and data/wi/calib_areas.json (Milwaukee city limits and the Dane County outline). WI_SITE=/some/dir writes the site JSON elsewhere for a side-by-side test.
以上為 README 的開頭部分。其餘內容請閱讀原文。 檢視完整 README ↗