How vcsreddy2004/pilot-terraform-project works
Gerado is a TypeScript/Express backend for an e-commerce workflow: clients use API routes to authenticate, browse products, manage carts, and place or track orders. The code separates HTTP controllers, domain services, repositories, and Sequelize models. Authentication’s service-to-repository behavior and several controller-to-service calls are visible in sampled source; other module internals and their integrations are inferred from the file tree, so uncertain call links are omitted.
Main entry points: index.ts API routes · server.ts Express server · product.controller.ts Product controller · auth.service.ts Auth service
Components 27
API entry
- Express server
src/server.ts - API routes
src/routes/index.ts - Auth middleware
src/middleware/auth.middleware.ts
Commerce
- Product controller
src/modules/product/product.controller.ts - Product service
src/modules/product/product.service.ts - Product router
src/modules/product/product.router.ts - Cart controller
src/modules/cart/cart.controller.ts - Cart service
src/modules/cart/cart.service.ts - Cart router
src/modules/cart/cart.router.ts - Order controller
src/modules/order/order.controller.ts - Order service
src/modules/order/order.service.ts - Order router
src/modules/order/order.router.ts
Identity
- Auth controller
src/modules/auth/auth.controller.ts - Auth service
src/modules/auth/auth.service.ts - Auth repository
src/modules/auth/auth.repository.ts - Auth router
src/modules/auth/auth.router.ts - User controller
src/modules/user/user.controller.ts - User service
src/modules/user/user.service.ts - User router
src/modules/user/user.router.ts
Persistence and integrations
- Sequelize models
src/models/associations.ts - MySQL database
src/config/database.ts - Upload middleware
src/middleware/upload.ts - S3 handler
src/utils/s3.handler.ts - Email service
src/notifications/email/email.service.ts - Razorpay helper
src/utils/razorpay.ts
Other components
- API client
- S3 object storage
Connections 25
- API client → Express server: sends requests
- Express server → API routes: mounts routes
- API routes → Auth router: dispatches auth
- API routes → User router: dispatches users
- API routes → Product router: dispatches products
- API routes → Cart router: dispatches cart
- API routes → Order router: dispatches orders
- Auth router → Auth controller: dispatches handlers
- User router → User controller: dispatches handlers
- Product router → Product controller: dispatches handlers
- Cart router → Cart controller: dispatches handlers
- Order router → Order controller: dispatches handlers
- Auth controller → Auth service: calls
- Auth service → Auth repository: calls
- User controller → User service: calls
- Product controller → Product service: calls
- Cart controller → Cart service: calls
- Order controller → Order service: calls
- Express server → MySQL database: authenticates connection
- Auth repository → Sequelize models: queries models
- MySQL database → Sequelize models: backs persistence
- Product controller → Upload middleware: accepts files
- S3 handler → S3 object storage: uploads and deletes
- Auth service → Email service: sends email
- Order service → Razorpay helper: payment integration