How geovanesv/ecommerce-backend works
This is a NestJS e-commerce API. Clients authenticate or create accounts, then use endpoints for user profiles, product and category catalog operations, and purchases; administrators have additional management operations. Authentication supports access-token protection and refresh-token rotation, while product endpoints include image uploads. The excerpts show several controller-to-service calls and service access to Prisma; README documents additional capabilities such as category and user CRUD. Unsampled modules are represented only where the README or source index supports them.
Main entry points: app.module.ts App Wiring · prisma.service.ts Prisma Access · main.ts HTTP Server · auth.service.ts Token Service
Components 18
API Runtime
- HTTP Server
src/main.ts - App Wiring
src/app.module.ts
Identity and Access
- JWT Guard
src/auth/access-jwt-auth.guard.ts - Auth Endpoints
src/auth/auth.controller.ts - Token Service
src/auth/auth.service.ts - User Endpoints
src/models/user/user.controller.ts - User Service
src/models/user/user.service.ts
Catalog
- Product Endpoints
src/models/product/product.controller.ts - Product Service
src/models/product/product.service.ts - Image Upload
src/common/decorators/file-upload.decorator.ts - Category Endpoints
src/models/category/category.controller.ts - Category Service
src/models/category/category.service.ts
Commerce
- Purchase Endpoints
src/models/purchase/purchase.controller.ts - Purchase Service
src/models/purchase/purchase.service.ts
Persistence and Errors
- Prisma Access
src/prisma/prisma.service.ts - Application Database
- Exception Mapping
src/common/interceptors/exception.interceptor.ts
Other components
- API Client
Connections 21
- API Client → HTTP Server: sends requests
src/main.ts - HTTP Server → App Wiring: starts
src/main.ts - HTTP Server → Exception Mapping: registers
src/main.ts - App Wiring → JWT Guard: registers guard
src/app.module.ts - App Wiring → Auth Endpoints: loads auth module
src/app.module.ts - App Wiring → User Endpoints: loads user module
src/app.module.ts - App Wiring → Product Endpoints: loads product module
src/app.module.ts - App Wiring → Category Endpoints: loads category module
src/app.module.ts - App Wiring → Purchase Endpoints: loads purchase module
src/app.module.ts - Auth Endpoints → Token Service: calls
src/auth/auth.controller.ts - Token Service → User Service: looks up user
src/auth/auth.service.ts - Token Service → Prisma Access: stores token state
src/auth/auth.service.ts - User Endpoints → User Service: calls
src/models/user/user.controller.ts - User Service → Prisma Access: reads and writes
src/models/user/user.service.ts - Product Endpoints → Product Service: calls
src/models/product/product.controller.ts - Product Endpoints → Image Upload: configures upload
src/models/product/product.controller.ts - Category Endpoints → Category Service: calls
src/models/category/category.controller.ts - Purchase Endpoints → Purchase Service: calls
src/models/purchase/purchase.controller.ts - Purchase Service → Prisma Access: reads and writes
src/models/purchase/purchase.service.ts - Prisma Access → Application Database: persists data
- Exception Mapping → App Wiring: normalizes errors