Extracted the restaurant data from the HTML file and put it into a stand alone JSON file. Updated ReadMe with information on how to pull updated information for future events.

This commit is contained in:
2026-02-24 11:12:10 -08:00
parent 7e74184d37
commit 34b54867a0
3 changed files with 6820 additions and 13 deletions

6798
2026-restaurants.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
# Inlander Restaurant Week Picker # Inlander Restaurant Week Picker
A single-file web app for browsing, marking favorites, and randomly selecting a restaurant during [Inlander Restaurant Week](https://inlanderrestaurantweek.com/). A web app for browsing, marking favorites, and randomly selecting a restaurant during [Inlander Restaurant Week](https://inlanderrestaurantweek.com/).
## Overview ## Overview
@@ -19,11 +19,11 @@ Each couple gets their own set of interest checkboxes ("His Picks" / "Her Picks"
- **Clear Filters** — one-click button to reset all search and filter fields back to their defaults - **Clear Filters** — one-click button to reset all search and filter fields back to their defaults
- **Reset Selected** — clears all saved picks (with a confirmation prompt) so you can start fresh - **Reset Selected** — clears all saved picks (with a confirmation prompt) so you can start fresh
- **Mobile-friendly** — responsive single-panel layout on small screens; the list and detail views swap in place, with a Back button to return to the list - **Mobile-friendly** — responsive single-panel layout on small screens; the list and detail views swap in place, with a Back button to return to the list
- **No dependencies** — pure HTML, CSS, and vanilla JavaScript; open the file directly in any browser - **No dependencies** — pure HTML, CSS, and vanilla JavaScript; requires a local web server (see Usage)
## Usage ## Usage
1. Open `restaurant-picker.html` in a web browser (no server required). 1. Serve the folder from a web server and open `restaurant-picker.html` in a browser. (The app fetches `2026-restaurants.json` at runtime, so it cannot be opened directly as a local `file://` URL — a server is required. A simple option is the VS Code Live Server extension, or `npx serve .` in the project folder.)
2. Browse the restaurant list or use the toolbar filters to narrow choices. 2. Browse the restaurant list or use the toolbar filters to narrow choices.
3. Use the **First Course**, **Second Course**, or **Third Course** buttons to browse all dishes for a given course and jump to any restaurant that interests you. 3. Use the **First Course**, **Second Course**, or **Third Course** buttons to browse all dishes for a given course and jump to any restaurant that interests you.
4. Check the **You** and **Wife** boxes on any restaurant you're each interested in. 4. Check the **You** and **Wife** boxes on any restaurant you're each interested in.
@@ -44,16 +44,19 @@ Each couple gets their own set of interest checkboxes ("His Picks" / "Her Picks"
## File Structure ## File Structure
``` ```
restaurant-picker.html # The entire app — HTML, CSS, and JS in one file restaurant-picker.html # App shell — HTML, CSS, and JS logic
2026-restaurants.json # Restaurant data for the 2026 event (loaded at runtime via fetch)
LICENSE LICENSE
README.md README.md
``` ```
Each year, create a new `YYYY-restaurants.json` and update the filename in the `fetch()` call near the bottom of `restaurant-picker.html`.
--- ---
## Data Entry Guide ## Data Entry Guide
Each year's restaurant data is stored as a JavaScript array (`const RESTAURANTS = [...]`) inline in `restaurant-picker.html`. The source data comes from the [IRW restaurant listing pages](https://inlanderrestaurantweek.com/restaurants/). This section covers the data schema and common pitfalls to avoid when entering or updating restaurant records. Each year's restaurant data is stored as a JSON file (`YYYY-restaurants.json`) loaded by `restaurant-picker.html` at runtime. The source data comes from the [IRW restaurant listing pages](https://inlanderrestaurantweek.com/restaurants/). This section covers the data schema and common pitfalls to avoid when entering or updating restaurant records.
### Restaurant Object Schema ### Restaurant Object Schema
@@ -151,6 +154,6 @@ Signs that an entry has this problem:
### Special Characters ### Special Characters
The data lives inside a JavaScript string, so be careful with quotation marks inside descriptions. Use a **curly/smart right double-quote** (`"`, U+201D) for inch marks (e.g. `7" pizza`) rather than a straight ASCII `"`, which would break the JS string delimiters. Em dashes (``) and curly apostrophes (`'`) from the source website copy fine as-is. The data lives in a JSON file, so be careful with quotation marks inside descriptions. Use a **curly/smart right double-quote** (`"`, U+201D) for inch marks (e.g. `7" pizza`) rather than a straight ASCII `"`, which would break the JSON string. Em dashes (``) and curly apostrophes (`'`) from the source website copy fine as-is.
**Critical: field delimiters must be straight ASCII double quotes.** Some editors and AI tools auto-correct straight `"` to curly `"` / `"` (U+201C / U+201D). If curly quotes end up wrapping property names or values (e.g. `"name"` instead of `"name"`), JavaScript will fail to parse the entire `RESTAURANTS` array and no restaurants will appear in the app. Always verify that the structural quotes in the data use the straight ASCII `"` character (U+0022). **Critical: JSON structural quotes must be straight ASCII double quotes.** Some editors and AI tools auto-correct straight `"` to curly `"` / `"` (U+201C / U+201D). If curly quotes end up wrapping property names or values (e.g. `"name"` instead of `"name"`), the JSON file will fail to parse and no restaurants will appear in the app. Always verify that the structural quotes in the data use the straight ASCII `"` character (U+0022).

File diff suppressed because one or more lines are too long