Project not found.
Believer's Elite
Vision
Registration and check-in app for Believer's Elite Basketball Camp — a 3-day camp (June 4-6, 2026) run by Coach Marcus Draney and Brandon Averette in South Salt Lake City. Parents register and pay $165 online via Stripe, admins verify payment and check players in on camp day. Simple, fast, done before June 4.
User Stories
| Key | Role | Story | Success Metric |
|---|---|---|---|
| register | Parent | Register my player and pay online | Stripe payment completes, confirmation page shows |
| multi-register | Parent | Register multiple players | "Register Another Player" link works after first registration |
| show-up-ready | Player | Know what to bring and where to go | Confirmation page lists dates, time, location, what to bring |
| admin-view | Admin | View all registrations with search | Table with player, school, parent, phone, paid/checked-in status |
| admin-checkin | Admin | Verify payment and check in players | Toggle paid/checked-in on detail page, badges update |
| production-deploy | Admin | Live site with real payments | Public URL, live Stripe, CI/CD pipeline |
Architecture
Rails 8 monolith with Hotwire (Turbo + Stimulus). Stripe Elements for payment (PaymentIntent flow, card never touches server). Plain CSS with design tokens — dark navy/royal blue theme.
- Domain: Single model —
Registration(parent info + player info + payment status + check-in status) - Data Flow: Page load → PaymentIntent created server-side → Card input via Stripe.js → Confirm client-side → Server verifies → Save with paid=true
- Deployment: k8s pod (Thruster on port 80) → Tailscale Funnel ingress →
believers-elite.tail5b443a.ts.net. SQLite with PersistentVolume. Harbor container registry. Woodpecker CI.
Key decisions:
- Stripe Elements over Checkout — embedded card input, no redirect, matches single-page design
- SQLite with PersistentVolume for production — single model, low traffic, 2-week shelf life. No CNPG overhead.
- Debian (ruby:3.4.9-slim) over Arch Linux for Docker base — exact Ruby version pinning, half the image size, reproducible builds
- No auth on admin yet (TODO — Keycloak OIDC)
Board
board-believers-eliteStatus
App: complete. Registration form, Stripe test payments, admin dashboard, check-in flow — all working. 15/15 Playwright E2E tests pass.
Deployment: in progress. Woodpecker CI merged (PR #2). Terraform applied — Harbor project, robot accounts, namespace, imagePullSecret, funnel all provisioned. Kustomize overlay + SOPS secrets merged (pal-e-deployments PR #169). Remaining: re-run
tofu apply to create ArgoCD application (failed on first run because overlay didn't exist yet), then first image build + ArgoCD sync.Milestones
- 2026-05-22 — App built end-to-end in single session: registration form, Stripe integration, admin dashboard, coach photos, camp branding
- 2026-05-22 — Woodpecker CI pipeline merged, infrastructure docs written, deployment scoped across 3 repos
- 2026-06-04 — Camp starts (hard deadline for production)
Repos
| Repo | Platform | Role | Status |
|---|---|---|---|
| <a href="https://forgejo.tail5b443a.ts.net/ldraney/believers-elite">ldraney/believers-elite</a> | Forgejo | Rails app + CI pipeline | Active |