Updated ReadMe for everything that has changed.
This commit is contained in:
38
README.md
38
README.md
@@ -16,6 +16,7 @@ Each couple gets their own set of interest checkboxes ("His Picks" / "Her Picks"
|
|||||||
- **Interest filter** — narrow the list to His Picks, Her Picks, Both Picked, or Either Picked
|
- **Interest filter** — narrow the list to His Picks, Her Picks, Both Picked, or Either Picked
|
||||||
- **Random picker** — "Pick for Us!" draws a random winner from the currently filtered pool, with an option to re-roll
|
- **Random picker** — "Pick for Us!" draws a random winner from the currently filtered pool, with an option to re-roll
|
||||||
- **Course browse** — dedicated First Course, Second Course, and Third Course buttons open a modal listing every dish for that course across all restaurants; click any dish to jump straight to that restaurant's detail view
|
- **Course browse** — dedicated First Course, Second Course, and Third Course buttons open a modal listing every dish for that course across all restaurants; click any dish to jump straight to that restaurant's detail view
|
||||||
|
- **Year selector** — dropdown on the course browse bar switches between available event years (2025, 2026); restaurant data, filters, and interest picks are all scoped to the selected year
|
||||||
- **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
|
||||||
@@ -23,7 +24,7 @@ Each couple gets their own set of interest checkboxes ("His Picks" / "Her Picks"
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
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.)
|
1. Serve the folder from a web server and open `restaurant-picker.html` in a browser. (The app fetches a `YYYY-restaurants.json` file 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.
|
||||||
@@ -45,12 +46,25 @@ Each couple gets their own set of interest checkboxes ("His Picks" / "Her Picks"
|
|||||||
|
|
||||||
```
|
```
|
||||||
restaurant-picker.html # App shell — HTML, CSS, and JS logic
|
restaurant-picker.html # App shell — HTML, CSS, and JS logic
|
||||||
2026-restaurants.json # Restaurant data for the 2026 event (loaded at runtime via fetch)
|
2026-restaurants.json # Restaurant + event date data for the 2026 event
|
||||||
|
2025-restaurants.json # Restaurant + event date data for the 2025 event
|
||||||
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`.
|
### Adding a New Year
|
||||||
|
|
||||||
|
1. Create a new `YYYY-restaurants.json` file following the schema described below (see [Data Entry Guide](#data-entry-guide)).
|
||||||
|
2. In `restaurant-picker.html`, add a new `<option>` to the year selector dropdown:
|
||||||
|
```html
|
||||||
|
<select id="yearSelect" onchange="loadYear(this.value)">
|
||||||
|
<option value="2027">2027</option> <!-- add new year at top -->
|
||||||
|
<option value="2026">2026</option>
|
||||||
|
<option value="2025">2025</option>
|
||||||
|
</select>
|
||||||
|
```
|
||||||
|
3. Update the hardcoded default in the `loadYear('2026')` init call at the bottom of the `<script>` block to the new year.
|
||||||
|
4. Update the static fallback date in the `<span id="eventDates">` header element — it will be overwritten at runtime, but the static value is shown briefly on first load.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -58,6 +72,20 @@ Each year, create a new `YYYY-restaurants.json` and update the filename in the `
|
|||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
### File-Level Schema
|
||||||
|
|
||||||
|
Each `YYYY-restaurants.json` is an **object** (not a bare array) with two top-level keys:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"eventDates": "FEBRUARY 26 – MARCH 7, 2026",
|
||||||
|
"restaurants": [ ... ]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `eventDates` — the display string shown in the header when that year is selected; use an em dash (`–`) between the start and end dates
|
||||||
|
- `restaurants` — array of restaurant objects (see schema below)
|
||||||
|
|
||||||
### Restaurant Object Schema
|
### Restaurant Object Schema
|
||||||
|
|
||||||
```json
|
```json
|
||||||
@@ -179,7 +207,9 @@ Run the following Python script against the JSON file to identify any restaurant
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
with open('2026-restaurants.json', encoding='utf-8') as f:
|
with open('2026-restaurants.json', encoding='utf-8') as f:
|
||||||
restaurants = json.load(f)
|
data = json.load(f)
|
||||||
|
|
||||||
|
restaurants = data['restaurants']
|
||||||
|
|
||||||
for r in restaurants:
|
for r in restaurants:
|
||||||
name = r.get('name', 'Unknown')
|
name = r.get('name', 'Unknown')
|
||||||
|
|||||||
Reference in New Issue
Block a user