How mman7/mini-ecommerce works
Mini Ecommerce is a learning-focused gift-and-stationery storefront: customers browse products, manage carts and accounts, and place orders; administrators manage catalog, customers, inventory, and fulfillment. The Next.js UI fronts an Express API, with Prisma/PostgreSQL persistence and Stripe checkout/webhook support. The graph retains the documented storefront and dashboard capabilities, while grouping unsampled UI areas by their existing route directories. Several backend feature calls are directly evidenced; broader UI-to-API wiring and some persistence details are documented only at the architecture level.
Main entry points: routes.ts API router · prisma.ts Prisma client · admin Admin operations · app Next.js app
Components 24
Storefront and dashboard
- Next.js app
frontend/src/app - Shop and checkout screens
frontend/src/app - Profile and wishlist screens
frontend/src/app/profile - Admin dashboard
frontend/src/app/dashboard - Frontend API clients
frontend/src/api
API feature modules
- Authentication
backend/src/modules/auth - Users and addresses
backend/src/modules/user - Product catalog
backend/src/modules/product - Categories
backend/src/modules/category - Cart
backend/src/modules/cart - Favourites
backend/src/modules/favourite - Orders and fulfillment
backend/src/modules/order - Inventory
backend/src/modules/inventory - Admin operations
backend/src/modules/admin - Payments
backend/src/modules/payment
API shared layers
- API router
backend/src/routes.ts - Authentication middleware
backend/src/middleware/auth.middleware.ts - JWT and refresh tokens
backend/src/utils/jwt.ts - Runtime configuration
backend/src/configs/configs.ts
Persistence and integrations
- Prisma client
backend/src/utils/prisma.ts - PostgreSQL
- Stripe
- Local image storage
backend/src/modules/file/file.service.ts
Other components
- Customer or admin
Connections 43
- Customer or admin → Next.js app: uses
README.md - Next.js app → API router: rewrites API requests
README.md - Next.js app → Local image storage: rewrites file requests
README.md - Next.js app → Shop and checkout screens: serves storefront
README.md - Next.js app → Profile and wishlist screens: serves account screens
README.md - Next.js app → Admin dashboard: serves dashboard
README.md - Shop and checkout screens → Frontend API clients: uses
- Profile and wishlist screens → Frontend API clients: uses
- Admin dashboard → Frontend API clients: uses
- Frontend API clients → API router: requests
- API router → Authentication: mounts routes
backend/src/routes.ts - API router → Users and addresses: mounts routes
backend/src/routes.ts - API router → Product catalog: mounts routes
backend/src/routes.ts - API router → Cart: mounts routes
backend/src/routes.ts - API router → Categories: mounts routes
backend/src/routes.ts - API router → Inventory: mounts routes
backend/src/routes.ts - API router → Orders and fulfillment: mounts routes
backend/src/routes.ts - API router → Admin operations: mounts routes
backend/src/routes.ts - API router → Favourites: mounts routes
backend/src/routes.ts - API router → Payments: mounts routes
backend/src/routes.ts - Authentication → JWT and refresh tokens: issues tokens
backend/src/modules/auth/auth.service.ts - Authentication → Prisma client: persists account data
backend/src/modules/auth/auth.service.ts - Users and addresses → Prisma client: reads and writes
- Product catalog → Prisma client: reads and writes
backend/src/modules/product/product.service.ts - Product catalog → Local image storage: deletes image files
backend/src/modules/product/product.service.ts - Categories → Product catalog: queries product service
backend/src/modules/category/category.controller.ts - Categories → Prisma client: reads and writes
backend/src/modules/category/category.service.ts - Cart → Product catalog: checks product and stock
backend/src/modules/cart/cart.controller.ts - Cart → Prisma client: reads and writes
backend/src/modules/cart/cart.service.ts - Favourites → Prisma client: reads and writes
backend/src/modules/favourite/favourite.service.ts - Orders and fulfillment → Inventory: checks and fulfills stock
- Orders and fulfillment → Prisma client: reads and writes
- Inventory → Prisma client: reads and writes
- Admin operations → Orders and fulfillment: uses order operations
backend/src/modules/admin/admin.service.ts - Admin operations → Inventory: uses inventory operations
backend/src/modules/admin/admin.service.ts - Admin operations → Product catalog: uses product operations
backend/src/modules/admin/admin.service.ts - Admin operations → Categories: uses category operations
backend/src/modules/admin/admin.service.ts - Admin operations → Users and addresses: uses user operations
backend/src/modules/admin/admin.service.ts - Admin operations → Payments: uses payment operations
backend/src/modules/admin/admin.service.ts - Payments → Stripe: processes payments
README.md - Prisma client → PostgreSQL: persists application data
README.md - Authentication middleware → JWT and refresh tokens: validates tokens
- Runtime configuration → Prisma client: configures connection