Skip to content

feat(devcon26): add individual ticket checkout and full-flow preview - #68

Open
Elvis020 wants to merge 2 commits into
mainfrom
feature/devcon26-flexible-ticket-checkout
Open

Elvis020 wants to merge 2 commits into
mainfrom
feature/devcon26-flexible-ticket-checkout

Conversation

@Elvis020

@Elvis020 Elvis020 commented Oct 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add DevCon26’s GH₵150 individual-ticket checkout and private ticket handoff pages, with a three-step purchase flow and a complete Paystack test-mode journey on the configured preview.

User-facing changes

  • Route homepage ticket actions through the conference registration section with pricing and ticket details.
  • Support personal tickets, gifts, community places and private claim links, with server-calculated totals and per-step validation. Group organizer-assigned community tickets into one quantity control without recipient emails; preserve gift details and personal/shareable allocations in mixed orders.
  • Use compact progress and actions across desktop and mobile, removable additional tickets, sticky mobile quantity controls and an illustrated order summary.
  • Open the personalized badge editor after payment, preserve the blended-photo design and dotted role label, and support photo positioning, zoom, saved crops, download and sharing.
  • Keep payment confirmation distinct from admission. Remove the unreliable print/save action. Show a receipt link only for a verified provider URL; show email guidance only when that provider’s merchant email setting is confirmed for the payment mode. Paystack currently shows payment details/reference without a receipt button or email promise.
  • Keep footer links compact and preserve keyboard focus without an automatic button outline in the leave dialog.

Implementation

EMS owns price, availability, limits and fulfillment. The exact preview branch persists complete-test mode and its configured EMS preview origin across pushes. Production configuration remains unchanged. Receipt URLs require HTTPS and a code-owned exact-origin allowlist; stale receipt UI is cleared between states. Paystack’s allowlist and confirmed email modes remain empty until verified.

History remains two commits. No website migration, merge or production deployment is included. Backend work is tracked separately in devcongress/events-management#261.

Verification

  • Normal and exact preview-branch builds passed (52 pages).
  • Full checkout assertions now pass after replacing obsolete markup expectations; no-JavaScript gating, redirect safety and stale-response checks remain covered.
  • Receipt policy, payment-confirmation and badge checks passed, including hostile URLs, mode gating and stale receipt cleanup.
  • Bounded review found no issues; git diff --check passed.
  • Earlier local browser checks covered step navigation, ticket removal, gift validation, mobile layouts and photo adjustment save/failure/retry behavior.
  • Hosted Workers build passed for b166916. Preview checkout retains data-complete-test="true" and the exact EMS preview backend; confirmation serves the new receipt policy with hidden Paystack receipt controls and no print action. The backend catalog currently returns HTTP 503 (Test checkout unavailable.), so end-to-end checkout verification is blocked. No payment or email was initiated. Remote main remains unchanged and the PR has exactly two commits.

Grouped community tickets

Community-only orders grow as community places. Buyers can add individually editable tickets or change one community ticket’s use without changing the others. The card has a contained heading, concise copy, clearly labeled quantity and quiet secondary action. Controls wrap on narrow phones, retain keyboard focus at bounds, and respect reduced-motion preferences. The flat per-seat API contract is unchanged.

Validation: grouped-community regression checks and full checkout checks passed; in-app browser checks covered desktop, 390px and 320px layouts, community-only progression without recipient fields, gift preservation and maximum-quantity focus. Physical-device and Lighthouse audits were not run. Hosted Workers build passed for 491abc8. Deployed community logic and CSS exactly match the verified build. Checkout retains complete-test mode and the exact EMS preview backend. That backend still returns HTTP503 (Test checkout unavailable.), blocking end-to-end payment testing. Main remains unchanged; PR has exactly two commits.

@Elvis020

Copy link
Copy Markdown
Collaborator Author

please no review/merge yet, need to do some testing first

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
devcongress-website 491abc8 Commit Preview URL

Branch Preview URL
Oct 25 2026, 07:20 PM

- Add catalog-driven GH₵150 checkout with personal tickets, private gifts,
  organizer-managed community places, and private shareable claims.
- Remove public sponsor handover choices while preserving historical order
  management; sponsor fulfillment belongs in EMS.
- Add private buyer-management and recipient-claim pages with fragment-based
  capabilities and payment confirmation separate from admission tickets.
- Consolidate the conference return-link component, rollout documentation,
  and existing checkout/access-page captures.
- Consolidate the previously reviewed feature history against current main.

Verification: the original feature passed pnpm build, generated-page link
assertions, and git diff checks. Full payment and delivery acceptance remains
separate from static website verification.
@Elvis020 Elvis020 changed the title feat(devcon26): add flexible ticket checkout and handoff pages feat(devcon26): add individual ticket checkout and full-flow preview Oct 21, 2026
@Elvis020
Elvis020 force-pushed the feature/devcon26-flexible-ticket-checkout branch 16 times, most recently from b166916 to 491abc8 Compare October 25, 2026 19:20
- Replace the public rehearsal with the complete preview test-payment flow,
  preserving strict mode/reference/grant checks and live checkout isolation.
- Allow only the configured EMS preview origin in preview-build CSP; retain
  unavailable/retry states and keep production checkout configuration intact.
- Support full-flow test payment confirmation and personalized conference badges,
  with public publishing unavailable for test cards.
- Introduce Tickets, Your details, and Payment steps with contextual order
  details, per-step validation, preserved state, and deferred Turnstile render.
