How akonaweb/eshop works
Eshop is a web shop with a Next.js client and an ASP.NET Web API. The principal workflow is browsing products, building a cart, and submitting an order; administrators manage catalog entries and orders, while users can authenticate. The API routes requests through MediatR feature handlers to EF Core persistence. The graph includes these documented-by-tree capabilities, but client-to-API and most handler-to-storage links are dashed because the relevant source was not sampled. The README primarily documents configuration and deployment, not detailed product behavior.
Main entry points: api.ts Client API access · EshopDbContext.cs EF data context · Categories Category API · Products Product API
Components 23
Shop client
- Storefront
Eshop.Client/app/(home)/page.tsx - Product browsing
Eshop.Client/app/products/[categoryId]/page.tsx - Quantity and buy
Eshop.Client/app/products/[categoryId]/QuantityAndBuy.tsx - Cart and checkout
Eshop.Client/app/cart/page.tsx - Client API access
Eshop.Client/api/core/api.ts - Admin screens
Eshop.Client/app/admin
API features
- Category API
Eshop.WebApi/Features/Categories - Product API
Eshop.WebApi/Features/Products - Order API
Eshop.WebApi/Features/Orders - User API
Eshop.WebApi/Features/Users - Category routes
Eshop.WebApi/Features/Categories/CategoryController.cs - Product routes
Eshop.WebApi/Features/Products/ProductController.cs - Order routes
Eshop.WebApi/Features/Orders/OrderController.cs - User routes
Eshop.WebApi/Features/Users/UserController.cs - API error mapping
Eshop.WebApi/Filters/GlobalExceptionFilter.cs
Commerce domain
- Catalog entities
Eshop.Domain/Product.cs - Order entities
Eshop.Domain/Order.cs
Persistence and identity
- EF data context
Eshop.Persistence/EshopDbContext.cs - Identity user
Eshop.Persistence/ApplicationUser.cs
Authentication
- Token manager
Eshop.WebApi/Infrastructure/TokenManager.cs - JWT configuration
Eshop.WebApi/Infrastructure/AuthConfiguration.cs
Other components
- Shopper
- Administrator
Connections 30
- Shopper → Storefront: browses
- Shopper → Product browsing: views products
- Product browsing → Quantity and buy: offers buying
Eshop.Client/app/products/[categoryId]/page.tsx - Shopper → Cart and checkout: checks out
- Administrator → Admin screens: manages shop
- Storefront → Client API access: requests data
- Product browsing → Client API access: requests data
- Cart and checkout → Client API access: submits cart
- Admin screens → Client API access: requests changes
- Client API access → Category API: calls API
- Client API access → Product API: calls API
- Client API access → Order API: calls API
- Client API access → User API: calls API
- Category routes → Category API: dispatches
Eshop.WebApi/Features/Categories/CategoryController.cs - Product routes → Product API: dispatches
Eshop.WebApi/Features/Products/ProductController.cs - Order routes → Order API: dispatches
Eshop.WebApi/Features/Orders/OrderController.cs - User routes → User API: dispatches
Eshop.WebApi/Features/Users/UserController.cs - Product API → EF data context: reads and writes
Eshop.WebApi/Features/Products/UpdateProduct.cs - Category API → EF data context: reads and writes
- Order API → EF data context: reads and writes
Eshop.WebApi/Features/Orders/UpdateOrder.cs - User API → Identity user: uses identity
Eshop.WebApi/Features/Users/UserController.cs - EF data context → Catalog entities: maps entities
Eshop.Persistence/EshopDbContext.cs - EF data context → Order entities: maps entities
Eshop.Persistence/EshopDbContext.cs - Order entities → Catalog entities: contains product items
Eshop.Domain/Order.cs - Token manager → Identity user: updates refresh token
Eshop.WebApi/Infrastructure/TokenManager.cs - Token manager → JWT configuration: uses signing settings
Eshop.WebApi/Infrastructure/TokenManager.cs - User routes → Token manager: issues tokens
- API error mapping → Category API: maps failures
- API error mapping → Product API: maps failures
- API error mapping → Order API: maps failures