How barthez-kenwou/backend-barthez-portfolio works
This is an Express/TypeScript modular-monolith backend for a public portfolio site and its admin CMS. The main workflow is a visitor or administrator calling the versioned API: app routing dispatches to domain endpoints, which expose public reads or authenticated content-management actions and return API responses. Separate capabilities handle accounts and access control, uploads, newsletter campaigns, OAuth, and backups. The README documents MongoDB/Prisma, Redis, and object storage; sampled code confirms storage-provider selection and selected controller-to-use-case calls. Other module wiring is represented only where documented, not inferred from unsampled implementation.
Main entry points: index.ts Route registry · project.routes.ts Portfolio endpoints · auth.routes.ts Auth endpoints · app.ts Express application
Components 19
API entry
- Express application
src/app/app.ts - Route registry
src/app/routes/index.ts
Portfolio content
- Portfolio endpoints
src/modules/projects/presentation/routes/project.routes.ts - CMS content workflows
src/modules/projects/application/commands/create-project.command.ts - CV aggregate
src/modules/cv/application/queries/get-cv.query.ts - Contact inbox
src/modules/contact-responses/presentation/routes/contact-response.routes.ts - Content repositories
src/modules/projects/infrastructure/repositories/prisma-project.repository.ts
Identity and access
- Auth endpoints
src/modules/auth/presentation/routes/auth.routes.ts - Auth workflows
src/modules/auth/application/commands/login.command.ts - Role permissions
src/modules/rbac/index.ts - OAuth integrations
src/modules/oauth/infrastructure/manager/oauth-manager.service.ts
Platform capabilities
- Upload workflows
src/modules/files/application/commands/upload-file.command.ts - Object storage facade
src/shared/infrastructure/storage/storage.service.ts - Newsletter workflows
src/modules/newsletter/application/commands/subscribe-newsletter.command.ts - Mongo backup
src/modules/backup/application/commands/run-mongo-backup.command.ts
Other components
- Site and CMS users
- MongoDB via Prisma
- MinIO or S3
- OAuth providers
Connections 21
- Site and CMS users → Express application: sends requests
- Express application → Route registry: dispatches
- Route registry → Auth endpoints: registers endpoints
- Route registry → Portfolio endpoints: registers endpoints
- Auth endpoints → Auth workflows: invokes workflows
- Auth workflows → MongoDB via Prisma: reads and writes
- Portfolio endpoints → CMS content workflows: invokes workflows
- CMS content workflows → Content repositories: uses repository
- Content repositories → MongoDB via Prisma: reads and writes
- Portfolio endpoints → CV aggregate: serves CV
- Portfolio endpoints → Contact inbox: serves contact
- Auth endpoints → Role permissions: checks permissions
- Portfolio endpoints → Role permissions: checks permissions
- Route registry → Upload workflows: registers uploads
- Upload workflows → Object storage facade: stores objects
- Object storage facade → MinIO or S3: uploads objects
- Route registry → Newsletter workflows: registers endpoints
- Route registry → OAuth integrations: registers endpoints
- OAuth integrations → OAuth providers: exchanges credentials
- Route registry → Mongo backup: registers operations
- Mongo backup → MinIO or S3: stores backup