- Replace allocation menus with native radio tiles, conditional gift fields,
  keyboard focus restoration, and a single personal-ticket rule.
- Add a compact boarding-pass order preview, masked illustration at 42 percent
  opacity, pink actions and selection accents, and responsive styling scoped
  to checkout rather than shared ticket-access screens.
- Document the final behavior and distinguish local verification from live
  payment, badge, and email acceptance.

- Persist exact-branch Cloudflare test build settings across preview pushes.
- Unify contact/payment navigation and add the selected Paystack logo card
  in an extensible provider list; retain existing payment routing.
- Soften quantity focus while preserving forced-colors visibility.

- Keep contact and payment primary actions label-width, aligned opposite Back,
  with wrapping for narrow screens.

Verification: pnpm build for normal and preview configuration; git diff
--check; local browser checks for keyboard radio selection, gift/contact
validation, conditional fields, totals, and back navigation. The one-ticket
view fits 1280x720 without page overflow. Bounded Sol review found no blockers.
Full Paystack-to-inbox acceptance remains pending user testing. No production
deployment or merge is included.

- Open the saved badge editor after complete-test payment using a self-seat-scoped buyer grant.
- Preserve actual issued seat numbers for name/photo changes and keep test publication disabled.
- Verify self and gift-only confirmation runtime paths, badge rendering checks, and preview-mode build.

- Preserve the approved blended-photo badge with original name typography and shared dotted role labels; remove test-watermark presentation without changing payment/admission mode checks.
- Place compact, accessible badge navigation below the editor and group download/share controls across mobile widths, with quiet page links in a separate footer.

Additional verification: website production and exact preview-branch builds; payment-confirmation and badge checks; local desktop/mobile button layout checks at 1440, 390 and 320px; focused Sol review; git diff --check.

- Correct payment-page renderer selection so post-payment preview and PNG export use the approved blended-photo badge; retain registration-specific behavior and remote persistence.
- Use minimal muted footer links with a decorative dot and pink hover without underlines.

Verification: full build, payment-confirmation and public badge checks, actual local payment-root editor preview/download using synthetic name/photo, footer hover assertions, focused Sol review and whitespace checks.

- Route homepage Buy tickets calls to the conference ticket section before checkout, display GH₵150 per person with QR PDF and badge-link details, and align navigation and FAQs.
- Verify built homepage-to-ticket-section links, checkout destination, price copy, and desktop/mobile layout without horizontal overflow at 1440/390px.

- Display bounded backend checkout errors as plain text for preview initialization, while preserving generic network and live-checkout errors.
- Verify preview error handling for HTTP 409, 429 and 503, the 52-page preview build, and deployed test backend configuration.

- Add mobile-specific progress, sticky quantity controls, removable additional
  tickets with preserved recipients, and a collapsed order summary after the form.
- Refine mobile radio focus, quantity colors, recipient labels, and reading order
  while keeping desktop progress navigation and backend test boundaries.

Verification: 52-page build; browser navigation and middle-ticket removal with
preserved recipients and totals; bounded review and whitespace checks. Physical
phone keyboard and sticky-scroll verification remains pending.

- Align the mobile ticket quantity control and add a subtle masked image to the expanded mobile order summary.
- Restore post-payment photo adjustment after upload, with reopen actions, mobile Cancel/Reset controls, saved crop restoration, per-seat upload ordering, and retryable crop persistence.
- Keep mobile Edit, Download and Share actions on one compact row, explicitly set download colors for Safari, and reduce footer height without changing desktop layout.

Verification: normal and exact preview-branch builds; badge and payment-confirmation checks; local browser crop save/failure/retry/Escape checks; 390px mobile visual checks; bounded review and git diff --check. The legacy checkout script remains blocked by its unrelated stale landing-page registration-link assertion. Production deployment is excluded.

- Match desktop checkout to mobile's compact step title/count and three slim progress segments, removing oversized tinted tabs while retaining named, keyboard-operable completed-step navigation.

Verification: normal and exact preview-branch builds; local browser transitions across all three steps and completed-step return; git diff --check. No production deployment or merge.

- Focus the payment-confirmation leave-dialog heading on opening, removing the automatic outer ring from Keep editing while preserving a slim pink keyboard-focus indicator.

Verification: normal and exact preview-branch builds, payment-confirmation checks, local mobile dialog opening and keyboard Tab navigation, and git diff --check. Production remains outside this delivery.

- Gate provider receipt links on verified HTTPS origins and keep Paystack in
  payment-reference mode until a receipt capability is confirmed; remove the
  unreliable print action and clear stale receipt UI between states.
- Refresh checkout assertions for the current flexible flow, dotted badge
  roles, compact footer, and shared renderer while retaining safety checks.

Verification: normal and exact branch-preview builds; full checkout, receipt
capability, payment-confirmation, and badge scripts; git diff --check.

- Group organizer-assigned community places into one quantity control and
  summary line, without recipient fields; retain individual personal, gift
  and shareable allocations and preserve gift emails in mixed orders.
- Make total increases inherit community allocation for community-only orders,
  with an explicit add-another action and bounded per-group adjustments.
- Place the community heading inside the card, simplify copy and secondary
  actions, wrap controls on narrow screens, and preserve focus at limits.

Verification: exact preview build; full checkout, grouped-community, receipt,
confirmation and badge checks; local in-app browser at desktop, 390px and
320px; no-email progression and mixed gift preservation; git diff --check.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant