# Wayfare — AI-Powered Accessible Travel Companion

Plan accessible trips you can trust. Wayfare is an AI travel companion for the 1.3 billion travellers with disabilities. It generates AI itineraries with scout-verified venues and transparent Lighthouse Accessibility Scores.

## Project Map

| Page / File | What it does | Open it |
|---|---|---|
| `Wayfare.html` | **Landing / marketing site** — hero, problem, how it works, scout showcase, FAQ, team, footer | Marketing page |
| `Sign In.html` | **Sign In page** — email/password form with demo account pre-filled | Auth |
| `Sign Up.html` | **Sign Up wizard** — 4-step flow: role selection (traveller/scout), access needs, preferences, bio | Auth |
| `App.html` | **Full app shell** — post-login experience with sidebar nav, plan builder, camera AI, emergency dispatch, profile | App |
| `Wayfare App (offline).html` | **Offline bundle** — self-contained app with bundled dependencies for offline use | App |
| `App-offline-src.html` | Source template used to generate the offline bundle | Source |
| `WBS.html` | **Work Breakdown Structure** — project plan with 17 people, 5 sprints, RACI, milestones, risks, launch May 22 | Planning |

## Component Files (JSX)

All JSX files use **React 18 with Babel standalone** (no bundler — loaded via `<script type="text/babel">`).

| File | Exports / Purpose |
|---|---|
| `components.jsx` | Shared components: icons (SVG), nav bar, brand mark, voice input, Lighthouse score viz, a11y toolbar, emergency FAB |
| `main.jsx` | Landing page entry point. Renders `<App />` with all sections, tweaks panel, emergency modal |
| `sections.jsx` | 12 landing sections: Hero, Marquee, Problem, HowItWorks, LighthouseExplainer, Scouts, AppShowcase, CameraVoice, EmergencySection, Market, Team, FAQ |
| `app-shell.jsx` | Full app shell: sidebar, plan screen, trip timeline, camera AI with auto-narration, venue detail with score breakdown, emergency flow, profile |
| `app-preview.jsx` | Interactive app preview carousel for the landing page |
| `app-preview-offline.jsx` | App preview component for the offline bundle |
| `app-shell-offline.jsx` | App shell component for the offline bundle |
| `auth.jsx` | Auth components: `WayfareSession` (localStorage), `SignIn`, `SignUp`, `MiniA11yToolbar` |
| `tweaks-panel.jsx` | A11y tweaks panel: theme selector (soft/sage/night/contrast), font scale slider, reduced motion toggle |

## Styles

| File | Purpose |
|---|---|
| `styles.css` | Design tokens, CSS reset, typography, layout, buttons, cards, 4 themes, responsive breakpoints, a11y utilities. ~623 lines |
| `auth-app.css` | Auth page layout (split panel), app shell sidebar, plan screen, timeline, camera, emergency modal, profile. ~516 lines |

### Design System

- **Fonts**: Atkinson Hyperlegible Next (sans), Newsreader (serif), JetBrains Mono (mono)
- **Themes**: Soft (default), Sage Calm, High Contrast, Deep Night
- **Accessibility**: Focus rings, skip link, font scaling (0.85x-1.4x), reduced motion, WCAG AA target

## Architecture

### Page Flow

```
Wayfare.html  ───→  Sign Up.html  ───→  App.html
                      Sign In.html ────┘
```

Session is managed via `localStorage` (`WayfareSession` object in `auth.jsx`).

### Backend (external Python/FastAPI)

The frontend is currently mock-data driven. The backend will provide:
- `POST /plan` — AI itinerary generator (3 plan options)
- `GET /venues/{id}` — venue detail with Accessibility Score
- `POST /vision` — camera frame analysis with audio narration
- `POST /emergency` — emergency dispatch with location + profile
- `GET /scouts` — scout profiles and credentials

See `WBS.html` for the full backend workstream (WBS 2.x).

## How to Run

These are static HTML files. Open any `.html` file directly in a browser. Internet required for:
- React / Babel (loaded from unpkg CDN)
- Google Fonts
- Unsplash images (avatar photos)

**Tip**: Open `index.html` in this directory for a browsable reference of all pages.

## Project Context

- **Team**: 17 people across PM, ML/AI, Python backend, data engineering, frontend, DevOps, QA, marketing
- **Sprint**: May 16-22, 2026 (5 sprints, 6 days)
- **Launch**: May 22, 2026
- **Lead PMs**: Bhavik Bansal, Zaid Pathan
- **FE Lead**: Shridutt Patel
- **BE Lead**: Kumar Satyam
- **ML Lead**: Ankur Sapariya
- **DevOps Lead**: Shivshankar Chavan
