How londheshubham153/tws-e-commerce-app works
EasyShop is a full-stack online store. Shoppers browse and search products, manage a cart, authenticate, and place or review orders; profile, wishlist, offers, and contact pages extend that experience. The implementation separates Next.js presentation and API routes from Mongoose models and a cached MongoDB connection. Product search/filtering, authentication, cart operations, and order creation are represented as distinct stages. The README documents broad capabilities, while unsampled page wiring and client-to-API requests are not verified here; those links are shown as unverified where useful.
Main entry points: orders Order routes · db.ts Database connector · cart Cart routes · app Storefront pages
Components 21
Storefront
- Storefront pages
src/app - Search bar
src/components/SearchBar.tsx - Catalog filters
src/components/filters - Product cards
src/components/cards/ProductCard.tsx - Cart state
src/lib/features/cart/cartSlice.ts - Checkout summary
src/components/checkout/OrderSummery.tsx - Profile and orders
src/app/profile
Identity
- Auth routes
src/app/api/auth - JWT utilities
src/lib/auth/utils.ts - Route middleware
src/middleware.ts
Commerce API
- Cart routes
src/app/api/cart - Order routes
src/app/api/orders
Catalog API
- Product routes
src/app/api/products - Slug lookup
src/app/api/singleProduct/[slug]/route.ts
Persistence
- Cart model
src/lib/models/cart.ts - Order model
src/lib/models/order.ts - Product model
src/lib/models/product.ts - User model
src/lib/models/user.ts - Database connector
src/lib/db.ts
Other components
- Shopper
- MongoDB
Connections 31
- Shopper → Storefront pages: browses
README.md - Storefront pages → Search bar: offers search
- Search bar → Storefront pages: routes search
src/components/SearchBar.tsx - Storefront pages → Catalog filters: offers filtering
- Storefront pages → Product cards: presents products
- Shopper → Cart state: manages cart
README.md - Cart state → Cart routes: syncs cart
- Shopper → Checkout summary: checks out
README.md - Checkout summary → Order routes: submits order
- Shopper → Profile and orders: reviews orders
README.md - Profile and orders → Order routes: requests order history
- Shopper → Auth routes: signs in
README.md - Auth routes → JWT utilities: checks tokens
src/app/api/auth/login/route.ts - Route middleware → JWT utilities: verifies tokens
src/middleware.ts - Cart routes → JWT utilities: requires auth
src/app/api/cart/route.ts - Order routes → JWT utilities: requires auth
src/app/api/orders/route.ts - Product routes → JWT utilities: checks admin
src/app/api/products/route.ts - Cart routes → Cart model: reads and saves
src/app/api/cart/route.ts - Cart routes → Product model: looks up products
src/app/api/cart/route.ts - Order routes → Order model: creates and reads
src/app/api/orders/route.ts - Order routes → Cart model: clears cart
src/app/api/orders/route.ts - Order routes → Product model: populates items
src/app/api/orders/route.ts - Product routes → Product model: queries products
src/app/api/products/route.ts - Slug lookup → Product model: looks up product
src/app/api/singleProduct/[slug]/route.ts - Auth routes → User model: uses user records
src/app/api/auth/login/route.ts - Cart routes → Database connector: connects database
src/app/api/cart/route.ts - Order routes → Database connector: connects database
src/app/api/orders/route.ts - Product routes → Database connector: connects database
src/app/api/products/route.ts - Slug lookup → Database connector: connects database
src/app/api/singleProduct/[slug]/route.ts - Auth routes → Database connector: connects database
src/app/api/auth/login/route.ts - Database connector → MongoDB: connects
src/lib/db.ts