Full-Stack E-Commerce Platform

This project started as a way to understand the real complexity behind e-commerce flows — not just rendering products, but keeping cart state, inventory, and checkout in sync between a reactive frontend and a GraphQL backend.
The frontend is Angular with PrimeNG components and TailwindCSS for styling. Hasura sits on top of PostgreSQL and provides the GraphQL API, handling authorization rules at the data layer. The focus was on building a checkout flow where the client can't get ahead of the server — every state transition is validated server-side before the UI reflects it.
The main challenge was managing optimistic updates without letting the UI drift from the actual backend state, especially around cart modifications and the checkout process.
Security focus
Making sure the purchase flow can't drift. Server-side validation on cart and checkout state, auth checks on protected operations, tighter client-server consistency.