Skip to content

Main#2

Open
jamespheffernan wants to merge 24 commits into
mvp-collaborative-movie-bookingfrom
main
Open

Main#2
jamespheffernan wants to merge 24 commits into
mvp-collaborative-movie-bookingfrom
main

Conversation

@jamespheffernan

Copy link
Copy Markdown
Owner

No description provided.

…ld) (#1)

* docs(plan): update status board and progress after creating feature branch

* chore(scaffold): add app/server/infra directories, .gitignore, and README

* docs(plan): mark scaffold complete; set next step to API /shows fixture

* feat(server): add GET /shows with fixture and tests; align Fastify logger option

* test(server): fix Fastify logger usage; add working GET /shows test

* feat(server): add GET /shows/:id/seatmap with fixture and validation; add tests

* feat(server): implement seatmap route and validation; fix corrupted files; add tests

* feat(app): scaffold Expo RN app and Browse screen wired to /shows fixture

* feat(app): add Seat Map screen, SeatGrid, and simple navigation; extend API client; wire Browse onSelect

* feat(server): wire checkout/confirm/orders routes into server

* feat(app): add checkout and confirmation screens; wire multi-screen flow; extend API client; proceed from Seat Map

* docs(plan): update status board and progress after implementing shows/seatmap APIs and RN flows

* chore(infra): add docker-compose for Postgres/Redis; add server .env.example; add Expo app.json and assets; update README with run instructions

* feat(server): integrate Stripe PaymentIntent in /checkout (test mode)

* feat(server): make Stripe optional (mock clientSecret when no key) so tests pass locally

* feat(server): add BullMQ purchase queue and worker scaffold

* feat(app): add polling on Confirmation screen until order is purchased or failed

* docs(plan): reflect checkout/worker partial completion and app confirmation polling

* chore(app): wrap with StripeProvider and keep checkout in server-driven test mode for now

* chore: commit lockfiles and config drift; align server checkout route state

* feat(app): add optional Stripe CardField and clientSecret confirm; fallback to server mock when Stripe not configured

* feat(server): add shows scraper using fixture HTML for CHAIN_X; add unit test

* feat(server): add seatmap scraper using fixture JSON for CHAIN_X; add unit test

* feat(server): add DEMO_MODE short-circuit in /confirm to mark purchased without queue when Redis unavailable

* ci: add GitHub Actions workflow to run server tests in demo mode

* feat(server): add Playwright shows scraper skeleton

* feat(server): add Playwright seatmap scraper skeleton capturing network JSON

* feat(server): expose /metrics and add counters for shows/seatmap/checkout/confirm

* feat(server): add simple in-memory cache for /shows (15m) and /seatmap (60s)

* chore(server): add x-request-id header on responses for debugging

* feat(server): allow live scraping via ?source=live with Playwright fallback to fixtures

* docs(plan): update board and progress with Playwright, metrics, caching, webhooks, CI, and PR state

* chore(server): add Prisma schema and generate client (Show, Order)

* feat(server): wire optional Prisma persistence for orders when POSTGRES_URL is set

* feat(server): best-effort upsert of shows into DB when available

* chore(app): read API base from env and include x-request-id in error messages

* docs: add app .env.example; document env, demo mode, and live scraping in README

* feat(server): add /health, requestId in /confirm; minor queue options; keep tests green

* chore(server): load env via dotenv and enable CORS for dev
- Add netlify.toml with build command and SPA redirect
- Verified local web build works with npx expo export --platform web
- Ready for Netlify deployment setup
- Add configurable CORS origins with fallback to permissive for dev
- Add environment variable examples for both app and server
- Support ALLOWED_ORIGINS env var for production deployment
- Maintain backward compatibility with existing setup
- Add comprehensive deployment guide with setup steps
- Document environment variables and troubleshooting
- Update implementation plan with current status
- Ready for manual Netlify configuration
@netlify

netlify Bot commented Sep 3, 2025

Copy link
Copy Markdown

Deploy Preview for venerable-heliotrope-ed39f7 ready!

Name Link
🔨 Latest commit 68504ed
🔍 Latest deploy log https://app.netlify.com/projects/venerable-heliotrope-ed39f7/deploys/68baa8b62a425b000857459c
😎 Deploy Preview https://deploy-preview-2--venerable-heliotrope-ed39f7.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify

netlify Bot commented Sep 5, 2025

Copy link
Copy Markdown

Deploy Preview for resonant-tanuki-26336f ready!

Name Link
🔨 Latest commit 68504ed
🔍 Latest deploy log https://app.netlify.com/projects/resonant-tanuki-26336f/deploys/68baa8b6730afd0008f3534a
😎 Deploy Preview https://deploy-preview-2--resonant-tanuki-26336f.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

- Added missing loadStripe import at the top of the file
- Removed duplicate Elements import that was misplaced in middle of file
- Removed orphaned closing braces at end of file
- Fixed tsconfig to extend expo base configuration
Consolidates all MVP features including:
- Full app scaffold with React Native (Expo) and Fastify API
- Browse shows, seat selection, and checkout flows
- Stripe payment integration (test mode) with web support
- BullMQ job queue for purchase processing
- Playwright scrapers for show and seat data
- Redis caching and Postgres database setup
- Demo mode with fixtures for testing
- Complete E2E booking flow
- Platform-specific checkout (web vs native)
- Enhanced CORS configuration for production

Resolved conflicts by keeping the improved versions from main branch that include:
- Web platform support with CheckoutWeb component
- Stripe.js for web payments
- Better CORS configuration with allowed origins
- API version specification for Stripe
…with Stripe v18.4.0

- Updated API version from 2024-06-20 to 2025-07-30.basil
- Fixes TypeScript compilation error in Render deployment
- Ensures compatibility with current Stripe SDK version
- Added .js extensions to all relative imports in server TypeScript files
- Fixes ERR_MODULE_NOT_FOUND runtime error in production
- Required for ES modules in Node.js when using type: module
- Affected files: checkout.ts, purchase.ts, server.ts
- Modified purchase.ts to gracefully handle absence of Redis
- Queue operations fall back to synchronous processing when Redis is not available
- Prevents connection errors in production when Redis is not configured
- Server can now run without Redis for simpler deployments
- Commented out REDIS_URL by default
- Added note that purchase jobs will run synchronously without Redis
- Updated lessons learned about optional external services
- Added EXPO_PUBLIC_API_BASE_URL to netlify.toml pointing to Render API
- Updated CORS configuration to be more permissive for MVP
- Added app/env.example with environment variable documentation
- Fixes 'Failed to fetch' error on Netlify deployment
- Document current production deployments
- List all environment variables for both frontend and backend
- Include testing commands and troubleshooting tips
- Add deployment checklist
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