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 for the configured preview. Sponsors receive tickets through EMS, not public checkout.

User-facing changes

  • Homepage Buy tickets links lead to the DevCon26 ticket section, with GH₵150 pricing, individual-ticket details, and a clear checkout action.

  • Guide buyers through Tickets, Your details, and Payment, preserving inputs when moving back and validating each step before continuing.

  • Offer visible personal, gift, community-pool, and shareable-claim choices. Gift recipients are required only for gifts, and the purchaser can allocate only one personal ticket.

  • Show step-specific order details in an illustrated boarding-pass summary, with pink primary actions and a compact laptop layout.

  • Provide private management and claim pages. Payment confirmation remains distinct from admission; the preview preserves test-payment isolation and prevents public badge publication.

  • Preserve the blended-photo conference badge with original name typography and dotted role labels. Remove testing banners from badge artwork.

  • Keep badge navigation compact beneath the editor, group download/share on phones, and place quiet page links in a separate footer.

  • Remove the public one-ticket rehearsal. The configured preview uses full-flow Paystack test payments with EMS ticket/badge/email handling.

Implementation and rollout

Price, availability, and payment limits come from EMS. Preview checkout is explicitly mode-gated, retains secure grant/reference checks and Turnstile, and adds only the exact configured EMS preview origin to preview-build CSP. Production configuration remains unchanged. Backend full-flow email delivery work is tracked in devcongress/events-management#261.

History is consolidated into two commits: checkout/handoff foundations, then full-flow preview support and the final stepper design. No website migration is added. This PR does not merge or deploy production, and a sponsor reservation is not a sent ticket.

Verification

  • Normal and preview pnpm build passed (52 generated pages); donation checks and git diff --check passed.
  • Local browser checks passed using a read-only catalog fixture: native radio keyboard selection, gift/contact validation, conditional gift fields, order totals, and back-navigation state.
  • The one-ticket view measured 1280×720 without page overflow; larger orders and smaller screens retain natural scrolling.
  • Badge rendering and self/gift-only payment-confirmation checks passed. Compact action rows were verified locally at 1440, 390, and 320px with 44px minimum touch targets.
  • Bounded implementation review found no correctness blockers.
  • Complete payment → QR ticket → badge → real email acceptance remains pending user testing. Local UI checks do not verify Paystack or email delivery. Existing mobile screenshots predate this final design.

Mobile checkout and photo adjustment

  • Align mobile quantity controls, retain removable additional tickets and mobile progress, and add subtle masked imagery behind the expanded order summary.
  • Restore photo adjustment after post-payment upload with zoom, positioning, Reset and Cancel. Reopening restores saved crops; saves wait for uploads and target the correct seat. Failed saves remain retryable.
  • Keep Edit, Download and Share on one compact mobile row, use app colors on Safari, and tighten the mobile footer without changing desktop spacing.

Additional verification: normal and exact preview-branch builds; badge renderer and payment-confirmation checks; local crop save, failure, retry and Escape checks; 390px mobile visual checks. The legacy checkout script still stops at an unrelated stale registration-link assertion. Hosted preview verified at 93069cf: Cloudflare build passed, payment page serves the restored adjuster and compact action markup, checkout retains complete-test mode and the exact EMS preview origin, and the live catalog returns test mode with GH₵150 pricing. Production deployment identities are unchanged.

Desktop progress consistency

Desktop now uses the same compact step title/count and three slim progress segments as mobile. Completed segments retain descriptive labels, tooltips and keyboard navigation. The oversized tinted tabs are removed.

Verification: normal and exact preview-branch builds, local browser navigation through all three steps and return through completed segments, and whitespace checks passed. Preview verified at b2f797e: Cloudflare build passed; the served checkout includes the compact desktop progress rules and accessible step links. Complete-test mode, the exact EMS preview backend and GHS150 test catalog remain configured. Production deployment identities are unchanged. No merge or production deployment is included.

Payment leave-dialog focus

The leave-dialog heading receives initial focus, removing the automatic outer ring from Keep editing on touch. Both actions retain a restrained pink keyboard-focus indicator. Normal/preview builds, confirmation checks and local mobile opening/Tab navigation passed. Preview verified at 6a2bf26: Cloudflare build passed; served markup focuses the heading and removes button autofocus, with keyboard focus styling retained. Checkout still uses complete-test mode and the correct EMS preview backend; catalog returns test mode and GHS150 pricing. Production deployment identities remain unchanged.

@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 6a2bf26 Commit Preview URL

Branch Preview URL
Oct 24 2026, 05:04 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 14 times, most recently from b2f797e to 6a2bf26 Compare October 24, 2026 17:03
- 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.

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