Amr Samir, Full Stack Developer & Technical Architect, built this project using Next.js, React, Tailwind CSS, Redux Toolkit, Node.js. It demonstrates professional-grade implementation of modern web solutions with a focus on performance and scalability.
Delivering scalable, high-performance solutions with a focus on user experience and business growth.
Send a simple inquiry directly from the project page without leaving for the hire page.
Online retail applications must balance fast, client-side product catalog interactions with strict financial accuracy. In shopping cart systems, race conditions between frontend cart modifications and server-side payment authorizations frequently cause inventory drift, duplicate order creation, and unverified charges.
Shoprimo was engineered as a full-stack e-commerce application combining a Next.js App Router storefront with a Node.js/Express REST backend, Prisma ORM over MongoDB, and a Stripe payment pipeline.
The database architecture uses Prisma ORM to map relational models over MongoDB:
Product: Stores SKUs, category references, pricing, stock count, and image URLs.Order & OrderItem: Maintains customer references, shipping details, line item pricing snapshots at purchase time, and payment status (PENDING, PAID, FAILED, REFUNDED).StripeEvent: Dedicated collection with unique event ID indexing (@@unique([eventId])) to enforce webhook idempotency.CartItem objects containing product IDs, quantities, unit prices, and variant options.Source: api/webhooks/stripe
stripe.webhooks.constructEvent).payment_intent.succeeded is received, the handler attempts to insert the event ID into MongoDB. If a duplicate event delivery arrives, the unique constraint catches it and returns 200 OK without recreating orders.