After your Etsy purchase

Upload guide — trip inputs

Everything we need to build your dashboard in one visit to the upload form. Use the link from your confirmation email when you have it — order # and package may already be filled in.

Overview

Your upload journey

flowchart TD
  A[Etsy purchase] --> B[Confirmation email with upload link]
  B --> C[upload.html — one form]
  C --> D[Order # + package tier]
  C --> E[Trip title + route table + phases]
  C --> F[Photo .zip]
  C --> G[Optional: placements, notes, passcode]
  D --> H[We package slug.zip]
  E --> H
  F --> H
  G --> H
  H --> I[Dashboard build — 5–7 business days]
  I --> J[Private link via Etsy Messages]
  J --> K[You review --> final delivery]
          

How each photo is included on your dashboard

flowchart TD
  P[Photo in your zip] --> Q{Has GPS location data?}
  Q -->|Yes| R[Included — placed on map near matching stop]
  Q -->|No| S{Listed in photo placements?}
  S -->|Yes| T[We look up your place name on the map]
  T --> U[Included — attached to nearest stop on your route]
  S -->|No| V[Excluded — not shown on dashboard]
          
Not accepted via Etsy messages: photo zips, long itineraries, or PDF/screenshot schedules. Use the upload form (or your email link) so we get structured data.

How we rank your inputs

Your text and placement tables always win over automated guesses. We use geotagged photo timestamps and locations to build a timeline first, then look up city and landmark names on the map where you did not provide them. Photos without GPS need a placement row with a place name (city or landmark) — not exact coordinates.

What takes priority when building your dashboard

flowchart TD
  subgraph trip["Trip story — legs, days, map route"]
    T1["1st — Your form, notes, or trip-plan file"]
    T2["2nd — Photo GPS timeline\n(sorted by date, grouped by location)"]
    T3["3rd — AI trip plan\n(leg names + title from Mapbox;\nor format your markdown)"]
    T1 --> T2 --> T3
  end

  subgraph pics["Which photos appear"]
    P1["1st — Your photo-placements table"]
    P2["2nd — Automatic GPS match to stops"]
    P3["3rd — Excluded if no GPS and no row"]
    P1 --> P2 --> P3
  end
          
You provideWe use it forRank
Trip phases + route legs + day titlesPhase names, dates, map routeHighest
Photo placements tableNon-GPS images — place name looked up on mapHighest (photos)
Geotagged photo zipStop order, coordinates, map labelsStructure
Waypoint names without coordinatesMap lookup fills Lon/Lat for routesFills gaps
Nothing except photosMapbox labels stops → AI names legs + title → we review before deliveryPhotos-only path

Place names & map lookup

You usually do not need to look up coordinates. Type place names the way you would in a map app.

Good placement examples: Paris, Colmar, Eiffel Tower, Versailles, Richmond, Virginia
Your inputWhat we do
Geotagged photosRead GPS → group stops → look up city/landmark names
Photo placement (no GPS)Look up place name → attach photo to nearest route stop
Waypoint name, Lon/Lat blankLook up place → fill coordinates for driving route
Trip legs & day titles you wroteAlways kept — automation only fills gaps

Placement rows do not need to match stop names character-for-character. Use the city, neighborhood, or landmark where the photo belongs.

Before you start

ItemRequired?Notes
Etsy order numberYesFrom receipt or confirmation email
Package (Basic / Standard / Premium)YesMust match the listing you bought
Trip titleYesDashboard headline — e.g. Spring Break 2026
SubtitleNoOptional banner under title — e.g. Dad and Mae
Main destination + dates + start/endYesBookends for the trip and route table helpers
Trip phases tableYesLabel, name, dates, location — see route table guide
Route legs tableYesOne row per movement — pick a phase on each row
Basecamps / overnight staysOptionalExtra lodging detail — skip for transit-only trips
Day-by-day plansOptionalRough daily notes
Photo .zipYesHow to zip geotagged photos
Photo placementsOptionalOnly for images without GPS
Dashboard URL nameOptionalAuto-filled from trip title
Extra notesOptionalFlights, hotels, companions
Dashboard passcodeIf orderedAt least 8 characters

* You can paste a quick table or simple text trip file into optional day-by-day or notes instead of typing everything on the form.

Your dashboard

Authoritative layout: the live trip page matches templates/index.html and templates/app-template.js in our build. If any description here disagrees with a deployed dashboard, trust what you see on the page.

Dashboard layout (top to bottom)

flowchart TB
  TB["Top bar — trip title, theme toggle"]
  H["Hero — title, optional subtitle, stats row"]
  M["Map — route, photo pins, legend, phase filters"]
  G["Phase cards — grid below the map"]
  TB --> H --> M --> G
          
AreaWhat you see
Top barTrip title only (brand + name) — not the subtitle. Light/dark theme. Iceland trips also show road-condition links.
HeroLarge trip title; optional subtitle below when provided; stats for km mapped, baseline drive time, and phases · dates.
MapFull-width interactive map: colored route by phase, photo pins, legend, All / Phase 1 / … filter buttons.
Phase cardsGrid below the map — click a card or filter button to focus the map on that phase.

Phase card header (colored bar): headline on the left; earliest local sunrise · sunset for that phase’s dates on the right when available.

Headlines: departure transit Phase 1: Depart Mar 10; return transit Phase 4: Return Mar 19–20; stay phases show location only (e.g. Phase 2: Paris, FR) — lodging names appear in the narrative body, not the headline.

Card body: one narrative paragraph per phase (no sunrise/sunset in the text — those appear in the header). Map pins open stop popups with photos; optional passcode gate when ordered.

Upload form fields

Open upload.html. Fields marked required on the form must be filled unless noted.

Upload form layout (top to bottom)

flowchart TB
  subgraph order["1 · Order"]
    O1["Etsy order # — required"]
    O2["Package tier — required"]
  end
  subgraph trip["2 · Trip details"]
    T1["Trip title — required"]
    T2["Subtitle — optional"]
    T3["Main destination — required"]
    T4["Start / end dates — required"]
    T5["Trip start / end places — required"]
    T6["Trip phases table — required"]
    T7["Route legs table — required"]
    T8["Basecamps — optional"]
  end
  subgraph optTrip["Optional trip settings"]
    OT1["Timezone"]
    OT2["Primary travel mode"]
  end
  subgraph itin["3 · Optional on form"]
    I1["Day-by-day plans — optional"]
  end
  subgraph photos["4 · Photos"]
    P1["Photo zip — required"]
    P2["EXIF location consent — required"]
    P3["EXIF time consent — required"]
    P4["Custom dashboard URL name — optional"]
  end
  subgraph extra["5 · Optional extras"]
    E1["Photo placements"]
    E2["Notes"]
    E3["Dashboard passcode — if ordered"]
  end
  C["Confirm paid and Upload trip — required"]
  order --> trip --> optTrip --> itin --> photos --> extra --> C
          

Order reference required

Your Etsy order number. If the order is unknown or already uploaded, the form explains why.

Package required

TierMax zip sizeConsulting
Basic1 GB
Standard3 GB
Premium8 GB1 × 30-min session included

Live planning sessions are purchased on the Consultation Etsy listing (not this upload form). At checkout enter dashboard order # plus primary and secondary meeting times — we confirm by Etsy Message after your order. Premium includes one session; add-on tiers add more.

Trip title required

Dashboard headline — the name of the trip (e.g. Spring Break 2026). Also used to suggest your URL slug (mushinsolutions.com/trips/your-trip/).

Subtitle optional

Optional banner line under the title — who traveled (e.g. Dad and Mae, The Johnson family). Leave blank if the trip title alone is enough.

Main destination, dates, start/end required

Primary region (e.g. Paris, France), first/last day of the trip, and where the trip started and ended. Use the same start/end place for loop trips.

Trip phases required

Major blocks — one table row per phase. Pick a label (transit, basecamp, day trip, residency), then name, dates, and location (location blank for transit).

Toolbar: + Add phase · Suggest starter phases (uses trip dates, destination, and basecamp rows if any).

The form stores ### lines behind the scenes. Example serialized output:

### 1 | Departure Transit | Mar 10 | In transit | #0c6fa8

### 2 | Paris Residency | Mar 11–15 | Paris, FR — AirBnB | #148b63

### 4 | Return Transit | Mar 19–20 | In transit | #8f3d97

Actual route / transit legs required

One row per movement — flights, trains, ferries, drives. Pick a Phase on each row from your trip phases table. Use → to for a direct leg or , then for comma-style station chains. Set mode on every non-driving leg.

Full column reference: ROUTE_TABLE_INPUTS.md · click Insert starter legs from trip start/end after start/end places and dates are filled.

Serialized example:

Mar 10 | 1 — Richmond, VA --> Alexandria, VA (train)
Mar 10 | 1 — Washington, DC (DCA) --> Paris, FR (flight)
Mar 11–15 | 2 — Paris --> Colmar (basecamp)

Basecamps / overnight stays optional

Optional extra lodging detail — one row per anchor. Optional detail after :

Paris, FR — AirBnB
La Wantzenau — Omar's house, 24 Rue de Madrid

Transit-only trips can skip this table.

Day-by-day plans optional

One block per travel day:

### <date> | <phase #> | <day title>
What you did or plan to do. Optional: **Drive**: distance and time.

Example:

### 2026-03-12 | 2 | Arrive Paris
Check in Montmartre Airbnb, evening walk.

### 2026-03-13 | 2 | Left Bank & Seine
Classic sights along the river.

Dates can be 2026-03-13 or Mar 13 (include the year somewhere if you use short dates).

Photo zip required

  • One .zip with all trip photos
  • iPhone HEIC and JPEG supported
  • Location Services on when photos were taken — we place geotagged images automatically
  • Visual step-by-step: How to create your photo zip

Dashboard URL name optional

Lowercase letters, numbers, hyphens. Usually auto-derived from your trip title.

Photo placements optional

Open Optional photo fixes on the form when some pictures lack location data (screenshots, exports, Location Services off).

One row per file — use the exact filename inside your zip (e.g. Day2.png, IMG_6261.HEIC).

| Filename | Stop or place | Phase | Day (optional) |
|----------|---------------|-------|----------------|
| Day2.png | Paris — Montmartre | 2 | Mar 13 |
| IMG_6199.HEIC | Colmar — Petite Venise | 3 | 2026-03-16 |

Plain-text alternative:

Day2.png | Paris — Montmartre | phase 2 | Mar 13
IMG_6199.HEIC | Colmar | phase 3 | 2026-03-16
  • Phase = number from your Trip phases
  • Stop or place = city, neighborhood, or landmark — we look it up on the map; exact spelling match to your legs is not required
  • Day = optional but helps group photos on the right travel day

Only list exceptions — geotagged photos are placed automatically. Click Insert starter template on the form for a prefilled table. See also Place names & map lookup.

Extra notes optional

Flight numbers, hotel names, travel companions, special requests.

Password protection

If your order includes it, choose a passcode (8–128 characters). Share the dashboard link and passcode separately with viewers you trust.

Trip plan formats

All formats become one structured trip plan

flowchart LR
  A[Your trip input] --> B[Upload form\nroute table + phases]
  A --> C[Quick table]
  A --> D[Simple text file]
  A --> E[Full plan\nwith waypoints]
  B --> F[trip-plan.md]
  C --> F
  D --> F
  E --> F
  F --> G[Dashboard route + days]
          
FormatBest for
Upload form (phase table + route table + optional basecamps)Most customers — Suggest starter phases / Insert starter legs on the form
Quick tableDay-by-day spreadsheet style
Simple textCopy/paste without markdown tables
Full trip planRoad trips with waypoints and route overrides

Quick table

Paste into day-by-day plans or save as .md / .txt in your zip:

## Date / Phase / Location

| Date | Phase | From --> To | Main Location / Activity |
|------|-------|-----------|----------------------------|
| Mar 10 | Phase 1 – Name | City A --> City B | Overnight near airport |
| Mar 11 | Phase 1 – Name | City B --> City C | Arrive destination |
| Mar 12 | Phase 2 – Name | City C --> City D | Check in, city walk |

One row per travel day. Repeat the same Phase label for every day in that leg.

Simple text

TRIP TITLE: Spring Break 2026
SUBTITLE: Dad and Mae
DESTINATION: France

PHASES:
1. Transatlantic leap | Mar 10–11 | Ramstein
2. Paris residency | Mar 12–15 | Paris
3. Alsace expedition | Mar 16–18 | Colmar / Strasbourg

DAYS:
Mar 12 | Phase 2 | Arrive Paris — Montmartre
Mar 13 | Phase 2 | Left Bank, Seine
Mar 16 | Phase 3 | TGV to Colmar

NOTES (optional):
Traveling with family of four.

Full trip plan

For driving routes with exact stop order, prepare Phases, Waypoints, Days, and optional Route overrides. You can add a ## Photo Placements section at the bottom instead of a separate placements file.

Waypoints — coordinates optional. Leave Lon and Lat blank and list place names only (e.g. Paris, Strasbourg) — we look up coordinates automatically. If you have exact coordinates, use Lon first, Lat second in the table.

Photo zip — requirements

  • At least two geotagged photos, or two placed photos in your placements table, or enough route detail in your trip plan
  • Photos in subfolders inside the zip are fine
  • Do not password-protect the zip file itself

Geotagging on iPhone

  1. Settings --> Privacy & Security --> Location Services — On
  2. Camera — allow location (While Using or Always)
  3. Take photos during the trip — location is stored in the file

What we exclude

SituationResult
Photo has GPSIncluded on map (city name from map lookup)
No GPS + placement rowIncluded — place name looked up, attached to nearest stop
No GPS + no placement rowExcluded
PDF or PNG itinerary screenshotNot read — paste into a template
Wrong filename in placementsRow skipped; noted at delivery
Place name not near your routeRow skipped — try a city on your trip

We do not read text inside screenshot images — put place names in the placements table.

After you upload

  1. Form confirms success — we do not send a separate “processing received” email
  2. We build your dashboard (typically 5–7 business days)
  3. Private link arrives via Etsy Messages when ready for review
  4. After you approve, we send final delivery (URL + summary of included/excluded photos)

Troubleshooting

ProblemWhat to do
“Zip too large”Reduce size or upgrade Etsy tier
“Order not found”Check Etsy order #; wait for confirmation email
Photos missing on mapConfirm GPS was on, or add placement rows with a city/landmark
Placement row skippedMatch filename exactly; use a place on your route (e.g. Paris)
Screenshot itinerary ignoredPaste schedule into quick table or day-by-day fields
Wrong packageSelect tier matching your Etsy listing
Passcode rejectedUse at least 8 characters