# Jambook

Songbook and chord chart library PWA for iPad performance use.

## Starting Intent

- Store song charts online so the library stays hosted and available across devices.
- Make the iPad the main control/display surface.
- Support AirPlay to Apple TV with a clean, readable stage-friendly view.
- Keep the project open for a more graphical UI direction as the design develops.

## Early Product Notes

- Library view: quick search, setlists, recent songs, keys, tags, and favorites.
- Chart view: large readable lyrics/chords, transpose controls, section navigation, and no visual clutter.
- AirPlay view: presentation-style output with oversized text, high contrast, and optional current-section focus.
- Admin/editing: simple online chart storage with reliable sync, backups, and easy import/export.

## Current Build

- `index.html` - app shell and responsive layout
- `styles.css` - warm charcoal and amber interface styling
- `app.js` - library, set list, import, transpose, capo, and chart rendering logic
- `songs.php` - hosted JSON API and best-effort URL import endpoint
- `data/songs.json` - shared song storage
- `data/setlists.json` - shared set list storage
- `manifest.webmanifest` - PWA metadata
- `sw.js` - offline cache support
- `icon.svg` - app icon

## Notes

- ChordPro is the internal song format.
- PDF import is handled locally in the browser with best-effort text extraction.
- URL import is supported through the hosted `songs.php` endpoint, which is where a future Ultimate Guitar parser can get smarter.

## Run Locally

- Start the JamBook server with `python3 projects/jambook/server.py`
- Open `http://127.0.0.1:4173/projects.html`
- The server handles the shared song/set list JSON plus URL imports
