CampgroundTickets/INSTALL.md
Hank d293e53ee6 Add Check-in / Ice / Banquet scan modes
- Ice mode: prepaid ice bags (Ice Total / Ice Redeemed columns) redeemed
  independently of ticket check-ins; grab all bags at once or some now.
- Banquet mode: donor total (online + offline) looked up by the ticket's
  email via the Donors Master List, with a manual email override. New
  DonorService + POST /api/banquet.
- Redeem generalized over a resource (tickets|ice); audit records ice actions.
- App gains a mode selector; webhook maps ice_bags (defaults to
  ICE_BAGS_DEFAULT when only a boolean ice option is present).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 04:07:51 +00:00

61 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Installing Camp Scan on gate phones
Camp Scan runs two ways. Use whichever fits the device:
- **Android** → install the native app (best camera performance) via **Obtainium**, which also auto-updates it.
- **iPhone / iPad** → install the **PWA** from Safari (no App Store needed).
Either way, you enter the **gate PIN once** and the device stays signed in for the whole event.
---
## Android (Obtainium)
Obtainium installs and updates apps straight from our Forgejo releases — no Play Store.
### 1. Install Obtainium
Get it from [the Obtainium releases page](https://github.com/ImranR98/Obtainium/releases) or F-Droid, and install the APK (you may need to allow "install unknown apps" for your browser/file manager).
### 2. Add Camp Scan
Tap this on the phone:
### [Add Camp Scan to Obtainium](obtainium://add/https://git.mowden.top/Beartaria/CampgroundTickets)
If the button doesn't open Obtainium, add it manually:
1. Obtainium → **Add App**
2. **App source URL:** `https://git.mowden.top/Beartaria/CampgroundTickets`
3. Obtainium detects the **Forgejo** source automatically → **Add**.
4. Tap **Install**.
### 3. Updates
When a new version is released (a new `vX.Y.Z` tag builds an APK), Obtainium shows an update — tap to install over the top. Because every release is signed with the same key, updates install cleanly.
> **If the repository is private:** Obtainium can't read the releases without a token. Either make the repo (or a releases-only mirror) public, or in Obtainium set a Forgejo credential/token under the app's *Additional Settings*. A token can also be embedded in the add-link, but anyone who sees that link gets repo read access, so prefer public releases. Ask the maintainer which applies.
---
## iPhone / iPad (PWA)
1. Open **Safari** (not Chrome) and go to **https://scan.beartariacampgrounds.com**
2. Tap the **Share** button → **Add to Home Screen****Add**.
3. Launch **Camp Scan** from the home screen. It runs full-screen like a native app.
4. Allow **camera access** when prompted (required to scan). Camera only works over HTTPS, which the site provides.
Android users can also "Add to Home Screen" from Chrome instead of using Obtainium if they prefer the web version.
---
## First run (all devices)
1. Open Camp Scan.
2. Enter the **gate PIN** (ask the event organizer). The first tap also enables scan sounds.
3. You're in. The device stays signed in until you tap **Sign out** or the session expires (~30 days). You won't re-enter the PIN each shift.
## Using it
Pick a **mode** with the buttons under the title:
- **Check-in** — scan a ticket QR, pick how many people are entering now (a family can split arrivals across the day on one code), then **Check in**. Green + chime = saved; red + buzz = a problem (already fully redeemed, not a valid ticket, or a network/database error — the reason is shown).
- **Ice** — scan a ticket, hand out prepaid ice bags (defaults to all remaining; adjust if they only want some).
- **Banquet** — scan a ticket to see that buyer's total donations, or type an email and tap **Look up**.
- **Admin** (top-right): if scanning won't work, search by **name, email, or ticket code**, use the buttons to check people in or undo, and view check-in history.