How nirupanjoe/tech-store works
TechStore is a MERN e-commerce platform. The principal customer workflow is browsing and filtering products, managing a cart, checking out through payment, then viewing orders; users can also register or sign in, including with Google. The backend provides product, account, order, and payment APIs backed by MongoDB. Authentication and product-controller relationships are visible in excerpts; order and payment internals and most frontend wiring were not sampled, so those links are left unverified or omitted.
Main entry points: src Web Application · app.js API Application · product.js Product Workflows · auth.js Account Routes
Components 26
Storefront
- Web Application
frontend/src - Product Browse
frontend/src/components/Products - Search & Filter
frontend/src/components/Header/SearchModel - Shopping Cart
frontend/src/components/Pages/Cart
Identity
- Account Access
frontend/src/components/Pages/User - Account Routes
backend/routes/auth.js - Account Workflows
backend/controllers/auth.js - Auth Helpers
backend/helper/auth.js - Access Control
backend/middleware/authentication.js
Commerce
- Checkout
frontend/src/components/Pages/Checkout - Order History
frontend/src/components/Pages/Orders - Order Workflows
backend/controllers/order.js - Order Helpers
backend/helper/orders.js - Payment Processing
backend/controllers/payment.js
Backend Services
- API Application
backend/app.js - Product Routes
backend/routes/product.js - Product Workflows
backend/controllers/product.js - Product Querying
backend/utils/productQueryHandler.js - Product Helpers
backend/helper/product.js
Persistence
- User Records
backend/models/user.js - Product Records
backend/models/product.js - Order Records
backend/models/order.js - Database Connection
backend/config/database.js
Other components
- Shopper
- Stripe
- MongoDB
Connections 32
- Shopper → Web Application: uses
- Web Application → Product Browse: offers
- Web Application → Search & Filter: offers
frontend/src/components/Header/SearchModel/useSearchModelLogic.js - Web Application → Shopping Cart: offers
- Web Application → Checkout: offers
frontend/src/components/Pages/Checkout/Payment/submitHandler.js - Web Application → Order History: offers
- Web Application → Account Access: offers
frontend/src/components/Pages/User/useAuth.js - Product Browse → API Application: requests products
- Search & Filter → API Application: searches products
- Shopping Cart → Checkout: continues to
- Checkout → API Application: submits order
- Checkout → Payment Processing: requests payment
- Payment Processing → Stripe: integrates with
- Order History → API Application: requests orders
- Account Access → Account Routes: calls account API
- API Application → Account Routes: mounts users
backend/app.js - API Application → Product Routes: mounts products
backend/app.js - Account Routes → Account Workflows: routes requests
backend/routes/auth.js - Account Routes → Access Control: protects routes
backend/routes/auth.js - Account Workflows → Auth Helpers: uses
backend/controllers/auth.js - Account Workflows → User Records: reads and writes
backend/controllers/auth.js - Access Control → User Records: loads user
backend/middleware/authentication.js - Product Routes → Product Workflows: routes requests
backend/routes/product.js - Product Workflows → Product Querying: builds queries
backend/controllers/product.js - Product Workflows → Product Helpers: uses
backend/controllers/product.js - Product Workflows → Product Records: reads and writes
backend/controllers/product.js - Product Querying → Product Records: queries
backend/utils/productQueryHandler.js - Order Helpers → Order Records: uses
backend/helper/orders.js - Order Helpers → Product Records: uses
backend/helper/orders.js - Order Workflows → Order Helpers: uses
- Order Workflows → Order Records: uses
- Database Connection → MongoDB: connects
backend/config/database.js