Initial Camp Scan ticketing system
Backend (Fastify + TS): FluentForms webhook -> NocoDB row + QR + MailerSend email; PIN auth; scan/lookup/redeem with per-code serialization; reusable QR codes with count-based check-in; admin search. App (Expo, one codebase): Android APK + iPhone PWA. Login, camera scanner (native + web barcode-detector split), green/red overlay with sound + haptics, admin lookup/redeem. Session token persisted per device. Ops: multi-stage Dockerfile serving API + PWA same-origin, compose bound to 127.0.0.1; Forgejo Actions runner + tag-triggered signed APK build for Obtainium. Docs in README.md and INSTALL.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
commit
3397e3e3ec
60 changed files with 14703 additions and 0 deletions
48
app/app.json
Normal file
48
app/app.json
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"expo": {
|
||||
"name": "Camp Scan",
|
||||
"slug": "camptickets",
|
||||
"version": "0.1.0",
|
||||
"orientation": "portrait",
|
||||
"scheme": "campscan",
|
||||
"userInterfaceStyle": "automatic",
|
||||
"newArchEnabled": true,
|
||||
"android": {
|
||||
"package": "top.mowden.campscan",
|
||||
"versionCode": 1,
|
||||
"permissions": [
|
||||
"android.permission.CAMERA",
|
||||
"android.permission.VIBRATE"
|
||||
]
|
||||
},
|
||||
"ios": {
|
||||
"supportsTablet": true,
|
||||
"bundleIdentifier": "top.mowden.campscan",
|
||||
"infoPlist": {
|
||||
"NSCameraUsageDescription": "Camp Scan uses the camera to scan ticket QR codes at the gate."
|
||||
}
|
||||
},
|
||||
"web": {
|
||||
"bundler": "metro",
|
||||
"output": "single",
|
||||
"favicon": "./assets/icon.png"
|
||||
},
|
||||
"plugins": [
|
||||
"expo-router",
|
||||
"expo-audio",
|
||||
"expo-status-bar",
|
||||
[
|
||||
"expo-camera",
|
||||
{
|
||||
"cameraPermission": "Camp Scan uses the camera to scan ticket QR codes at the gate."
|
||||
}
|
||||
],
|
||||
"expo-secure-store"
|
||||
],
|
||||
"extra": {
|
||||
"router": {
|
||||
"origin": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue