Cloud Vapours
E-Commerce Platform (Canada)
E-commerce web application featuring product catalog browsing, cart and checkout flow, Stripe payment integration, and Google authentication.
01Context & Problem
A retail client needed a web storefront allowing customers to browse products, manage shopping carts, and complete purchases securely. The project included product catalog browsing, a cart and checkout flow, Stripe payment integration, and Google authentication.
02Engineering Ownership
What I Built
- ▸Developed product catalog browsing with category filtering using React and Redux Toolkit.
- ▸Built the shopping cart and checkout flow.
- ▸Integrated Stripe payment integration for secure order processing.
- ▸Implemented Google authentication using OAuth 2.0 (Google).
What I Did Not Build
- ▸Worked from storefront designs provided by the client rather than producing the visual design myself.
03Stack & Rationale
Client-side interface for product catalog browsing and cart state management.
Payment integration handling secure checkout transactions.
REST APIs managing product catalog endpoints, carts, and order verification.
Document storage for product catalogs, customer records, and completed orders.
04System Architecture
Component topology, data flows, and authorization boundaries:
05Authentication & Authorization
06Hard Technical Challenges & Solutions
Order Creation and Payment Verification
Problem: Orders needed to reflect confirmed payments through Stripe before being marked as paid.
Solution: The Node.js backend checked payment status with Stripe via REST APIs before updating order records in MongoDB.
Securing Checkout and Account Data
Problem: Customer cart and checkout routes required distinct access rules between anonymous shoppers and authenticated accounts.
Solution: Express.js middleware handled authentication checks, verifying JWT tokens for registered accounts while allowing public catalog browsing and checkout submission.
07What I Would Do Differently Now
If I were building this platform today, I would set up automated testing for the cart, checkout, and Stripe integration flows. I would also containerize the application with Docker and use CI/CD with GitHub Actions to automate verification on each release.