- 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>
61 lines
3.2 KiB
Markdown
61 lines
3.2 KiB
Markdown
# 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.
|