How aynaynayn/thesis works
Pawfit is a dog-apparel ecommerce application: shoppers browse products, use pet measurements and breed/size information, manage a cart, and place cash-on-delivery orders; administrators manage products, inventory, models, and orders. The frontend is a React app with context-managed routing, authentication, and cart state, backed by Express controllers and MongoDB models. The excerpts show key controller/model and context/API relationships; frontend-to-backend HTTP wiring is inferred from matching endpoints and is marked unverified.
Main entry points: App.tsx App and Page Renderer · CartContext.tsx Cart State · pages Shopper Pages · server.js Express Server
Components 28
Storefront
- App and Page Renderer
frontend/src/app/App.tsx - Route State
frontend/src/context/RouterContext.tsx - Shopper Pages
frontend/src/pages - Navigation
frontend/src/components/Navbar.tsx
Accounts
- Auth State
frontend/src/context/AuthContext.tsx - Auth Routes
backend/src/routes/authRoutes.js - Account Operations
backend/src/controllers/authController.js - Auth Guard
backend/src/middleware/authMiddleware.js - User Records
backend/src/models/User.js - Account Email Service
backend/src/utils/emailService.js
Cart and Orders
- Cart State
frontend/src/context/CartContext.tsx - Cart Sidebar
frontend/src/components/CartSidebar.tsx - Cart Routes
backend/src/routes/cartRoutes.js - Order Routes
backend/src/routes/orderRoutes.js - Cart Operations
backend/src/controllers/cartController.js - Order Operations
backend/src/controllers/orderController.js - Cart Records
backend/src/models/Cart.js - Order Records
backend/src/models/Order.js
Catalog and Admin
- Admin Console
frontend/src/pages/AdminPage.tsx - Product Data Types
frontend/src/data/products.ts - Product Routes
backend/src/routes/productRoutes.js - Product Operations
backend/src/controllers/productController.js - Product Records
backend/src/models/Product.js
Backend Services
- API Client
frontend/src/lib/api.ts - Express Server
backend/src/server.js - Media Asset Service
backend/src/utils/cloudinaryAssets.js
Other components
- Shopper
- Cloudinary
Connections 43
- Shopper → App and Page Renderer: uses
- App and Page Renderer → Route State: provides routing
frontend/src/app/App.tsx - App and Page Renderer → Auth State: provides auth
frontend/src/app/App.tsx - App and Page Renderer → Cart State: provides cart
frontend/src/app/App.tsx - App and Page Renderer → Shopper Pages: renders
frontend/src/app/App.tsx - App and Page Renderer → Admin Console: renders
frontend/src/app/App.tsx - Shopper Pages → Route State: uses
frontend/src/pages/CheckoutPage.tsx - Shopper Pages → Auth State: uses
frontend/src/pages/CheckoutPage.tsx - Shopper Pages → Cart State: uses
frontend/src/pages/CheckoutPage.tsx - Shopper Pages → API Client: requests data
frontend/src/pages/CheckoutPage.tsx - Admin Console → API Client: manages catalog
frontend/src/pages/AdminPage.tsx - Cart State → Auth State: checks user
frontend/src/context/CartContext.tsx - Cart State → API Client: requests cart
frontend/src/context/CartContext.tsx - API Client → Product Data Types: maps products
frontend/src/lib/api.ts - Navigation → Route State: navigates
frontend/src/components/Navbar.tsx - Navigation → Cart State: reads cart
frontend/src/components/Navbar.tsx - Navigation → Auth State: reads account
frontend/src/components/Navbar.tsx - Cart Sidebar → Cart State: updates cart
frontend/src/components/CartSidebar.tsx - Cart Sidebar → Route State: navigates
frontend/src/components/CartSidebar.tsx - API Client → Express Server: HTTP requests
- Express Server → Auth Routes: mounts routes
backend/src/server.js - Express Server → Product Routes: mounts routes
backend/src/server.js - Express Server → Cart Routes: mounts routes
backend/src/server.js - Express Server → Order Routes: mounts routes
backend/src/server.js - Auth Routes → Account Operations: dispatches
backend/src/routes/authRoutes.js - Auth Routes → Auth Guard: protects routes
backend/src/routes/authRoutes.js - Product Routes → Product Operations: dispatches
backend/src/routes/productRoutes.js - Product Routes → Auth Guard: protects admin
backend/src/routes/productRoutes.js - Cart Routes → Cart Operations: dispatches
backend/src/routes/cartRoutes.js - Cart Routes → Auth Guard: protects routes
backend/src/routes/cartRoutes.js - Order Routes → Order Operations: dispatches
backend/src/routes/orderRoutes.js - Order Routes → Auth Guard: protects routes
backend/src/routes/orderRoutes.js - Auth Guard → User Records: loads user
backend/src/middleware/authMiddleware.js - Account Operations → User Records: reads and writes
backend/src/controllers/authController.js - Account Operations → Account Email Service: sends account email
backend/src/controllers/authController.js - Product Operations → Product Records: manages products
backend/src/controllers/productController.js - Product Operations → Media Asset Service: uploads assets
backend/src/controllers/productController.js - Media Asset Service → Cloudinary: stores media
- Cart Operations → Cart Records: manages cart
backend/src/controllers/cartController.js - Cart Operations → Product Records: checks products
backend/src/controllers/cartController.js - Order Operations → Cart Records: loads cart
backend/src/controllers/orderController.js - Order Operations → Order Records: creates and queries
backend/src/controllers/orderController.js - Order Operations → Product Records: adjusts inventory
backend/src/controllers/orderController.js