feat: Stripe integration with subscription tiers and donations (#55) #57

Merged
egullickson merged 1 commits from issue-55-stripe-integration into main 2026-01-19 03:14:39 +00:00
Owner

Summary

Complete Stripe payment integration with subscription tiers (Free/Pro/Enterprise) and one-time donations.

Features Implemented

  • Subscription management with Free/Pro/Enterprise tiers
  • Monthly and yearly billing cycles
  • Payment method collection with full billing address (Name, Address, City, State, Zip, Country)
  • One-time donation support
  • Stripe webhook handling for subscription lifecycle events
  • Vehicle limit enforcement by tier
  • Downgrade flow with vehicle selection
  • Grace period handling for failed payments

Key Changes

  • Added subscriptions feature capsule with database schema, service layer, and API endpoints
  • Integrated Stripe Elements (PaymentElement + AddressElement) for secure payment collection
  • Added Subscription page to Settings (desktop and mobile)
  • Implemented webhook endpoint for Stripe events
  • Added donation feature with payment history

Files Changed

  • backend/src/features/subscriptions/ - New feature capsule
  • frontend/src/features/subscription/ - Subscription UI components
  • Database migrations for subscriptions, donations tables
  • CI/CD updates for Stripe secrets

Testing

  • Lint: PASS
  • Type-check: PASS
  • Unit tests: 98/106 passing (pre-existing failures unrelated to this PR)

Fixes #55

🤖 Generated with Claude Code

## Summary Complete Stripe payment integration with subscription tiers (Free/Pro/Enterprise) and one-time donations. ### Features Implemented - Subscription management with Free/Pro/Enterprise tiers - Monthly and yearly billing cycles - Payment method collection with full billing address (Name, Address, City, State, Zip, Country) - One-time donation support - Stripe webhook handling for subscription lifecycle events - Vehicle limit enforcement by tier - Downgrade flow with vehicle selection - Grace period handling for failed payments ### Key Changes - Added `subscriptions` feature capsule with database schema, service layer, and API endpoints - Integrated Stripe Elements (PaymentElement + AddressElement) for secure payment collection - Added Subscription page to Settings (desktop and mobile) - Implemented webhook endpoint for Stripe events - Added donation feature with payment history ### Files Changed - `backend/src/features/subscriptions/` - New feature capsule - `frontend/src/features/subscription/` - Subscription UI components - Database migrations for subscriptions, donations tables - CI/CD updates for Stripe secrets ### Testing - Lint: PASS - Type-check: PASS - Unit tests: 98/106 passing (pre-existing failures unrelated to this PR) Fixes #55 🤖 Generated with [Claude Code](https://claude.com/claude-code)
egullickson added 1 commit 2026-01-19 03:04:21 +00:00
feat: add full billing address collection to Stripe payment forms (refs #55)
All checks were successful
Deploy to Staging / Build Images (pull_request) Successful in 4m4s
Deploy to Staging / Deploy to Staging (pull_request) Successful in 38s
Deploy to Staging / Verify Staging (pull_request) Successful in 7s
Deploy to Staging / Notify Staging Ready (pull_request) Successful in 6s
Deploy to Staging / Notify Staging Failure (pull_request) Has been skipped
9f6832097c
- Replace CardElement with PaymentElement + AddressElement in subscription forms
- Add AddressElement to donation forms for billing address collection
- Now collects: Name, Address Line 1/2, City, State, Postal Code, Country
- Card details: Card Number, Expiration, CVC
- Both desktop and mobile forms updated

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
egullickson merged commit 155eab1b7d into main 2026-01-19 03:14:39 +00:00
egullickson deleted branch issue-55-stripe-integration 2026-01-19 03:14:39 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: egullickson/motovaultpro#57